7.1 KiB
Merge requests
List merge requests
Get all merge requests for this project. The state
parameter can be used to get only merge requests with a given state (opened
, closed
, or merged
) or all of them (all
). The pagination parameters page
and per_page
can be used to restrict the list of merge requests.
GET /projects/:id/merge_requests
GET /projects/:id/merge_requests?state=opened
GET /projects/:id/merge_requests?state=all
Parameters:
id
(required) - The ID of a projectstate
(optional) - Returnall
requests or just those that aremerged
,opened
orclosed
order_by
(optional) - Return requests ordered bycreated_at
orupdated_at
fieldssort
(optional) - Return requests sorted inasc
ordesc
order
[
{
"id": 1,
"iid": 1,
"target_branch": "master",
"source_branch": "test1",
"project_id": 3,
"title": "test1",
"state": "opened",
"upvotes": 0,
"downvotes": 0,
"author": {
"id": 1,
"username": "admin",
"email": "admin@example.com",
"name": "Administrator",
"state": "active",
"created_at": "2012-04-29T08:46:00Z"
},
"assignee": {
"id": 1,
"username": "admin",
"email": "admin@example.com",
"name": "Administrator",
"state": "active",
"created_at": "2012-04-29T08:46:00Z"
},
"description":"fixed login page css paddings"
}
]
Get single MR
Shows information about a single merge request.
GET /projects/:id/merge_request/:merge_request_id
Parameters:
id
(required) - The ID of a projectmerge_request_id
(required) - The ID of MR
{
"id": 1,
"iid": 1,
"target_branch": "master",
"source_branch": "test1",
"project_id": 3,
"title": "test1",
"state": "merged",
"upvotes": 0,
"downvotes": 0,
"author": {
"id": 1,
"username": "admin",
"email": "admin@example.com",
"name": "Administrator",
"state": "active",
"created_at": "2012-04-29T08:46:00Z"
},
"assignee": {
"id": 1,
"username": "admin",
"email": "admin@example.com",
"name": "Administrator",
"state": "active",
"created_at": "2012-04-29T08:46:00Z"
},
"description":"fixed login page css paddings"
}
Create MR
Creates a new merge request.
POST /projects/:id/merge_requests
Parameters:
id
(required) - The ID of a projectsource_branch
(required) - The source branchtarget_branch
(required) - The target branchassignee_id
(optional) - Assignee user IDtitle
(required) - Title of MRtarget_project_id
(optional) - The target project (numeric id)
{
"id": 1,
"target_branch": "master",
"source_branch": "test1",
"project_id": 3,
"title": "test1",
"state": "opened",
"upvotes": 0,
"downvotes": 0,
"author": {
"id": 1,
"username": "admin",
"email": "admin@example.com",
"name": "Administrator",
"state": "active",
"created_at": "2012-04-29T08:46:00Z"
},
"assignee": {
"id": 1,
"username": "admin",
"email": "admin@example.com",
"name": "Administrator",
"state": "active",
"created_at": "2012-04-29T08:46:00Z"
},
"description":"fixed login page css paddings"
}
If the operation is successful, 200 and the newly created merge request is returned. If an error occurs, an error number and a message explaining the reason is returned.
Update MR
Updates an existing merge request. You can change branches, title, or even close the MR.
PUT /projects/:id/merge_request/:merge_request_id
Parameters:
id
(required) - The ID of a projectmerge_request_id
(required) - ID of MRsource_branch
- The source branchtarget_branch
- The target branchassignee_id
- Assignee user IDtitle
- Title of MRstate_event
- New state (close|reopen|merge)
{
"id": 1,
"target_branch": "master",
"source_branch": "test1",
"project_id": 3,
"title": "test1",
"state": "opened",
"upvotes": 0,
"downvotes": 0,
"author": {
"id": 1,
"username": "admin",
"email": "admin@example.com",
"name": "Administrator",
"state": "active",
"created_at": "2012-04-29T08:46:00Z"
},
"assignee": {
"id": 1,
"username": "admin",
"email": "admin@example.com",
"name": "Administrator",
"state": "active",
"created_at": "2012-04-29T08:46:00Z"
}
}
If the operation is successful, 200 and the updated merge request is returned. If an error occurs, an error number and a message explaining the reason is returned.
Accept MR
Merge changes submitted with MR using this API.
If merge success you get 200 OK
.
If it has some conflicts and can not be merged - you get 405 and error message 'Branch cannot be merged'
If merge request is already merged or closed - you get 405 and error message 'Method Not Allowed'
If you don't have permissions to accept this merge request - you'll get a 401
PUT /projects/:id/merge_request/:merge_request_id/merge
Parameters:
id
(required) - The ID of a projectmerge_request_id
(required) - ID of MRmerge_commit_message
(optional) - Custom merge commit message
{
"id": 1,
"target_branch": "master",
"source_branch": "test1",
"project_id": 3,
"title": "test1",
"state": "merged",
"upvotes": 0,
"downvotes": 0,
"author": {
"id": 1,
"username": "admin",
"email": "admin@example.com",
"name": "Administrator",
"state": "active",
"created_at": "2012-04-29T08:46:00Z"
},
"assignee": {
"id": 1,
"username": "admin",
"email": "admin@example.com",
"name": "Administrator",
"state": "active",
"created_at": "2012-04-29T08:46:00Z"
}
}
Post comment to MR
Adds a comment to a merge request.
POST /projects/:id/merge_request/:merge_request_id/comments
Parameters:
id
(required) - The ID of a projectmerge_request_id
(required) - ID of merge requestnote
(required) - Text of comment
{
"author": {
"id": 1,
"username": "admin",
"email": "admin@example.com",
"name": "Administrator",
"blocked": false,
"created_at": "2012-04-29T08:46:00Z"
},
"note": "text1"
}
Get the comments on a MR
Gets all the comments associated with a merge request.
GET /projects/:id/merge_request/:merge_request_id/comments
Parameters:
id
(required) - The ID of a projectmerge_request_id
(required) - ID of merge request
[
{
"note": "this is the 1st comment on the 2merge merge request",
"author": {
"id": 11,
"username": "admin",
"email": "admin@example.com",
"name": "Administrator",
"state": "active",
"created_at": "2014-03-06T08:17:35.000Z"
}
},
{
"note": "_Status changed to closed_",
"author": {
"id": 11,
"username": "admin",
"email": "admin@example.com",
"name": "Administrator",
"state": "active",
"created_at": "2014-03-06T08:17:35.000Z"
}
}
]
Comments on issues
Comments are done via the notes resource.