API: Expose branch status
This commit is contained in:
parent
060ec3d77d
commit
2ce66c071f
4 changed files with 25 additions and 1 deletions
4
changelogs/unreleased/api-branch-status.yml
Normal file
4
changelogs/unreleased/api-branch-status.yml
Normal file
|
@ -0,0 +1,4 @@
|
|||
---
|
||||
title: 'API: Expose merge status for branch API'
|
||||
merge_request:
|
||||
author: Robert Schilling
|
|
@ -22,6 +22,7 @@ Example response:
|
|||
[
|
||||
{
|
||||
"name": "master",
|
||||
"merged": false,
|
||||
"protected": true,
|
||||
"developers_can_push": false,
|
||||
"developers_can_merge": false,
|
||||
|
@ -65,6 +66,7 @@ Example response:
|
|||
```json
|
||||
{
|
||||
"name": "master",
|
||||
"merged": false,
|
||||
"protected": true,
|
||||
"developers_can_push": false,
|
||||
"developers_can_merge": false,
|
||||
|
@ -123,6 +125,7 @@ Example response:
|
|||
]
|
||||
},
|
||||
"name": "master",
|
||||
"merged": false,
|
||||
"protected": true,
|
||||
"developers_can_push": true,
|
||||
"developers_can_merge": true
|
||||
|
@ -166,6 +169,7 @@ Example response:
|
|||
]
|
||||
},
|
||||
"name": "master",
|
||||
"merged": false,
|
||||
"protected": false,
|
||||
"developers_can_push": false,
|
||||
"developers_can_merge": false
|
||||
|
@ -206,6 +210,7 @@ Example response:
|
|||
]
|
||||
},
|
||||
"name": "newbranch",
|
||||
"merged": false,
|
||||
"protected": false,
|
||||
"developers_can_push": false,
|
||||
"developers_can_merge": false
|
||||
|
|
|
@ -141,8 +141,12 @@ module API
|
|||
options[:project].repository.commit(repo_branch.dereferenced_target)
|
||||
end
|
||||
|
||||
expose :merged do |repo_branch, options|
|
||||
options[:project].repository.merged_to_root_ref?(repo_branch.name)
|
||||
end
|
||||
|
||||
expose :protected do |repo_branch, options|
|
||||
options[:project].protected_branch? repo_branch.name
|
||||
options[:project].protected_branch?(repo_branch.name)
|
||||
end
|
||||
|
||||
expose :developers_can_push do |repo_branch, options|
|
||||
|
|
|
@ -31,11 +31,22 @@ describe API::API, api: true do
|
|||
|
||||
expect(json_response['name']).to eq(branch_name)
|
||||
expect(json_response['commit']['id']).to eq(branch_sha)
|
||||
expect(json_response['merged']).to eq(false)
|
||||
expect(json_response['protected']).to eq(false)
|
||||
expect(json_response['developers_can_push']).to eq(false)
|
||||
expect(json_response['developers_can_merge']).to eq(false)
|
||||
end
|
||||
|
||||
context 'on a merged branch' do
|
||||
it "returns the branch information for a single branch" do
|
||||
get api("/projects/#{project.id}/repository/branches/merge-test", user)
|
||||
|
||||
expect(response).to have_http_status(200)
|
||||
expect(json_response['name']).to eq('merge-test')
|
||||
expect(json_response['merged']).to eq(true)
|
||||
end
|
||||
end
|
||||
|
||||
it "returns a 403 error if guest" do
|
||||
get api("/projects/#{project.id}/repository/branches", user2)
|
||||
expect(response).to have_http_status(403)
|
||||
|
|
Loading…
Reference in a new issue