diff --git a/app/views/projects/merge_requests/show/_approve.html.haml b/app/views/projects/merge_requests/show/_approve.html.haml index 0db2374334..ed1a3b4b94 100644 --- a/app/views/projects/merge_requests/show/_approve.html.haml +++ b/app/views/projects/merge_requests/show/_approve.html.haml @@ -1,14 +1,6 @@ .clearfix - unless @merge_request.approved_by?(current_user) - .pull-left + .append-bottom-10 = form_for [:approve, @project.namespace.becomes(Namespace), @project, @merge_request], method: :post do |f| = f.submit "Approve Merge Request", class: "btn btn-reopen approve-btn" - - - if @merge_request.approvals.any? - .pull-left.approved-by-users - Approved by - - @merge_request.approved_by_users.each do |user| - = link_to_member(@project, user, name: false, size: 24) - -%br %p This merge request must be approved by #{pluralize(@merge_request.approvals_required, 'user')} before it can be merged diff --git a/app/views/projects/merge_requests/show/_mr_accept.html.haml b/app/views/projects/merge_requests/show/_mr_accept.html.haml index 5ee8777b68..da378fab3e 100644 --- a/app/views/projects/merge_requests/show/_mr_accept.html.haml +++ b/app/views/projects/merge_requests/show/_mr_accept.html.haml @@ -49,6 +49,11 @@ %strong = link_to "command line", "#modal_merge_info", class: "how_to_merge_link vlink", title: "How To Merge", "data-toggle" => "modal" + - if @merge_request.approvals.any? + .approved-by-users + Approved by + - @merge_request.approved_by_users.each do |user| + = link_to_member(@project, user, name: false, size: 24) .automerge_widget.no_satellite.hide %p diff --git a/doc/workflow/README.md b/doc/workflow/README.md index b3e5961881..4e96cacc15 100644 --- a/doc/workflow/README.md +++ b/doc/workflow/README.md @@ -4,6 +4,7 @@ - [Project forking workflow](forking_workflow.md) - [Project Features](project_features.md) - [Authorization for merge requests](authorization_for_merge_requests.md) +- [Approval for merge requests](approval_for_merge_requests.md) - [Rebase before merge](rebase_before_merge.md) - [Groups](groups.md) - [Share projects with other groups](share_projects_with_other_groups.md) diff --git a/doc/workflow/approval_for_merge_requests.md b/doc/workflow/approval_for_merge_requests.md new file mode 100644 index 0000000000..a093777c74 --- /dev/null +++ b/doc/workflow/approval_for_merge_requests.md @@ -0,0 +1,18 @@ +# Approval for merge requests + +Usually you accept merge request if it is ready and reviewed. But in certain +cases you want to be sure that every merge request will be reviewed by several +people before it gets merged. You can use GitLab approve feature for enforcing such +workflow. To enable it you should go to project settings page and set +"Approvals required" field to numeric value. For example if you set it to number 3 +that means each merge request should receive 3 approves from different people +before it can be merged via user interface. + + +![approve_setting](approval_for_merge_requests/settings.png) + +After you set approves value you can see on merge request page "Approve" button +instead of "Accept" one. As soon as merge request get enough approvals it will +be available for merge with user interface. + +![approve_merge_request](approval_for_merge_requests/mr.png) diff --git a/doc/workflow/approval_for_merge_requests/mr.png b/doc/workflow/approval_for_merge_requests/mr.png new file mode 100644 index 0000000000..29cc1300ec Binary files /dev/null and b/doc/workflow/approval_for_merge_requests/mr.png differ diff --git a/doc/workflow/approval_for_merge_requests/settings.png b/doc/workflow/approval_for_merge_requests/settings.png new file mode 100644 index 0000000000..d3ddda49ad Binary files /dev/null and b/doc/workflow/approval_for_merge_requests/settings.png differ