commit
f9c6d8a45b
|
@ -10,6 +10,7 @@ GET /issues
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
"id": 43,
|
"id": 43,
|
||||||
|
"project_id": 8,
|
||||||
"title": "4xx/5xx pages",
|
"title": "4xx/5xx pages",
|
||||||
"description": "",
|
"description": "",
|
||||||
"labels": [ ],
|
"labels": [ ],
|
||||||
|
@ -28,6 +29,7 @@ GET /issues
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 42,
|
"id": 42,
|
||||||
|
"project_id": 8,
|
||||||
"title": "Add user settings",
|
"title": "Add user settings",
|
||||||
"description": "",
|
"description": "",
|
||||||
"labels": [
|
"labels": [
|
||||||
|
@ -73,7 +75,7 @@ GET /projects/:id/issues
|
||||||
|
|
||||||
Parameters:
|
Parameters:
|
||||||
|
|
||||||
+ `id` (required) - The code name of a project
|
+ `id` (required) - The ID or code name of a project
|
||||||
|
|
||||||
## Single issue
|
## Single issue
|
||||||
|
|
||||||
|
@ -85,12 +87,13 @@ GET /projects/:id/issues/:issue_id
|
||||||
|
|
||||||
Parameters:
|
Parameters:
|
||||||
|
|
||||||
+ `id` (required) - The code name of a project
|
+ `id` (required) - The ID or code name of a project
|
||||||
+ `issue_id` (required) - The ID of a project issue
|
+ `issue_id` (required) - The ID of a project issue
|
||||||
|
|
||||||
```json
|
```json
|
||||||
{
|
{
|
||||||
"id": 42,
|
"id": 42,
|
||||||
|
"project_id": 8,
|
||||||
"title": "Add user settings",
|
"title": "Add user settings",
|
||||||
"description": "",
|
"description": "",
|
||||||
"labels": [
|
"labels": [
|
||||||
|
@ -135,7 +138,7 @@ POST /projects/:id/issues
|
||||||
|
|
||||||
Parameters:
|
Parameters:
|
||||||
|
|
||||||
+ `id` (required) - The code name of a project
|
+ `id` (required) - The ID or code name of a project
|
||||||
+ `title` (required) - The title of an issue
|
+ `title` (required) - The title of an issue
|
||||||
+ `description` (optional) - The description of an issue
|
+ `description` (optional) - The description of an issue
|
||||||
+ `assignee_id` (optional) - The ID of a user to assign issue
|
+ `assignee_id` (optional) - The ID of a user to assign issue
|
||||||
|
@ -154,7 +157,7 @@ PUT /projects/:id/issues/:issue_id
|
||||||
|
|
||||||
Parameters:
|
Parameters:
|
||||||
|
|
||||||
+ `id` (required) - The code name of a project
|
+ `id` (required) - The ID or code name of a project
|
||||||
+ `issue_id` (required) - The ID of a project's issue
|
+ `issue_id` (required) - The ID of a project's issue
|
||||||
+ `title` (optional) - The title of an issue
|
+ `title` (optional) - The title of an issue
|
||||||
+ `description` (optional) - The description of an issue
|
+ `description` (optional) - The description of an issue
|
||||||
|
@ -175,7 +178,7 @@ DELETE /projects/:id/issues/:issue_id
|
||||||
|
|
||||||
Parameters:
|
Parameters:
|
||||||
|
|
||||||
+ `id` (required) - The code name of a project
|
+ `id` (required) - The ID or code name of a project
|
||||||
+ `issue_id` (required) - The ID of a project's issue
|
+ `issue_id` (required) - The ID of a project's issue
|
||||||
|
|
||||||
Status code `200` will be returned on success.
|
Status code `200` will be returned on success.
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
## List projects
|
## List projects
|
||||||
|
|
||||||
Get a list of authenticated users' projects.
|
Get a list of authenticated user's projects.
|
||||||
|
|
||||||
```
|
```
|
||||||
GET /projects
|
GET /projects
|
||||||
|
@ -63,7 +63,7 @@ GET /projects/:id
|
||||||
|
|
||||||
Parameters:
|
Parameters:
|
||||||
|
|
||||||
+ `id` (required) - The code name of a project
|
+ `id` (required) - The ID or code name of a project
|
||||||
|
|
||||||
```json
|
```json
|
||||||
{
|
{
|
||||||
|
@ -91,7 +91,7 @@ Parameters:
|
||||||
|
|
||||||
## Project repository branches
|
## Project repository branches
|
||||||
|
|
||||||
Get a list of project repository branches.
|
Get a list of project repository branches sorted by name alphabetically.
|
||||||
|
|
||||||
```
|
```
|
||||||
GET /projects/:id/repository/branches
|
GET /projects/:id/repository/branches
|
||||||
|
@ -99,7 +99,7 @@ GET /projects/:id/repository/branches
|
||||||
|
|
||||||
Parameters:
|
Parameters:
|
||||||
|
|
||||||
+ `id` (required) - The code name of a project
|
+ `id` (required) - The ID or code name of a project
|
||||||
|
|
||||||
```json
|
```json
|
||||||
[
|
[
|
||||||
|
@ -131,7 +131,7 @@ Parameters:
|
||||||
|
|
||||||
## Project repository tags
|
## Project repository tags
|
||||||
|
|
||||||
Get a list of project repository tags.
|
Get a list of project repository tags sorted by name in reverse alphabetical order.
|
||||||
|
|
||||||
```
|
```
|
||||||
GET /projects/:id/repository/tags
|
GET /projects/:id/repository/tags
|
||||||
|
@ -139,7 +139,7 @@ GET /projects/:id/repository/tags
|
||||||
|
|
||||||
Parameters:
|
Parameters:
|
||||||
|
|
||||||
+ `id` (required) - The code name of a project
|
+ `id` (required) - The ID or code name of a project
|
||||||
|
|
||||||
```json
|
```json
|
||||||
[
|
[
|
||||||
|
@ -183,7 +183,7 @@ GET /projects/:id/snippets/:snippet_id
|
||||||
|
|
||||||
Parameters:
|
Parameters:
|
||||||
|
|
||||||
+ `id` (required) - The code name of a project
|
+ `id` (required) - The ID or code name of a project
|
||||||
+ `snippet_id` (required) - The ID of a project's snippet
|
+ `snippet_id` (required) - The ID of a project's snippet
|
||||||
|
|
||||||
```json
|
```json
|
||||||
|
@ -214,7 +214,7 @@ GET /projects/:id/snippets/:snippet_id/raw
|
||||||
|
|
||||||
Parameters:
|
Parameters:
|
||||||
|
|
||||||
+ `id` (required) - The code name of a project
|
+ `id` (required) - The ID or code name of a project
|
||||||
+ `snippet_id` (required) - The ID of a project's snippet
|
+ `snippet_id` (required) - The ID of a project's snippet
|
||||||
|
|
||||||
## New snippet
|
## New snippet
|
||||||
|
@ -227,7 +227,7 @@ POST /projects/:id/snippets
|
||||||
|
|
||||||
Parameters:
|
Parameters:
|
||||||
|
|
||||||
+ `id` (required) - The code name of a project
|
+ `id` (required) - The ID or code name of a project
|
||||||
+ `title` (required) - The title of a snippet
|
+ `title` (required) - The title of a snippet
|
||||||
+ `file_name` (required) - The name of a snippet file
|
+ `file_name` (required) - The name of a snippet file
|
||||||
+ `lifetime` (optional) - The expiration date of a snippet
|
+ `lifetime` (optional) - The expiration date of a snippet
|
||||||
|
@ -245,7 +245,7 @@ PUT /projects/:id/snippets/:snippet_id
|
||||||
|
|
||||||
Parameters:
|
Parameters:
|
||||||
|
|
||||||
+ `id` (required) - The code name of a project
|
+ `id` (required) - The ID or code name of a project
|
||||||
+ `snippet_id` (required) - The ID of a project's snippet
|
+ `snippet_id` (required) - The ID of a project's snippet
|
||||||
+ `title` (optional) - The title of a snippet
|
+ `title` (optional) - The title of a snippet
|
||||||
+ `file_name` (optional) - The name of a snippet file
|
+ `file_name` (optional) - The name of a snippet file
|
||||||
|
@ -264,7 +264,7 @@ DELETE /projects/:id/snippets/:snippet_id
|
||||||
|
|
||||||
Parameters:
|
Parameters:
|
||||||
|
|
||||||
+ `id` (required) - The code name of a project
|
+ `id` (required) - The ID or code name of a project
|
||||||
+ `snippet_id` (required) - The ID of a project's snippet
|
+ `snippet_id` (required) - The ID of a project's snippet
|
||||||
|
|
||||||
Status code `200` will be returned on success.
|
Status code `200` will be returned on success.
|
||||||
|
|
|
@ -31,7 +31,9 @@ module Gitlab
|
||||||
end
|
end
|
||||||
|
|
||||||
class Issue < Grape::Entity
|
class Issue < Grape::Entity
|
||||||
expose :id, :title, :description
|
expose :id
|
||||||
|
expose (:project_id) {|issue| issue.project.id}
|
||||||
|
expose :title, :description
|
||||||
expose :label_list, :as => :labels
|
expose :label_list, :as => :labels
|
||||||
expose :milestone, :using => Entities::Milestone
|
expose :milestone, :using => Entities::Milestone
|
||||||
expose :assignee, :author, :using => Entities::UserBasic
|
expose :assignee, :author, :using => Entities::UserBasic
|
||||||
|
|
|
@ -5,7 +5,13 @@ module Gitlab
|
||||||
end
|
end
|
||||||
|
|
||||||
def user_project
|
def user_project
|
||||||
@project ||= current_user.projects.find_by_code(params[:id])
|
if @project ||= current_user.projects.find_by_id(params[:id]) ||
|
||||||
|
current_user.projects.find_by_code(params[:id])
|
||||||
|
else
|
||||||
|
error!({'message' => '404 Not found'}, 404)
|
||||||
|
end
|
||||||
|
|
||||||
|
@project
|
||||||
end
|
end
|
||||||
|
|
||||||
def authenticate!
|
def authenticate!
|
||||||
|
|
|
@ -17,7 +17,7 @@ module Gitlab
|
||||||
# Get a list of project issues
|
# Get a list of project issues
|
||||||
#
|
#
|
||||||
# Parameters:
|
# Parameters:
|
||||||
# id (required) - The code name of a project
|
# id (required) - The ID or code name of a project
|
||||||
# Example Request:
|
# Example Request:
|
||||||
# GET /projects/:id/issues
|
# GET /projects/:id/issues
|
||||||
get ":id/issues" do
|
get ":id/issues" do
|
||||||
|
@ -27,7 +27,7 @@ module Gitlab
|
||||||
# Get a single project issue
|
# Get a single project issue
|
||||||
#
|
#
|
||||||
# Parameters:
|
# Parameters:
|
||||||
# id (required) - The code name of a project
|
# id (required) - The ID or code name of a project
|
||||||
# issue_id (required) - The ID of a project issue
|
# issue_id (required) - The ID of a project issue
|
||||||
# Example Request:
|
# Example Request:
|
||||||
# GET /projects/:id/issues/:issue_id
|
# GET /projects/:id/issues/:issue_id
|
||||||
|
@ -39,7 +39,7 @@ module Gitlab
|
||||||
# Create a new project issue
|
# Create a new project issue
|
||||||
#
|
#
|
||||||
# Parameters:
|
# Parameters:
|
||||||
# id (required) - The code name of a project
|
# id (required) - The ID or code name of a project
|
||||||
# title (required) - The title of an issue
|
# title (required) - The title of an issue
|
||||||
# description (optional) - The description of an issue
|
# description (optional) - The description of an issue
|
||||||
# assignee_id (optional) - The ID of a user to assign issue
|
# assignee_id (optional) - The ID of a user to assign issue
|
||||||
|
@ -67,7 +67,7 @@ module Gitlab
|
||||||
# Update an existing issue
|
# Update an existing issue
|
||||||
#
|
#
|
||||||
# Parameters:
|
# Parameters:
|
||||||
# id (required) - The code name of a project
|
# id (required) - The ID or code name of a project
|
||||||
# issue_id (required) - The ID of a project issue
|
# issue_id (required) - The ID of a project issue
|
||||||
# title (optional) - The title of an issue
|
# title (optional) - The title of an issue
|
||||||
# description (optional) - The description of an issue
|
# description (optional) - The description of an issue
|
||||||
|
@ -98,7 +98,7 @@ module Gitlab
|
||||||
# Delete a project issue
|
# Delete a project issue
|
||||||
#
|
#
|
||||||
# Parameters:
|
# Parameters:
|
||||||
# id (required) - The code name of a project
|
# id (required) - The ID or code name of a project
|
||||||
# issue_id (required) - The ID of a project issue
|
# issue_id (required) - The ID of a project issue
|
||||||
# Example Request:
|
# Example Request:
|
||||||
# DELETE /projects/:id/issues/:issue_id
|
# DELETE /projects/:id/issues/:issue_id
|
||||||
|
|
|
@ -16,7 +16,7 @@ module Gitlab
|
||||||
# Get a single project
|
# Get a single project
|
||||||
#
|
#
|
||||||
# Parameters:
|
# Parameters:
|
||||||
# id (required) - The code of a project
|
# id (required) - The ID or code name of a project
|
||||||
# Example Request:
|
# Example Request:
|
||||||
# GET /projects/:id
|
# GET /projects/:id
|
||||||
get ":id" do
|
get ":id" do
|
||||||
|
@ -26,7 +26,7 @@ module Gitlab
|
||||||
# Get a project repository branches
|
# Get a project repository branches
|
||||||
#
|
#
|
||||||
# Parameters:
|
# Parameters:
|
||||||
# id (required) - The code of a project
|
# id (required) - The ID or code name of a project
|
||||||
# Example Request:
|
# Example Request:
|
||||||
# GET /projects/:id/repository/branches
|
# GET /projects/:id/repository/branches
|
||||||
get ":id/repository/branches" do
|
get ":id/repository/branches" do
|
||||||
|
@ -36,7 +36,7 @@ module Gitlab
|
||||||
# Get a project repository tags
|
# Get a project repository tags
|
||||||
#
|
#
|
||||||
# Parameters:
|
# Parameters:
|
||||||
# id (required) - The code of a project
|
# id (required) - The ID or code name of a project
|
||||||
# Example Request:
|
# Example Request:
|
||||||
# GET /projects/:id/repository/tags
|
# GET /projects/:id/repository/tags
|
||||||
get ":id/repository/tags" do
|
get ":id/repository/tags" do
|
||||||
|
@ -46,7 +46,7 @@ module Gitlab
|
||||||
# Get a project snippet
|
# Get a project snippet
|
||||||
#
|
#
|
||||||
# Parameters:
|
# Parameters:
|
||||||
# id (required) - The code of a project
|
# id (required) - The ID or code name of a project
|
||||||
# snippet_id (required) - The ID of a project snippet
|
# snippet_id (required) - The ID of a project snippet
|
||||||
# Example Request:
|
# Example Request:
|
||||||
# GET /projects/:id/snippets/:snippet_id
|
# GET /projects/:id/snippets/:snippet_id
|
||||||
|
@ -58,7 +58,7 @@ module Gitlab
|
||||||
# Create a new project snippet
|
# Create a new project snippet
|
||||||
#
|
#
|
||||||
# Parameters:
|
# Parameters:
|
||||||
# id (required) - The code name of a project
|
# id (required) - The ID or code name of a project
|
||||||
# title (required) - The title of a snippet
|
# title (required) - The title of a snippet
|
||||||
# file_name (required) - The name of a snippet file
|
# file_name (required) - The name of a snippet file
|
||||||
# lifetime (optional) - The expiration date of a snippet
|
# lifetime (optional) - The expiration date of a snippet
|
||||||
|
@ -84,7 +84,7 @@ module Gitlab
|
||||||
# Update an existing project snippet
|
# Update an existing project snippet
|
||||||
#
|
#
|
||||||
# Parameters:
|
# Parameters:
|
||||||
# id (required) - The code name of a project
|
# id (required) - The ID or code name of a project
|
||||||
# snippet_id (required) - The ID of a project snippet
|
# snippet_id (required) - The ID of a project snippet
|
||||||
# title (optional) - The title of a snippet
|
# title (optional) - The title of a snippet
|
||||||
# file_name (optional) - The name of a snippet file
|
# file_name (optional) - The name of a snippet file
|
||||||
|
@ -111,7 +111,7 @@ module Gitlab
|
||||||
# Delete a project snippet
|
# Delete a project snippet
|
||||||
#
|
#
|
||||||
# Parameters:
|
# Parameters:
|
||||||
# id (required) - The code of a project
|
# id (required) - The ID or code name of a project
|
||||||
# snippet_id (required) - The ID of a project snippet
|
# snippet_id (required) - The ID of a project snippet
|
||||||
# Example Request:
|
# Example Request:
|
||||||
# DELETE /projects/:id/snippets/:snippet_id
|
# DELETE /projects/:id/snippets/:snippet_id
|
||||||
|
@ -123,7 +123,7 @@ module Gitlab
|
||||||
# Get a raw project snippet
|
# Get a raw project snippet
|
||||||
#
|
#
|
||||||
# Parameters:
|
# Parameters:
|
||||||
# id (required) - The code of a project
|
# id (required) - The ID or code name of a project
|
||||||
# snippet_id (required) - The ID of a project snippet
|
# snippet_id (required) - The ID of a project snippet
|
||||||
# Example Request:
|
# Example Request:
|
||||||
# GET /projects/:id/snippets/:snippet_id/raw
|
# GET /projects/:id/snippets/:snippet_id/raw
|
||||||
|
|
|
@ -25,11 +25,23 @@ describe Gitlab::API do
|
||||||
|
|
||||||
describe "GET /projects/:id" do
|
describe "GET /projects/:id" do
|
||||||
it "should return a project by id" do
|
it "should return a project by id" do
|
||||||
get "#{api_prefix}/projects/#{project.code}?private_token=#{user.private_token}"
|
get "#{api_prefix}/projects/#{project.id}?private_token=#{user.private_token}"
|
||||||
response.status.should == 200
|
response.status.should == 200
|
||||||
json_response['name'].should == project.name
|
json_response['name'].should == project.name
|
||||||
json_response['owner']['email'].should == user.email
|
json_response['owner']['email'].should == user.email
|
||||||
end
|
end
|
||||||
|
|
||||||
|
it "should return a project by code name" do
|
||||||
|
get "#{api_prefix}/projects/#{project.code}?private_token=#{user.private_token}"
|
||||||
|
response.status.should == 200
|
||||||
|
json_response['name'].should == project.name
|
||||||
|
end
|
||||||
|
|
||||||
|
it "should return a 404 error if not found" do
|
||||||
|
get "#{api_prefix}/projects/42?private_token=#{user.private_token}"
|
||||||
|
response.status.should == 404
|
||||||
|
json_response['message'].should == '404 Not found'
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
describe "GET /projects/:id/repository/branches" do
|
describe "GET /projects/:id/repository/branches" do
|
||||||
|
|
Loading…
Reference in a new issue