2014-05-27 12:12:15 +00:00
# Merge requests
2012-10-22 19:53:06 +00:00
## List merge requests
2014-04-24 22:48:22 +00:00
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.
2012-10-22 19:53:06 +00:00
```
2012-10-25 10:13:01 +00:00
GET /projects/:id/merge_requests
2014-04-04 16:32:53 +00:00
GET /projects/:id/merge_requests?state=opened
GET /projects/:id/merge_requests?state=all
2012-10-22 19:53:06 +00:00
```
Parameters:
2014-04-24 22:48:22 +00:00
- `id` (required) - The ID of a project
- `state` (optional) - Return `all` requests or just those that are `merged` , `opened` or `closed`
2014-09-09 15:39:53 +00:00
- `order_by` (optional) - Return requests ordered by `created_at` or `updated_at` fields
- `sort` (optional) - Return requests sorted in `asc` or `desc` order
2012-10-22 19:53:06 +00:00
```json
[
2014-04-05 06:36:47 +00:00
{
"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",
2014-07-19 11:27:01 +00:00
"email": "admin@example.com",
2014-04-05 06:36:47 +00:00
"name": "Administrator",
"state": "active",
"created_at": "2012-04-29T08:46:00Z"
},
"assignee": {
"id": 1,
"username": "admin",
2014-07-19 11:27:01 +00:00
"email": "admin@example.com",
2014-04-05 06:36:47 +00:00
"name": "Administrator",
"state": "active",
"created_at": "2012-04-29T08:46:00Z"
2014-04-16 02:14:05 +00:00
},
"description":"fixed login page css paddings"
2014-04-05 06:36:47 +00:00
}
2012-10-22 19:53:06 +00:00
]
```
2013-02-27 14:07:42 +00:00
## Get single MR
Shows information about a single merge request.
2012-10-22 19:53:06 +00:00
```
2012-10-25 10:13:01 +00:00
GET /projects/:id/merge_request/:merge_request_id
2012-10-22 19:53:06 +00:00
```
Parameters:
2014-04-24 22:48:22 +00:00
- `id` (required) - The ID of a project
- `merge_request_id` (required) - The ID of MR
2012-10-22 19:53:06 +00:00
```json
{
2014-04-05 06:36:47 +00:00
"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",
2014-07-19 11:27:01 +00:00
"email": "admin@example.com",
2014-04-05 06:36:47 +00:00
"name": "Administrator",
"state": "active",
"created_at": "2012-04-29T08:46:00Z"
},
"assignee": {
"id": 1,
"username": "admin",
2014-07-19 11:27:01 +00:00
"email": "admin@example.com",
2014-04-05 06:36:47 +00:00
"name": "Administrator",
"state": "active",
"created_at": "2012-04-29T08:46:00Z"
2014-04-16 02:14:05 +00:00
},
"description":"fixed login page css paddings"
2012-10-22 19:53:06 +00:00
}
```
## Create MR
2013-02-27 14:07:42 +00:00
Creates a new merge request.
2012-10-22 19:53:06 +00:00
```
2012-10-25 10:13:01 +00:00
POST /projects/:id/merge_requests
2012-10-22 19:53:06 +00:00
```
Parameters:
2014-04-24 22:48:22 +00:00
- `id` (required) - The ID of a project
- `source_branch` (required) - The source branch
- `target_branch` (required) - The target branch
- `assignee_id` (optional) - Assignee user ID
- `title` (required) - Title of MR
- `target_project_id` (optional) - The target project (numeric id)
2012-10-22 19:53:06 +00:00
```json
{
2014-04-05 06:36:47 +00:00
"id": 1,
"target_branch": "master",
"source_branch": "test1",
"project_id": 3,
"title": "test1",
"state": "opened",
"upvotes": 0,
"downvotes": 0,
"author": {
"id": 1,
"username": "admin",
2014-07-19 11:27:01 +00:00
"email": "admin@example.com",
2014-04-05 06:36:47 +00:00
"name": "Administrator",
"state": "active",
"created_at": "2012-04-29T08:46:00Z"
},
"assignee": {
"id": 1,
"username": "admin",
2014-07-19 11:27:01 +00:00
"email": "admin@example.com",
2014-04-05 06:36:47 +00:00
"name": "Administrator",
"state": "active",
"created_at": "2012-04-29T08:46:00Z"
2014-04-16 02:14:05 +00:00
},
"description":"fixed login page css paddings"
2012-10-22 19:53:06 +00:00
}
```
2014-08-14 08:17:52 +00:00
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.
2012-10-22 19:53:06 +00:00
## Update MR
2013-02-27 14:07:42 +00:00
Updates an existing merge request. You can change branches, title, or even close the MR.
2012-10-22 19:53:06 +00:00
```
2012-10-25 10:13:01 +00:00
PUT /projects/:id/merge_request/:merge_request_id
2012-10-22 19:53:06 +00:00
```
Parameters:
2014-04-24 22:48:22 +00:00
- `id` (required) - The ID 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
- `state_event` - New state (close|reopen|merge)
2012-10-22 19:53:06 +00:00
```json
{
2014-04-05 06:36:47 +00:00
"id": 1,
"target_branch": "master",
"source_branch": "test1",
"project_id": 3,
"title": "test1",
"state": "opened",
"upvotes": 0,
"downvotes": 0,
"author": {
"id": 1,
"username": "admin",
2014-07-19 11:27:01 +00:00
"email": "admin@example.com",
2014-04-05 06:36:47 +00:00
"name": "Administrator",
"state": "active",
"created_at": "2012-04-29T08:46:00Z"
},
"assignee": {
"id": 1,
"username": "admin",
2014-07-19 11:27:01 +00:00
"email": "admin@example.com",
2014-04-05 06:36:47 +00:00
"name": "Administrator",
"state": "active",
"created_at": "2012-04-29T08:46:00Z"
}
2012-10-22 19:53:06 +00:00
}
```
2013-02-27 14:07:42 +00:00
2014-08-14 08:17:52 +00:00
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.
2014-05-12 15:01:22 +00:00
## Accept MR
2014-08-14 08:17:52 +00:00
Merge changes submitted with MR using this API.
2014-04-24 22:48:22 +00:00
2014-08-15 14:03:01 +00:00
If merge success you get `200 OK` .
2014-04-24 22:48:22 +00:00
2014-05-12 15:01:22 +00:00
If it has some conflicts and can not be merged - you get 405 and error message 'Branch cannot be merged'
2014-04-24 22:48:22 +00:00
2014-08-14 08:17:52 +00:00
If merge request is already merged or closed - you get 405 and error message 'Method Not Allowed'
2014-04-24 22:48:22 +00:00
2014-08-15 14:03:01 +00:00
If you don't have permissions to accept this merge request - you'll get a 401
2014-05-12 15:01:22 +00:00
```
PUT /projects/:id/merge_request/:merge_request_id/merge
```
Parameters:
2014-04-24 22:48:22 +00:00
- `id` (required) - The ID of a project
- `merge_request_id` (required) - ID of MR
- `merge_commit_message` (optional) - Custom merge commit message
2014-05-12 15:01:22 +00:00
```json
{
"id": 1,
"target_branch": "master",
"source_branch": "test1",
"project_id": 3,
"title": "test1",
"state": "merged",
"upvotes": 0,
"downvotes": 0,
"author": {
"id": 1,
"username": "admin",
2014-07-19 11:27:01 +00:00
"email": "admin@example.com",
2014-05-12 15:01:22 +00:00
"name": "Administrator",
"state": "active",
"created_at": "2012-04-29T08:46:00Z"
},
"assignee": {
"id": 1,
"username": "admin",
2014-07-19 11:27:01 +00:00
"email": "admin@example.com",
2014-05-12 15:01:22 +00:00
"name": "Administrator",
"state": "active",
"created_at": "2012-04-29T08:46:00Z"
}
}
```
2012-10-22 19:53:06 +00:00
## Post comment to MR
2013-02-27 14:07:42 +00:00
Adds a comment to a merge request.
2012-10-22 19:53:06 +00:00
```
2012-10-25 10:13:01 +00:00
POST /projects/:id/merge_request/:merge_request_id/comments
2012-10-22 19:53:06 +00:00
```
Parameters:
2014-04-24 22:48:22 +00:00
- `id` (required) - The ID of a project
- `merge_request_id` (required) - ID of merge request
- `note` (required) - Text of comment
2012-10-22 19:53:06 +00:00
```json
{
2014-04-05 06:36:47 +00:00
"author": {
"id": 1,
"username": "admin",
2014-07-19 11:27:01 +00:00
"email": "admin@example.com",
2014-04-05 06:36:47 +00:00
"name": "Administrator",
"blocked": false,
"created_at": "2012-04-29T08:46:00Z"
},
"note": "text1"
2012-10-22 19:53:06 +00:00
}
```
2014-03-19 18:07:51 +00:00
## 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:
2014-04-24 22:48:22 +00:00
- `id` (required) - The ID of a project
- `merge_request_id` (required) - ID of merge request
2014-03-19 18:07:51 +00:00
```json
[
2014-04-05 06:36:47 +00:00
{
"note": "this is the 1st comment on the 2merge merge request",
"author": {
"id": 11,
"username": "admin",
2014-07-19 11:27:01 +00:00
"email": "admin@example.com",
2014-04-05 06:36:47 +00:00
"name": "Administrator",
"state": "active",
"created_at": "2014-03-06T08:17:35.000Z"
}
},
{
"note": "_Status changed to closed_",
"author": {
"id": 11,
"username": "admin",
2014-07-19 11:27:01 +00:00
"email": "admin@example.com",
2014-04-05 06:36:47 +00:00
"name": "Administrator",
"state": "active",
"created_at": "2014-03-06T08:17:35.000Z"
2014-03-19 18:07:51 +00:00
}
2014-04-05 06:36:47 +00:00
}
2014-03-19 18:07:51 +00:00
]
```
2014-04-30 15:28:05 +00:00
## Comments on issues
Comments are done via the notes resource.