Expose whether current user can push into a branch on branches API

This commit is contained in:
Douwe Maan 2018-06-18 12:02:56 +02:00
parent 99fdbe4c23
commit 07e95b0cd4
No known key found for this signature in database
GPG Key ID: 5976703F65143D36
4 changed files with 19 additions and 4 deletions

View File

@ -0,0 +1,5 @@
---
title: Expose whether current user can push into a branch on branches API
merge_request:
author:
type: added

View File

@ -29,6 +29,7 @@ Example response:
"protected": true,
"developers_can_push": false,
"developers_can_merge": false,
"can_push": true,
"commit": {
"author_email": "john@example.com",
"author_name": "John Smith",
@ -76,6 +77,7 @@ Example response:
"protected": true,
"developers_can_push": false,
"developers_can_merge": false,
"can_push": true,
"commit": {
"author_email": "john@example.com",
"author_name": "John Smith",
@ -140,7 +142,8 @@ Example response:
"merged": false,
"protected": true,
"developers_can_push": true,
"developers_can_merge": true
"developers_can_merge": true,
"can_push": true
}
```
@ -188,7 +191,8 @@ Example response:
"merged": false,
"protected": false,
"developers_can_push": false,
"developers_can_merge": false
"developers_can_merge": false,
"can_push": true
}
```
@ -231,7 +235,8 @@ Example response:
"merged": false,
"protected": false,
"developers_can_push": false,
"developers_can_merge": false
"developers_can_merge": false,
"can_push": true
}
```

View File

@ -349,6 +349,10 @@ module API
expose :developers_can_merge do |repo_branch, options|
options[:project].protected_branches.developers_can?(:merge, repo_branch.name)
end
expose :can_push do |repo_branch, options|
Gitlab::UserAccess.new(options[:current_user], project: options[:project]).can_push_to_branch?(repo_branch.name)
end
end
class TreeObject < Grape::Entity

View File

@ -14,7 +14,8 @@
"merged": { "type": "boolean" },
"protected": { "type": "boolean" },
"developers_can_push": { "type": "boolean" },
"developers_can_merge": { "type": "boolean" }
"developers_can_merge": { "type": "boolean" },
"can_push": { "type": "boolean" }
},
"additionalProperties": false
}