debian-mirror-gitlab/doc/user/project/merge_requests/approvals/index.md
2023-01-12 18:35:48 +00:00

7 KiB

stage group info type disqus_identifier
Create Source Code To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments reference, concepts https://docs.gitlab.com/ee/user/project/merge_requests/approvals/index.html

Merge request approvals (FREE)

Redesign introduced in GitLab 11.8 and feature flag removed in 12.0.

You can configure your merge requests so that they must be approved before they can be merged. While GitLab Free allows all users with Developer or greater permissions to approve merge requests, these approvals are optional. GitLab Premium and GitLab Ultimate provide additional flexibility:

  • Create required rules about the number and type of approvers before work can merge.
  • Specify a list of users who act as code owners for specific files, and require their approval before work can merge.

You can configure merge request approvals on a per-project basis, and on the group level. Administrators of GitLab Premium and GitLab Ultimate self-managed GitLab instances can also configure approvals for the entire instance.

How approvals work

With merge request approval rules, you can set the minimum number of required approvals before work can merge into your project. You can also extend these rules to define what types of users can approve work. Some examples of rules you can create include:

You can also configure:

Approve a merge request

When an eligible approver visits an open merge request, GitLab displays one of these buttons after the body of the merge request:

  • Approve: The merge request doesn't yet have the required number of approvals.
  • Approve additionally: The merge request has the required number of approvals.
  • Revoke approval: The user viewing the merge request has already approved the merge request.

Eligible approvers can also use the /approve quick action when adding a comment to a merge request. In GitLab 13.10 and later, if a user approves a merge request and is shown in the reviewer list, a green check mark ({check-circle-filled}) displays next to their name.

After a merge request receives the number and type of approvals you configure, it can merge unless it's blocked for another reason. Merge requests can be blocked by other problems, such as merge conflicts, unresolved threads, or a failed CI/CD pipeline.

To prevent merge request authors from approving their own merge requests, enable Prevent author approval in your project's settings.

If you enable approval rule overrides, merge requests created before a change to default approval rules are not affected. The only exceptions are changes to the target branch of the rule.

Optional approvals

Introduced in GitLab 13.2.

GitLab allows all users with Developer or greater permissions to approve merge requests. Approvals in GitLab Free are optional, and don't prevent a merge request from merging without approval.

Required approvals (PREMIUM)

Moved to GitLab Premium in 13.9.

Required approvals enforce code reviews by the number and type of users you specify. Without the approvals, the work cannot merge. Required approvals enable multiple use cases:

Invalid rules

Introduced in GitLab 15.1.

Whenever an approval rule cannot be satisfied, the rule will be displayed as Invalid. This applies to the following conditions:

  • The only eligible approver is the author of the merge request.
  • No eligible approvers (either groups or users) have been assigned to the approval rule.

These rules will be automatically approved to unblock their respective merge requests.