Can you approve your own GitLab merge request? Approval rules explained
Short answer
On GitLab Premium and Ultimate, not by default: the setting Prevent approval by merge request creator is on, though a project can turn it off unless its group or instance locks it. Approvals only block a merge when an approval rule requires them, which is a Premium and Ultimate feature; on Free they are optional. To approve, select Approve in the merge request widget or comment /approve. Revoke approval takes it back.
Whether you can approve your own merge request depends on two things: your GitLab plan and one project setting. Here is how approving works in GitLab in 2026, who counts as an approver, and how approval rules decide whether an approval is needed at all.
How to approve, and how to take it back
- In the browser: open the merge request and select Approve in the merge request widget, or comment
/approve. A green check appears beside your name in the reviewer list. - As part of a review: when you submit a review from Your review, choose Approve as the outcome. The other outcomes are Comment and Request changes.
- To undo it: select Revoke approval in the same widget.
- From the command line:
glab mr approve 235, or justglab mr approveon the merge request’s branch. Add--shawith the commit you reviewed, so the approval fails if someone has pushed since.glab mr revoke 235takes it back. - Through the API:
POST /projects/:id/merge_requests/:merge_request_iid/approve, with an optionalshathat returns409 Conflictif it no longer matches, and.../unapproveto take it back. Approving through the API works on every tier, Free included.
Free vs Premium: when an approval is required
| Feature | Free | Premium and Ultimate |
|---|---|---|
| Approve and revoke | Yes | Yes |
| Approvals block merging | No, they are optional | Yes, when an approval rule requires them |
| Approval rules: how many, from whom, on which branches | No | Yes, up to 100 required approvals per rule |
| Code Owner approval | No | Yes |
| Request changes blocks the merge | No | Yes |
| Settings for author and committer approval, new commits, re-authentication | No | Yes |
Who counts as an approver
On Free, anyone with at least the Developer role can approve. On Premium and Ultimate, each approval rule names its approvers, and to count for it a user must be a direct member of the project, its group, a parent group, a shared group, or a group added as approvers.
- Inherited members don’t count. Someone who only inherits access to an approver group is not an approver for that group.
- Roles: the Developer role or higher. Reporters and Planners count only through a shared group, and only once approval permissions are turned on for them.
- Code owners of the changed files count when the rule includes them.
Can the author or a committer approve?
On Premium and Ultimate, the author can’t by default, because Prevent approval by merge request creator is on. Two related settings sit beside it:
- Prevent approvals by users who add commits stops anyone who committed to the merge request, as Git author or committer, from approving it.
- Require user re-authentication (password or SAML) to approve asks approvers to sign in again first. It is set on top-level groups.
The first two live in the project’s Settings › Merge requests, under Merge request approvals › Approval settings, and a group or the instance can lock them. One more setting matters here: unless Prevent editing approval rules in merge requests is on, and it is off by default, the author can edit a merge request’s approval rules and override the project’s.
On Free, an approval never gates the merge, so the question only matters on the paid tiers.
What a new push does to approvals
The same settings decide what happens when commits are added to the source branch:
- Remove all approvals when commits are added to the source branch is the default: every approval resets, and reviewers approve again.
- Keep approvals: existing approvals stay.
- Remove approvals by Code Owners if their files changed: only a Code Owner whose files changed loses their approval.
So if every approval disappears after each push, that is the default at work. Choose Keep approvals to stop it.
Setting up an approval rule
- Go to Settings › Merge requests, find Approval rules, and select Add approval rule.
- Set Approvals required:
0makes the rule optional, anything above0makes it required. - Add the users or groups who can approve, and choose the target branch: all protected branches or a single branch.
To bring in Code Owners, enter a number in the Approvals required field of the All eligible users rule, and require code owner approval on the protected branch.
Request changes, and AI reviewers
A reviewer can submit Request changes instead of approving. On Premium and Ultimate, that blocks the merge until the same reviewer re-reviews and approves, or until someone who can merge selects Bypass. AI reviewers don’t change the count: GitLab Duo’s approvals, a beta in GitLab 19.5, don’t count toward required approvals, though with that beta on a change request from Duo blocks the merge like a person’s. More in can Claude or ChatGPT review a GitLab merge request? If every approval is in and the merge still won’t go, see why can’t I merge my GitLab merge request?
Approving from your phone
Most approvals come down to one tap once you have read the diff. MergeBell sends a push when someone requests your review, opens the merge request on a phone-sized diff, and lists what still blocks the merge, approvals included, next to its Approve and Merge buttons. Both are in the free tier. See how to review a GitLab merge request on your phone.
Frequently asked questions
Can I approve my own merge request in GitLab?
On Premium and Ultimate, not by default: Prevent approval by merge request creator is on. It can be turned off in the project's Settings › Merge requests, unless the group or instance locks it. On Free, approvals are optional and never block a merge.
How do I approve a merge request in GitLab?
Select Approve in the merge request widget, or comment /approve. You can also approve when you submit a review, with glab mr approve, or with the API's approve endpoint.
Do approvals block merging on GitLab Free?
No. On Free, approvals are optional: they record who reviewed, but they don't prevent a merge. Required approvals and approval rules are Premium and Ultimate features.
How do I remove my approval?
Select Revoke approval in the merge request widget, run glab mr revoke with the merge request's number, or call the API's unapprove endpoint.
Why can't I approve a merge request?
Usually a setting or a rule: you are the author or added commits and the project prevents that, you are not an eligible approver for the rule (inherited members of an approver group don't count), or the project asks you to sign in again before approving.
Sources
- GitLab docs — Merge request approvals
- GitLab docs — Approval rules
- GitLab docs — Approval settings
- GitLab docs — Merge request reviews
- GitLab docs — Merge request approvals API
- GitLab CLI docs — glab mr approve
- GitLab CLI docs — glab mr revoke
Checked against these pages on 18 October 2026. GitLab changes quickly — if something here no longer matches, tell us and we will fix it.
Do this from your phone with MergeBell
Free for the whole review loop: the To-Do inbox, diffs and line comments, approve and merge, pipelines with retry, and push alerts for your To-Dos. Works with gitlab.com and self-managed GitLab 16.0+.
Get MergeBell for AndroidiPhone: email me at launch
On Google Play for Android 12 or later. The iPhone app is coming soon to the App Store. An independent app, not affiliated with GitLab Inc.