Merge request approval settings
DETAILS: Tier: Premium, Ultimate Offering: GitLab.com, Self-managed, GitLab Dedicated
You can configure the settings for merge request approvals to ensure the approval rules meet your use case. You can also configure approval rules, which define the number and type of users who must approve work before it's merged. Merge request approval settings define how to apply those rules as a merge request moves toward completion.
Use any combination of these settings to configure approval limits for merge requests:
- Prevent approval by author: Prevents the author of a merge request from approving it.
- Prevent approvals by users who add commits: Prevents users who add commits to a merge request from also approving it.
- Prevent editing approval rules in merge requests: Prevents users from overriding project level approval rules on merge requests.
- Require user re-authentication (password or SAML) to approve: Force potential approvers to first authenticate with either a password or with SAML.
- Code Owner approval removals: Define what happens to existing approvals when
commits are added to the merge request.
- Keep approvals: Do not remove any approvals.
- Remove all approvals: Remove all existing approvals.
- Remove approvals by Code Owners if their files changed: If a Code Owner approves a merge request, and a later commit changes files they are a Code Owner for, their approval is removed.
Edit merge request approval settings
To view or edit merge request approval settings for a single project:
- On the left sidebar, select Search or go to and find your project.
- Select Settings > Merge requests.
- Expand Approvals.
Cascade settings from the instance or top-level group
To simplify the management of approval rule settings, configure the approval rules at the broadest possible level. Rules created:
- At the instance level apply to all groups and projects on an instance.
- On a top-level group apply to all subgroups and projects.
If a group or project inherits settings, you can't change them in the inheriting group or project. You must change the settings where they originated: the top-level group or instance.
Prevent approval by author
By default, the author of a merge request cannot approve it. To change this setting:
- On the left sidebar, select Search or go to and find your project.
- Select Settings > Merge requests.
- In the Merge request approvals section, scroll to Approval settings and clear the Prevent approval by author checkbox.
- Select Save changes.
Authors can edit the approval rule in an individual merge request and override this setting, unless you configure one of these options:
- Prevent overrides of default approvals at the project level.
- (Self-managed instances only) Prevent overrides of default approvals at the instance level. When configured at the instance level, you can't edit this setting at the project or individual merge request levels.
Prevent approvals by users who add commits
- Feature flag
keep_merge_commits_for_approvals
added in GitLab 16.3 to also include merge commits in this check.- Feature flag
keep_merge_commits_for_approvals
removed in GitLab 16.5. This check now includes merge commits.
By default, users who commit to a merge request can still approve it. At both the project level or instance level, you can prevent committers from approving merge requests that are partially their own. To do this:
- On the left sidebar, select Search or go to and find your project.
- Select Settings > Merge requests.
- In the Merge request approvals section, scroll to Approval settings and select Prevent approvals by users who add commits. If this checkbox is cleared, an administrator has disabled it at the instance level, and you can't change it at the project level.
- Select Save changes.
Code owners who commit to a merge request cannot approve it, if the merge request affects files they own.
For more information, see the official Git documentation.
Prevent editing approval rules in merge requests
By default, users can override the approval rules you create for a project on a per-merge-request basis. If you don't want users to change approval rules on merge requests, you can disable this setting:
- On the left sidebar, select Search or go to and find your project.
- Select Settings > Merge requests.
- In the Merge request approvals section, scroll to Approval settings and select Prevent editing approval rules in merge requests.
- Select Save changes.
This change affects all open merge requests.
When you change this field, it can affect all open merge requests depending on the setting:
- If users could edit approval rules previously, and you disable this behavior, GitLab updates all open merge requests to enforce the approval rules.
- If users could not edit approval rules previously, and you enable approval rule editing, open merge requests remain unchanged. This preserves any changes already made to approval rules in those merge requests.
Require user re-authentication to approve
- Requiring re-authentication by using SAML authentication for GitLab.com groups introduced in GitLab 16.6 with a flag named
ff_require_saml_auth_to_approve
. Disabled by default.- Requiring re-authentication by using SAML authentication for self-managed instances introduced in GitLab 16.7 with a flag named
ff_require_saml_auth_to_approve
. Disabled by default.- Enabled
ff_require_saml_auth_to_approve
by default in GitLab 16.8 for GitLab.com and self-managed instances.
FLAG:
On self-managed GitLab, by default requiring re-authentication by using SAML authentication is available. To hide the feature, an administrator can
disable the feature flag named ff_require_saml_auth_to_approve
. On GitLab.com and GitLab Dedicated, this feature is available.
You can force potential approvers to first authenticate with SAML or a password. This permission enables an electronic signature for approvals, such as the one defined by Code of Federal Regulations (CFR) Part 11.
Prerequisites:
- This setting is only available on top-level groups.
- On the left sidebar, select Search or go to and find your project.
- Enable password authentication and SAML authentication. For more information on:
- Password authentication, see sign-in restrictions documentation.
- SAML authentication for GitLab.com groups, see SAML SSO for GitLab.com groups documentation.
- SAML authentication for self-managed instances, see SAML SSO for self-managed GitLab instances.
- On the left sidebar, select Settings > Merge requests.
- In the Merge request approvals section, scroll to Approval settings and select Require user re-authentication (password or SAML) to approve.
- Select Save changes.
Remove all approvals when commits are added to the source branch
DETAILS: Tier: Premium, Ultimate Offering: GitLab.com, Self-managed, GitLab Dedicated
By default, an approval on a merge request is removed when you add more changes after the approval. In GitLab Premium and Ultimate tiers, to keep existing approvals after more changes are added to the merge request:
- On the left sidebar, select Search or go to and find your project.
- Select Settings > Merge requests.
- In the Merge request approvals section, scroll to Approval settings and clear the Remove all approvals checkbox.
- Select Save changes.
GitLab uses git patch-id
to identify diffs
in merge requests. This value is a reasonably stable and unique identifier, and it enables
smarter decisions about resetting approvals inside a merge request. When you push new changes
to a merge request, the patch-id
is evaluated against the previous patch-id
to determine
if the approvals should be reset. This enables GitLab to make better reset decisions when
you perform commands like git rebase
or git merge <target>
on a feature branch.
Remove approvals by Code Owners if their files changed
- Introduced in GitLab 15.3.
To remove approvals only from Code Owners whose files change in a new commit:
Prerequisites:
- You must have at least the Maintainer role for a project.
To do this:
- On the left sidebar, select Search or go to and find your project.
- Select Settings > Merge requests.
- In the Merge request approvals section, scroll to Approval settings and select Remove approvals by Code Owners if their files changed.
- Select Save changes.