API: help page and comment
This commit is contained in:
parent
6ffd2f3db6
commit
77bc110107
2 changed files with 248 additions and 6 deletions
194
doc/api/merge_requests.md
Normal file
194
doc/api/merge_requests.md
Normal file
|
@ -0,0 +1,194 @@
|
||||||
|
## List merge requests
|
||||||
|
|
||||||
|
Get all MR for this project.
|
||||||
|
|
||||||
|
```
|
||||||
|
GET /:id/merge_requests
|
||||||
|
```
|
||||||
|
|
||||||
|
Parameters:
|
||||||
|
|
||||||
|
+ `id` (required) - The ID or code name of a project
|
||||||
|
|
||||||
|
```json
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"id":1,
|
||||||
|
"target_branch":"master",
|
||||||
|
"source_branch":"test1",
|
||||||
|
"project_id":3,
|
||||||
|
"title":"test1",
|
||||||
|
"closed":true,
|
||||||
|
"merged":false,
|
||||||
|
"author":{
|
||||||
|
"id":1,
|
||||||
|
"email":"admin@local.host",
|
||||||
|
"name":"Administrator",
|
||||||
|
"blocked":false,
|
||||||
|
"created_at":"2012-04-29T08:46:00Z"
|
||||||
|
},
|
||||||
|
"assignee":{
|
||||||
|
"id":1,
|
||||||
|
"email":"admin@local.host",
|
||||||
|
"name":"Administrator",
|
||||||
|
"blocked":false,
|
||||||
|
"created_at":"2012-04-29T08:46:00Z"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
```
|
||||||
|
|
||||||
|
## Show MR
|
||||||
|
|
||||||
|
Show information about MR.
|
||||||
|
|
||||||
|
```
|
||||||
|
GET /:id/merge_request/:merge_request_id
|
||||||
|
```
|
||||||
|
|
||||||
|
Parameters:
|
||||||
|
|
||||||
|
+ `id` (required) - The ID or code name of a project
|
||||||
|
+ `merge_request_id` (required) - The ID of MR
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"id":1,
|
||||||
|
"target_branch":"master",
|
||||||
|
"source_branch":"test1",
|
||||||
|
"project_id":3,
|
||||||
|
"title":"test1",
|
||||||
|
"closed":true,
|
||||||
|
"merged":false,
|
||||||
|
"author":{
|
||||||
|
"id":1,
|
||||||
|
"email":"admin@local.host",
|
||||||
|
"name":"Administrator",
|
||||||
|
"blocked":false,
|
||||||
|
"created_at":"2012-04-29T08:46:00Z"
|
||||||
|
},
|
||||||
|
"assignee":{
|
||||||
|
"id":1,
|
||||||
|
"email":"admin@local.host",
|
||||||
|
"name":"Administrator",
|
||||||
|
"blocked":false,
|
||||||
|
"created_at":"2012-04-29T08:46:00Z"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
## Create MR
|
||||||
|
|
||||||
|
Create MR.
|
||||||
|
|
||||||
|
```
|
||||||
|
POST /:id/merge_requests
|
||||||
|
```
|
||||||
|
|
||||||
|
Parameters:
|
||||||
|
|
||||||
|
+ `id` (required) - The ID or code name of a project
|
||||||
|
+ `source_branch` (required) - The source branch
|
||||||
|
+ `target_branch` (required) - The target branch
|
||||||
|
+ `assignee_id` - Assignee user ID
|
||||||
|
+ `title` (required) - Title of MR
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"id":1,
|
||||||
|
"target_branch":"master",
|
||||||
|
"source_branch":"test1",
|
||||||
|
"project_id":3,
|
||||||
|
"title":"test1",
|
||||||
|
"closed":true,
|
||||||
|
"merged":false,
|
||||||
|
"author":{
|
||||||
|
"id":1,
|
||||||
|
"email":"admin@local.host",
|
||||||
|
"name":"Administrator",
|
||||||
|
"blocked":false,
|
||||||
|
"created_at":"2012-04-29T08:46:00Z"
|
||||||
|
},
|
||||||
|
"assignee":{
|
||||||
|
"id":1,
|
||||||
|
"email":"admin@local.host",
|
||||||
|
"name":"Administrator",
|
||||||
|
"blocked":false,
|
||||||
|
"created_at":"2012-04-29T08:46:00Z"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
## Update MR
|
||||||
|
|
||||||
|
Update MR. You can change branches, title, or even close the MR.
|
||||||
|
|
||||||
|
```
|
||||||
|
PUT /:id/merge_request/:merge_request_id
|
||||||
|
```
|
||||||
|
|
||||||
|
Parameters:
|
||||||
|
|
||||||
|
+ `id` (required) - The ID or code name of a project
|
||||||
|
+ `merge_request_id` (required) - ID of MR
|
||||||
|
+ `source_branch` - The source branch
|
||||||
|
+ `target_branch` - The target branch
|
||||||
|
+ `assignee_id` - Assignee user ID
|
||||||
|
+ `title` - Title of MR
|
||||||
|
+ `closed` - Status of MR. true - closed
|
||||||
|
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"id":1,
|
||||||
|
"target_branch":"master",
|
||||||
|
"source_branch":"test1",
|
||||||
|
"project_id":3,
|
||||||
|
"title":"test1",
|
||||||
|
"closed":true,
|
||||||
|
"merged":false,
|
||||||
|
"author":{
|
||||||
|
"id":1,
|
||||||
|
"email":"admin@local.host",
|
||||||
|
"name":"Administrator",
|
||||||
|
"blocked":false,
|
||||||
|
"created_at":"2012-04-29T08:46:00Z"
|
||||||
|
},
|
||||||
|
"assignee":{
|
||||||
|
"id":1,
|
||||||
|
"email":"admin@local.host",
|
||||||
|
"name":"Administrator",
|
||||||
|
"blocked":false,
|
||||||
|
"created_at":"2012-04-29T08:46:00Z"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
## Post comment to MR
|
||||||
|
|
||||||
|
Post comment to MR
|
||||||
|
|
||||||
|
```
|
||||||
|
POST /:id/merge_request/:merge_request_id/comments
|
||||||
|
```
|
||||||
|
|
||||||
|
Parameters:
|
||||||
|
|
||||||
|
+ `id` (required) - The ID or code name of a project
|
||||||
|
+ `merge_request_id` (required) - ID of MR
|
||||||
|
+ `note` (required) - Text of comment
|
||||||
|
|
||||||
|
Will return created note with status `201 Created` on success, or `404 Not found` on fail.
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"author":{
|
||||||
|
"id":1,
|
||||||
|
"email":"admin@local.host",
|
||||||
|
"name":"Administrator",
|
||||||
|
"blocked":false,
|
||||||
|
"created_at":"2012-04-29T08:46:00Z"
|
||||||
|
},
|
||||||
|
"note":"text1"
|
||||||
|
}
|
||||||
|
```
|
|
@ -4,14 +4,30 @@ module Gitlab
|
||||||
before { authenticate! }
|
before { authenticate! }
|
||||||
|
|
||||||
resource :projects do
|
resource :projects do
|
||||||
#list
|
|
||||||
|
# List merge requests
|
||||||
|
#
|
||||||
|
# Parameters:
|
||||||
|
# id (required) - The ID or code name of a project
|
||||||
|
#
|
||||||
|
# Example:
|
||||||
|
# GET /:id/merge_requests
|
||||||
|
#
|
||||||
get ":id/merge_requests" do
|
get ":id/merge_requests" do
|
||||||
authorize! :read_merge_request, user_project
|
authorize! :read_merge_request, user_project
|
||||||
|
|
||||||
present user_project.merge_requests, with: Entities::MergeRequest
|
present paginate(user_project.merge_requests), with: Entities::MergeRequest
|
||||||
end
|
end
|
||||||
|
|
||||||
#show
|
# Show MR
|
||||||
|
#
|
||||||
|
# Parameters:
|
||||||
|
# id (required) - The ID or code name of a project
|
||||||
|
# merge_request_id (required) - The ID of MR
|
||||||
|
#
|
||||||
|
# Example:
|
||||||
|
# GET /:id/merge_request/:merge_request_id
|
||||||
|
#
|
||||||
get ":id/merge_request/:merge_request_id" do
|
get ":id/merge_request/:merge_request_id" do
|
||||||
merge_request = user_project.merge_requests.find(params[:merge_request_id])
|
merge_request = user_project.merge_requests.find(params[:merge_request_id])
|
||||||
|
|
||||||
|
@ -20,7 +36,19 @@ module Gitlab
|
||||||
present merge_request, with: Entities::MergeRequest
|
present merge_request, with: Entities::MergeRequest
|
||||||
end
|
end
|
||||||
|
|
||||||
#create merge_request
|
# Create MR
|
||||||
|
#
|
||||||
|
# Parameters:
|
||||||
|
#
|
||||||
|
# id (required) - The ID or code name of a project
|
||||||
|
# source_branch (required) - The source branch
|
||||||
|
# target_branch (required) - The target branch
|
||||||
|
# assignee_id - Assignee user ID
|
||||||
|
# title (required) - Title of MR
|
||||||
|
#
|
||||||
|
# Example:
|
||||||
|
# POST /:id/merge_requests
|
||||||
|
#
|
||||||
post ":id/merge_requests" do
|
post ":id/merge_requests" do
|
||||||
attrs = attributes_for_keys [:source_branch, :target_branch, :assignee_id, :title]
|
attrs = attributes_for_keys [:source_branch, :target_branch, :assignee_id, :title]
|
||||||
merge_request = user_project.merge_requests.new(attrs)
|
merge_request = user_project.merge_requests.new(attrs)
|
||||||
|
@ -36,7 +64,19 @@ module Gitlab
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
#update merge_request
|
# Update MR
|
||||||
|
#
|
||||||
|
# Parameters:
|
||||||
|
# id (required) - The ID or code name of a project
|
||||||
|
# merge_request_id (required) - ID of MR
|
||||||
|
# source_branch - The source branch
|
||||||
|
# target_branch - The target branch
|
||||||
|
# assignee_id - Assignee user ID
|
||||||
|
# title - Title of MR
|
||||||
|
# closed - Status of MR. true - closed
|
||||||
|
# Example:
|
||||||
|
# PUT /:id/merge_request/:merge_request_id
|
||||||
|
#
|
||||||
put ":id/merge_request/:merge_request_id" do
|
put ":id/merge_request/:merge_request_id" do
|
||||||
attrs = attributes_for_keys [:source_branch, :target_branch, :assignee_id, :title, :closed]
|
attrs = attributes_for_keys [:source_branch, :target_branch, :assignee_id, :title, :closed]
|
||||||
merge_request = user_project.merge_requests.find(params[:merge_request_id])
|
merge_request = user_project.merge_requests.find(params[:merge_request_id])
|
||||||
|
@ -52,7 +92,15 @@ module Gitlab
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
#post comment to merge request
|
# Post comment to merge request
|
||||||
|
#
|
||||||
|
# Parameters:
|
||||||
|
# id (required) - The ID or code name of a project
|
||||||
|
# merge_request_id (required) - ID of MR
|
||||||
|
# note (required) - Text of comment
|
||||||
|
# Examples:
|
||||||
|
# POST /:id/merge_request/:merge_request_id/comments
|
||||||
|
#
|
||||||
post ":id/merge_request/:merge_request_id/comments" do
|
post ":id/merge_request/:merge_request_id/comments" do
|
||||||
merge_request = user_project.merge_requests.find(params[:merge_request_id])
|
merge_request = user_project.merge_requests.find(params[:merge_request_id])
|
||||||
note = merge_request.notes.new(note: params[:note], project_id: user_project.id)
|
note = merge_request.notes.new(note: params[:note], project_id: user_project.id)
|
||||||
|
|
Loading…
Add table
Reference in a new issue