Commit 467b44cb authored by Rémy Coutable's avatar Rémy Coutable

Merge branch 'api-branch-status' into 'master'

API: Expose branch status

Closes https://gitlab.com/gitlab-org/gitlab-ce/issues/24938

See merge request !7796
parents d48787a2 2ce66c07
---
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)
......
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