Skip to content
Snippets Groups Projects
Commit 2ce66c07 authored by Robert Schilling's avatar Robert Schilling
Browse files

API: Expose branch status

parent 060ec3d7
No related branches found
No related tags found
1 merge request!7796API: Expose branch status
Pipeline #
---
title: 'API: Expose merge status for branch API'
merge_request:
author: Robert Schilling
Loading
@@ -22,6 +22,7 @@ Example response:
Loading
@@ -22,6 +22,7 @@ Example response:
[ [
{ {
"name": "master", "name": "master",
"merged": false,
"protected": true, "protected": true,
"developers_can_push": false, "developers_can_push": false,
"developers_can_merge": false, "developers_can_merge": false,
Loading
@@ -65,6 +66,7 @@ Example response:
Loading
@@ -65,6 +66,7 @@ Example response:
```json ```json
{ {
"name": "master", "name": "master",
"merged": false,
"protected": true, "protected": true,
"developers_can_push": false, "developers_can_push": false,
"developers_can_merge": false, "developers_can_merge": false,
Loading
@@ -123,6 +125,7 @@ Example response:
Loading
@@ -123,6 +125,7 @@ Example response:
] ]
}, },
"name": "master", "name": "master",
"merged": false,
"protected": true, "protected": true,
"developers_can_push": true, "developers_can_push": true,
"developers_can_merge": true "developers_can_merge": true
Loading
@@ -166,6 +169,7 @@ Example response:
Loading
@@ -166,6 +169,7 @@ Example response:
] ]
}, },
"name": "master", "name": "master",
"merged": false,
"protected": false, "protected": false,
"developers_can_push": false, "developers_can_push": false,
"developers_can_merge": false "developers_can_merge": false
Loading
@@ -206,6 +210,7 @@ Example response:
Loading
@@ -206,6 +210,7 @@ Example response:
] ]
}, },
"name": "newbranch", "name": "newbranch",
"merged": false,
"protected": false, "protected": false,
"developers_can_push": false, "developers_can_push": false,
"developers_can_merge": false "developers_can_merge": false
Loading
Loading
Loading
@@ -141,8 +141,12 @@ module API
Loading
@@ -141,8 +141,12 @@ module API
options[:project].repository.commit(repo_branch.dereferenced_target) options[:project].repository.commit(repo_branch.dereferenced_target)
end end
   
expose :merged do |repo_branch, options|
options[:project].repository.merged_to_root_ref?(repo_branch.name)
end
expose :protected do |repo_branch, options| expose :protected do |repo_branch, options|
options[:project].protected_branch? repo_branch.name options[:project].protected_branch?(repo_branch.name)
end end
   
expose :developers_can_push do |repo_branch, options| expose :developers_can_push do |repo_branch, options|
Loading
Loading
Loading
@@ -31,11 +31,22 @@ describe API::API, api: true do
Loading
@@ -31,11 +31,22 @@ describe API::API, api: true do
   
expect(json_response['name']).to eq(branch_name) expect(json_response['name']).to eq(branch_name)
expect(json_response['commit']['id']).to eq(branch_sha) 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['protected']).to eq(false)
expect(json_response['developers_can_push']).to eq(false) expect(json_response['developers_can_push']).to eq(false)
expect(json_response['developers_can_merge']).to eq(false) expect(json_response['developers_can_merge']).to eq(false)
end 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 it "returns a 403 error if guest" do
get api("/projects/#{project.id}/repository/branches", user2) get api("/projects/#{project.id}/repository/branches", user2)
expect(response).to have_http_status(403) expect(response).to have_http_status(403)
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment