Commit 6b0801d4 authored by Douwe Maan's avatar Douwe Maan

Merge branch 'develop7/add-merge_status-to-merge-request-in-api' into 'master'

Expose MergeRequest#merge_status

_Originally opened at !2478 by @develop7._

- - -

This enables API users to see whether a merge request can be merged without conflicts.

See merge request !2756
parents f86ff1b8 f6a666bd
...@@ -29,6 +29,7 @@ v 8.5.0 (unreleased) ...@@ -29,6 +29,7 @@ v 8.5.0 (unreleased)
- Update the ExternalIssue regex pattern (Blake Hitchcock) - Update the ExternalIssue regex pattern (Blake Hitchcock)
- Remember user's inline/side-by-side diff view preference in a cookie (Kirill Katsnelson) - Remember user's inline/side-by-side diff view preference in a cookie (Kirill Katsnelson)
- Optimized performance of finding issues to be closed by a merge request - Optimized performance of finding issues to be closed by a merge request
- API: Expose MergeRequest#merge_status (Andrei Dziahel)
- Revert "Add IP check against DNSBLs at account sign-up" - Revert "Add IP check against DNSBLs at account sign-up"
- Fix API to keep request parameters in Link header (Michael Potthoff) - Fix API to keep request parameters in Link header (Michael Potthoff)
- Deprecate API "merge_request/:merge_request_id/comments". Use "merge_requests/:merge_request_id/notes" instead - Deprecate API "merge_request/:merge_request_id/comments". Use "merge_requests/:merge_request_id/notes" instead
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
## List merge requests ## List merge requests
Get all merge requests for this project. 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 `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. The pagination parameters `page` and `per_page` can be used to restrict the list of merge requests.
...@@ -49,8 +49,24 @@ Parameters: ...@@ -49,8 +49,24 @@ Parameters:
"state": "active", "state": "active",
"created_at": "2012-04-29T08:46:00Z" "created_at": "2012-04-29T08:46:00Z"
}, },
"source_project_id": "2",
"target_project_id": "3",
"labels": [ ],
"description":"fixed login page css paddings", "description":"fixed login page css paddings",
"work_in_progress": false "work_in_progress": false,
"milestone": {
"id": 5,
"iid": 1,
"project_id": 3,
"title": "v2.0",
"description": "Assumenda aut placeat expedita exercitationem labore sunt enim earum.",
"state": "closed",
"created_at": "2015-02-02T19:49:26.013Z",
"updated_at": "2015-02-02T19:49:26.013Z",
"due_date": null
},
"merge_when_build_succeeds": true,
"merge_status": "can_be_merged"
} }
] ]
``` ```
...@@ -95,8 +111,24 @@ Parameters: ...@@ -95,8 +111,24 @@ Parameters:
"state": "active", "state": "active",
"created_at": "2012-04-29T08:46:00Z" "created_at": "2012-04-29T08:46:00Z"
}, },
"source_project_id": "2",
"target_project_id": "3",
"labels": [ ],
"description":"fixed login page css paddings", "description":"fixed login page css paddings",
"work_in_progress": false "work_in_progress": false,
"milestone": {
"id": 5,
"iid": 1,
"project_id": 3,
"title": "v2.0",
"description": "Assumenda aut placeat expedita exercitationem labore sunt enim earum.",
"state": "closed",
"created_at": "2015-02-02T19:49:26.013Z",
"updated_at": "2015-02-02T19:49:26.013Z",
"due_date": null
},
"merge_when_build_succeeds": true,
"merge_status": "can_be_merged"
} }
``` ```
...@@ -156,8 +188,6 @@ Parameters: ...@@ -156,8 +188,6 @@ Parameters:
"iid": 1, "iid": 1,
"project_id": 4, "project_id": 4,
"title": "Blanditiis beatae suscipit hic assumenda et molestias nisi asperiores repellat et.", "title": "Blanditiis beatae suscipit hic assumenda et molestias nisi asperiores repellat et.",
"description": "Qui voluptatibus placeat ipsa alias quasi. Deleniti rem ut sint. Optio velit qui distinctio.",
"work_in_progress": false,
"state": "reopened", "state": "reopened",
"created_at": "2015-02-02T19:49:39.159Z", "created_at": "2015-02-02T19:49:39.159Z",
"updated_at": "2015-02-02T20:08:49.959Z", "updated_at": "2015-02-02T20:08:49.959Z",
...@@ -182,6 +212,8 @@ Parameters: ...@@ -182,6 +212,8 @@ Parameters:
"source_project_id": 4, "source_project_id": 4,
"target_project_id": 4, "target_project_id": 4,
"labels": [ ], "labels": [ ],
"description": "Qui voluptatibus placeat ipsa alias quasi. Deleniti rem ut sint. Optio velit qui distinctio.",
"work_in_progress": false,
"milestone": { "milestone": {
"id": 5, "id": 5,
"iid": 1, "iid": 1,
...@@ -193,6 +225,8 @@ Parameters: ...@@ -193,6 +225,8 @@ Parameters:
"updated_at": "2015-02-02T19:49:26.013Z", "updated_at": "2015-02-02T19:49:26.013Z",
"due_date": null "due_date": null
}, },
"merge_when_build_succeeds": true,
"merge_status": "can_be_merged",
"changes": [ "changes": [
{ {
"old_path": "VERSION", "old_path": "VERSION",
...@@ -252,7 +286,24 @@ Parameters: ...@@ -252,7 +286,24 @@ Parameters:
"state": "active", "state": "active",
"created_at": "2012-04-29T08:46:00Z" "created_at": "2012-04-29T08:46:00Z"
}, },
"description":"fixed login page css paddings" "source_project_id": 4,
"target_project_id": 4,
"labels": [ ],
"description":"fixed login page css paddings",
"work_in_progress": false,
"milestone": {
"id": 5,
"iid": 1,
"project_id": 4,
"title": "v2.0",
"description": "Assumenda aut placeat expedita exercitationem labore sunt enim earum.",
"state": "closed",
"created_at": "2015-02-02T19:49:26.013Z",
"updated_at": "2015-02-02T19:49:26.013Z",
"due_date": null
},
"merge_when_build_succeeds": true,
"merge_status": "can_be_merged"
} }
``` ```
...@@ -284,7 +335,6 @@ Parameters: ...@@ -284,7 +335,6 @@ Parameters:
"target_branch": "master", "target_branch": "master",
"project_id": 3, "project_id": 3,
"title": "test1", "title": "test1",
"description": "description1",
"state": "opened", "state": "opened",
"upvotes": 0, "upvotes": 0,
"downvotes": 0, "downvotes": 0,
...@@ -303,7 +353,25 @@ Parameters: ...@@ -303,7 +353,25 @@ Parameters:
"name": "Administrator", "name": "Administrator",
"state": "active", "state": "active",
"created_at": "2012-04-29T08:46:00Z" "created_at": "2012-04-29T08:46:00Z"
} },
"source_project_id": 4,
"target_project_id": 4,
"labels": [ ],
"description": "description1",
"work_in_progress": false,
"milestone": {
"id": 5,
"iid": 1,
"project_id": 4,
"title": "v2.0",
"description": "Assumenda aut placeat expedita exercitationem labore sunt enim earum.",
"state": "closed",
"created_at": "2015-02-02T19:49:26.013Z",
"updated_at": "2015-02-02T19:49:26.013Z",
"due_date": null
},
"merge_when_build_succeeds": true,
"merge_status": "can_be_merged"
} }
``` ```
...@@ -359,7 +427,25 @@ Parameters: ...@@ -359,7 +427,25 @@ Parameters:
"name": "Administrator", "name": "Administrator",
"state": "active", "state": "active",
"created_at": "2012-04-29T08:46:00Z" "created_at": "2012-04-29T08:46:00Z"
} },
"source_project_id": 4,
"target_project_id": 4,
"labels": [ ],
"description":"fixed login page css paddings",
"work_in_progress": false,
"milestone": {
"id": 5,
"iid": 1,
"project_id": 4,
"title": "v2.0",
"description": "Assumenda aut placeat expedita exercitationem labore sunt enim earum.",
"state": "closed",
"created_at": "2015-02-02T19:49:26.013Z",
"updated_at": "2015-02-02T19:49:26.013Z",
"due_date": null
},
"merge_when_build_succeeds": true,
"merge_status": "can_be_merged"
} }
``` ```
...@@ -387,7 +473,7 @@ Parameters: ...@@ -387,7 +473,7 @@ Parameters:
"source_branch": "test1", "source_branch": "test1",
"project_id": 3, "project_id": 3,
"title": "test1", "title": "test1",
"state": "merged", "state": "opened",
"upvotes": 0, "upvotes": 0,
"downvotes": 0, "downvotes": 0,
"author": { "author": {
...@@ -405,7 +491,25 @@ Parameters: ...@@ -405,7 +491,25 @@ Parameters:
"name": "Administrator", "name": "Administrator",
"state": "active", "state": "active",
"created_at": "2012-04-29T08:46:00Z" "created_at": "2012-04-29T08:46:00Z"
} },
"source_project_id": 4,
"target_project_id": 4,
"labels": [ ],
"description":"fixed login page css paddings",
"work_in_progress": false,
"milestone": {
"id": 5,
"iid": 1,
"project_id": 4,
"title": "v2.0",
"description": "Assumenda aut placeat expedita exercitationem labore sunt enim earum.",
"state": "closed",
"created_at": "2015-02-02T19:49:26.013Z",
"updated_at": "2015-02-02T19:49:26.013Z",
"due_date": null
},
"merge_when_build_succeeds": true,
"merge_status": "can_be_merged"
} }
``` ```
......
...@@ -175,6 +175,7 @@ module API ...@@ -175,6 +175,7 @@ module API
expose :work_in_progress?, as: :work_in_progress expose :work_in_progress?, as: :work_in_progress
expose :milestone, using: Entities::Milestone expose :milestone, using: Entities::Milestone
expose :merge_when_build_succeeds expose :merge_when_build_succeeds
expose :merge_status
end end
class MergeRequestChanges < MergeRequest class MergeRequestChanges < MergeRequest
......
...@@ -115,6 +115,7 @@ describe API::API, api: true do ...@@ -115,6 +115,7 @@ describe API::API, api: true do
expect(response.status).to eq(200) expect(response.status).to eq(200)
expect(json_response['title']).to eq(merge_request.title) expect(json_response['title']).to eq(merge_request.title)
expect(json_response['iid']).to eq(merge_request.iid) expect(json_response['iid']).to eq(merge_request.iid)
expect(json_response['merge_status']).to eq('can_be_merged')
end end
it 'should return merge_request by iid' do it 'should return merge_request by iid' do
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment