doc/user/project/merge_requests/approvals/_index.md
{{< details >}}
{{< /details >}}
To set up a review process for changes in your project, configure merge request approvals. They help to ensure that changes are reviewed before they're merged into your project. You can configure approvals to be optional or required, depending on your project's needs and GitLab tier.
GitLab Free allows all users with at least the Developer role to approve merge requests. These approvals are optional and don't prevent merging without approval.
GitLab Premium and GitLab Ultimate provide you with more flexibility to:
Create required rules about the number and type of required approvals.
Create a list of code owners for specific files.
Configure approvals for the entire instance.
Configure group merge request approval settings.
[!note] Support for group merge request approval settings is tracked in epic 4367.
Prerequisites:
To configure approval rules:
You can also configure:
For more information on configuring rules, see approval rules.
{{< details >}}
{{< /details >}}
Required approvals enforce code reviews by specified users. Without these approvals, merging is not possible.
Use cases include:
CODEOWNERS file to determine reviewers.{{< history >}}
mr_approvers_filter_hidden_users removed.{{< /history >}}
To view the approval status of a merge request, check the merge request itself, or the list of merge requests for your project or group.
Eligible approvers can view the approval status on a single merge request.
To view the approval status:
In the top bar, select Search or go to and find your project.
In the left sidebar, select Code > Merge requests and find your merge request.
To view the merge request, select its title.
Go to the merge request widget to see the approval status. In this example, you can approve the merge request:
The widget displays one of these statuses:
To check if your approval satisfies Code Owner requirements, select Expand eligible approvers ({{< icon name="chevron-lg-down" >}}).
Approver visibility depends on your project membership, and group privacy:
The list of merge requests for your project or group shows the approval status for each merge request:
| Example | Description |
|---|---|
| Required approvals are missing. ({{< icon name="approval" >}}) | |
| Approvals are satisfied. ({{< icon name="check" >}}) | |
| Approvals are satisfied, and you are one of the approvers. ({{< icon name="approval-solid" >}}) |
To see the review and approval status for each reviewer:
Each reviewer's status is shown next to their name.
{{< icon name="dash-circle" >}} Awaiting review
{{< icon name="status_running" >}} Review in progress
{{< icon name="check-circle" >}} Approved
{{< icon name="comment-lines" >}} Reviewer commented
{{< icon name="status_warning" >}} Reviewer requested changes
To re-request a review, select the Re-request a review icon ({{< icon name="redo" >}}) next to the user.
Eligible approvers can approve merge requests in two ways:
/approve quick action in a comment.Approved merge requests display a green check mark ({{< icon name="check-circle-filled" >}}) next to the user's name in the reviewer list. After a merge request receives the required approvals, it is ready to merge, unless it's blocked due to:
To prevent merge request creators from approving their own work, enable the Prevent approval by merge request creator setting.
If you enable approval rule overrides, changes to default approval rules don't affect existing merge requests, except for target branch changes.
{{< history >}}
invalid_scan_result_policy_prevents_merge removed.{{< /history >}}
GitLab marks approval rules as Auto approved when they're impossible to satisfy, such as when:
These rules are automatically approved to unblock merge requests, unless you created rules through a merge request approval policy.
Invalid policy-created rules: