diff --git a/doc/api/merge_request_approvals.md b/doc/api/merge_request_approvals.md index 1d99c3239464c5809d526be5b6596892fa905e1b..f32a5eebaeb815f4f7c19d1714e845b91f19bf71 100644 --- a/doc/api/merge_request_approvals.md +++ b/doc/api/merge_request_approvals.md @@ -33,6 +33,7 @@ GET /projects/:id/approvals { "approvals_before_merge": 2, "reset_approvals_on_push": true, + "selective_code_owner_removals": false, "disable_overriding_approvers_per_merge_request": false, "merge_requests_author_approval": true, "merge_requests_disable_committers_approval": false, @@ -57,16 +58,18 @@ POST /projects/:id/approvals | ------------------------------------------------ | ------- | -------- | --------------------------------------------------------------------------------------------------- | | `id` | integer or string | yes | The ID or [URL-encoded path of a project](index.md#namespaced-path-encoding) | | `approvals_before_merge` | integer | no | How many approvals are required before an MR can be merged. Deprecated in 12.0 in favor of Approval Rules API. | -| `reset_approvals_on_push` | boolean | no | Reset approvals on a new push | | `disable_overriding_approvers_per_merge_request` | boolean | no | Allow or prevent overriding approvers per MR | | `merge_requests_author_approval` | boolean | no | Allow or prevent authors from self approving merge requests; `true` means authors can self approve | | `merge_requests_disable_committers_approval` | boolean | no | Allow or prevent committers from self approving merge requests | | `require_password_to_approve` | boolean | no | Require approver to enter a password to authenticate before adding the approval | +| `reset_approvals_on_push` | boolean | no | Reset approvals on a new push. | +| `selective_code_owner_removals` | boolean | no | Reset approvals from Code Owners if their files changed. Can be enabled only if `reset_approvals_on_push` is disabled. | ```json { "approvals_before_merge": 2, "reset_approvals_on_push": true, + "selective_code_owner_removals": false, "disable_overriding_approvers_per_merge_request": false, "merge_requests_author_approval": false, "merge_requests_disable_committers_approval": false, diff --git a/ee/lib/api/merge_request_approval_settings.rb b/ee/lib/api/merge_request_approval_settings.rb index 08d31c838c66d0fffdbe2468c0550ee76dfba12a..f953652315c82d54ece601745513cb88c00ae07a 100644 --- a/ee/lib/api/merge_request_approval_settings.rb +++ b/ee/lib/api/merge_request_approval_settings.rb @@ -15,7 +15,7 @@ class MergeRequestApprovalSettings < ::API::Base optional :allow_overrides_to_approver_list_per_merge_request, type: Boolean, desc: 'Allow overrides to approver list per merge request', allow_blank: false optional :retain_approvals_on_push, type: Boolean, desc: 'Retain approval count on a new push', allow_blank: false - optional :selective_code_owner_removals, type: Boolean, desc: 'Retain approvals on rules unaffected by a new push', allow_blank: false + optional :selective_code_owner_removals, type: Boolean, desc: 'Reset approvals from Code Owners if their files changed', allow_blank: false optional :require_password_to_approve, type: Boolean, desc: 'Require approver to authenticate before approving', allow_blank: false diff --git a/ee/lib/api/project_approvals.rb b/ee/lib/api/project_approvals.rb index 64184b2d62125b820cc1f4682f2fe83d3ee0b214..4eb63e4022e19a2889772402d56b0ddd3c9c7e88 100644 --- a/ee/lib/api/project_approvals.rb +++ b/ee/lib/api/project_approvals.rb @@ -49,7 +49,7 @@ def extract_project_settings(project_params) params do optional :approvals_before_merge, type: Integer, desc: 'The amount of approvals required before an MR can be merged' optional :reset_approvals_on_push, type: Boolean, desc: 'Should the approval count be reset on a new push' - optional :selective_code_owner_removals, type: Boolean, desc: 'Retain approvals on rules unaffected by a new push' + optional :selective_code_owner_removals, type: Boolean, desc: 'Reset approvals from Code Owners if their files changed' optional :disable_overriding_approvers_per_merge_request, type: Boolean, desc: 'Should MRs be able to override approvers and approval count' optional :merge_requests_author_approval, type: Boolean, desc: 'Should merge request authors be able to self approve merge requests; `true` means authors cannot self approve' optional :merge_requests_disable_committers_approval, type: Boolean, desc: 'Should committers be able to self approve merge requests'