Merge request reviews
DETAILS: Tier: Free, Premium, Ultimate Offering: GitLab.com, Self-managed, GitLab Dedicated
Merge requests are the primary method of making changes to files in a GitLab project. Create and submit a merge request to propose changes. Your team leaves comments on your merge request, and makes suggestions you can accept from the user interface. When a teammate reviews your work, they can choose to accept or reject it.
To review merge requests, you can use:
- The GitLab interface.
- Visual Studio Code, if you have configured the GitLab Workflow extension for VS Code.
- Your terminal window, if you have configured the GitLab CLI.
For an overview, see Merge request review.
View the review status of a merge request
To do this:
-
On the left sidebar, select Search or go to and find your project.
-
Select Code > Merge requests and find your merge request.
-
Select the title of the merge request to view it.
-
Scroll to the merge request widget to see the mergeability and approval status for the merge request. For example, the lack of required approvals blocks this merge request:
To see the individual review status for each reviewer, check the right sidebar of a merge request. Each Reviewer shows the status to the right of the user's name:
- {dash-circle} Awaiting review from this user.
- {status_running} The user's review is in progress.
- {check-circle} Approved by this user.
- {comment-lines} User has requested changes, and blocked this merge request. (If needed, you can bypass this block.)
Request a review
- Enhanced reviewer drawer introduced in GitLab 17.5 with a flag named
reviewer_assign_drawer
.- Enabled on GitLab.com and self-managed in GitLab 17.5.
When you've finished preparing your changes, it's time to request a review. To assign a reviewer to your merge request,
either use the /assign_reviewer @user
quick action in any text field, or:
- On the left sidebar, select Search or go to and find your project.
- Select Code > Merge requests and find your merge request.
- Select the title of the merge request to view it.
- On the right sidebar, in the Reviewers section:
- To find a specific reviewer by name, select Edit.
- In GitLab Premium and Ultimate, to find a reviewer who fulfills approval rules, select Assign to open the reviewer drawer.
GitLab adds the merge request to the user's review requests.
Find reviewers who fulfill approval rules
DETAILS: Tier: Premium, Ultimate Offering: GitLab.com, Self-managed, GitLab Dedicated
GitLab Premium and Ultimate help you more quickly find the best reviewers for your merge request. Use the Assign reviewers drawer to filter lists of reviewers. See the Code Owners for the files changed in your merge request, and the users who satisfy your project's approval rules.
In this example, the merge request requires 3 Code Owner approvals, but has none so far:
- To see optional approval rules or Code Owners, select Optional approval rules ({chevron-lg-up}) to show them.
- Next to the reviewer type you need, select Edit:
- Code Owners shows only the Code Owners for that file type.
- Approval rules shows only users who fulfill that approval rule.
- Select your desired reviewers. (GitLab Premium and Ultimate enable you to select multiple reviewers.)
- Repeat for each required Code Owner and Approval rule item.
- When you've selected your reviewers, on the top right, select Close ({close}) to hide the drawer.
Re-request a review
After a reviewer completes their merge request reviews, the author of the merge request can request a new review from the reviewer:
- On the left sidebar, select Search or go to and find your project.
- Select Code > Merge requests and find your merge request.
- Select the title of the merge request to view it.
- If you have collapsed the right sidebar in the merge request, select the {chevron-double-lg-left} Expand Sidebar to expand it.
- In the Reviewers section, select the Re-request a review icon ({redo}) next to the reviewer's name.
GitLab creates a new to-do item for the reviewer, and sends them a notification email.
Start a review
If a user has asked you to review a merge request:
-
Either:
- Press Shift + r to go to your Review requests page.
- On the left sidebar, select Merge requests ({merge-request}) > Review requests.
-
Find your merge request, and select the title of the merge request to view it.
-
Read the merge request description and comments to learn about the merge request.
-
Select Changes to view the diff of the proposed changes. To learn more about the Changes page, see Changes in merge requests.
-
Suggest multi-line or single-line changes as needed. If you select Start a review instead of Add comment now, your review comments remain unpublished until your review is complete.
-
To add more comments after you've selected Start a review, add them to your review from:
- The Changes tab, containing the diff view.
- The Overview tab, and selecting Add to review:
-
Select Submit your review to publish all review comments added with either Start a review or Add to review. Until you submit your review, these comments remain unpublished.
Resolve or unresolve thread with a comment
Review comments can also resolve or unresolve resolvable threads. To resolve or unresolve a thread when replying to a comment:
- In the comment text area, write your comment.
- Select or clear Resolve thread.
- Select Add comment now or Add to review.
Pending comments display information about delayed actions. GitLab does not perform these actions until you publish the comment:
- {check-circle-filled} Thread is resolved.
- {check-circle} Thread stays unresolved.
Submit a review
To submit your completed review, you can:
-
Use the
/submit_review
quick action in the text of a non-review comment. -
Select Finish review, then select Submit review at the bottom of the dialog. In the dialog, you can supply a Summary comment, approve (or reject) the merge request, and include quick actions:
When you submit your review, GitLab:
- Publishes the comments in your review.
- Sends a single email to every notifiable user of the merge request, with your review comments attached. Replying to this email creates a new comment on the merge request.
- Perform any quick actions you added to your review comments.
- Optional. Shows whether you have also approved or requested changes:
- Comment: Leave general feedback without explicit approval.
- Approve: Leave feedback and approve the changes.
- Request changes: Block the merge request from merging until the author addresses your feedback.
Prevent merge when you request changes
DETAILS: Tier: Premium, Ultimate Offering: GitLab.com, Self-managed, GitLab Dedicated
- Introduced in GitLab 16.11 with a flag named
mr_reviewer_requests_changes
. Disabled by default.- Enabled by default on GitLab.com and self-managed in GitLab 17.2.
- Feature flag removed in GitLab 17.3.
A reviewer requesting changes blocks a merge request from merging. When this happens, the merge request reports area shows the message The change requests must be completed or resolved. To unblock the merge request, the reviewer who requested changes should re-review and approve the merge request.
Bypass a request for changes
If the user who requested changes is unavailable to re-review or approve, another user with permission to merge the merge request can override this check:
-
On the left sidebar, select Search or go to and find your project.
-
Select Code > Merge requests and find your merge request.
-
Select the title of the merge request to view it.
-
On the merge request Overview, scroll to the merge request reports area.
-
Next to The change requests must be completed or resolved, select Bypass:
-
The merge reports area shows
Merge with caution: Override added
. To see which check a user bypassed, select Expand merge checks ({chevron-lg-down}) and find the check that contains a warning ({status_warning}) icon. In this example, the author bypassed The change requests must be completed or resolved:
Download merge request changes
As a diff
To download the changes included in a merge request as a diff:
- On the left sidebar, select Search or go to and find your project.
- Select Code > Merge requests.
- Select your merge request.
- In the upper-right corner, select Code > Plain diff.
If you know the URL of the merge request, you can also download the diff from
the command line by appending .diff
to the URL. This example downloads the diff
for merge request 000000
:
https://gitlab.com/gitlab-org/gitlab/-/merge_requests/000000.diff
To download and apply the diff in a one-line CLI command:
curl "https://gitlab.com/gitlab-org/gitlab/-/merge_requests/000000.diff" | git apply
As a patch file
To download the changes included in a merge request as a patch file:
- On the left sidebar, select Search or go to and find your project.
- Select Code > Merge requests.
- Select your merge request.
- In the upper-right corner, select Code > Patches.
If you know the URL of the merge request, you can also download the patch from
the command line by appending .patch
to the URL. This example downloads the patch
file for merge request 000000
:
https://gitlab.com/gitlab-org/gitlab/-/merge_requests/000000.patch
To download and apply the patch in a one-line CLI command using git am
:
curl "https://gitlab.com/gitlab-org/gitlab/-/merge_requests/000000.patch" | git am
Associated features
Merge requests are related to these features:
- Cherry-pick changes: In the GitLab UI, select Cherry-pick in a merged merge request or a commit to cherry-pick it.
- Fast-forward merge requests: For a linear Git history and a way to accept merge requests without creating merge commits
- Find the merge request that introduced a change: When viewing the commit details page, GitLab links to the merge requests containing that commit.
- Merge requests versions: Select and compare the different versions of merge request diffs
- Resolve conflicts: GitLab can provide the option to resolve certain merge request conflicts in the GitLab UI.
- Revert changes: Revert changes from any commit from a merge request.
- Keyboard shortcuts: Access and change specific parts of a merge request with keyboard commands.