GitLab Duo Code Review (non-agentic)
- Tier: Premium, Ultimate
- Add-on: GitLab Duo Enterprise
- Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
Depending on your add-on, GitLab runs one of two code review features:
- Code Review Flow: the agentic version, part of GitLab Duo Agent Platform.
- GitLab Duo Code Review: the non-agentic version, available only for users with the GitLab Duo Enterprise add-on.
This page describes the non-agentic version. Learn how the two features compare.
GitLab Duo Code Review helps you streamline code reviews in your projects.
Use GitLab Duo Code Review
When your merge request is ready to be reviewed, use GitLab Duo Code Review to perform an initial review:
- 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.
- In a comment box, enter the quick action
/assign_reviewer @GitLabDuo, or assign GitLab Duo as reviewer.
Provide feedback on this feature in issue 517386.
Contextual awareness
When you use GitLab Duo Code Review, the following data is sent to the large language model:
- Merge request title
- Merge request description
- File contents before changes applied (for context)
- Merge request diffs
- Filenames
- Custom instructions
To specify content to exclude, see exclude context from Code Review.
Behavior on large merge requests
GitLab Duo Code Review sends the merge request diffs and the original contents of changed files to the model. The combined prompt is subject to the selected model’s context window.
For large merge requests, GitLab Duo Code Review uses a fallback to improve the chance of a successful review:
- The initial request includes the merge request diffs and the original file contents.
- If that request fails, GitLab Duo Code Review automatically retries without the original file contents.
- If the retry also fails, GitLab Duo Code Review returns a generic error message.
The retry without file contents reduces prompt size, but also reduces the context the model has when reviewing your changes. Comments might be less specific than a review that includes the original file contents.
The AI Gateway request timeout for GitLab Duo Code Review is 120 seconds. Reviews that do not complete in this window also surface as generic errors.
To reduce the risk of failed reviews on large merge requests:
- Split large merge requests into smaller ones.
- Exclude context for files that are not relevant to the review.
- Ask a Maintainer or Owner to select a different model for Code Review.
Interact with GitLab Duo in reviews
You can mention @GitLabDuo in comments to interact with GitLab Duo on your merge request. You can
ask follow-up questions on its review comments, or ask questions on any discussion thread in your
merge request.
Interactions with GitLab Duo can help to improve the suggestions and feedback as you work to improve your merge request.
Feedback provided to GitLab Duo does not influence later reviews of other merge requests. There is a feature request to add this functionality, see issue 560116.
Custom code review instructions
You can create custom MR review instructions to ensure consistent and specific code review standards in your project.
For more information, see customize review instructions for GitLab Duo.
Automatic reviews from GitLab Duo for a project
Automatic reviews from GitLab Duo ensure that all merge requests in your project receive an initial review. After a merge request is created, GitLab Duo reviews it unless:
- It’s marked as draft. For GitLab Duo to review the merge request, mark it ready.
- It contains no changes. For GitLab Duo to review the merge request, add changes to it.
Prerequisites:
- You must have at least the Maintainer role in a project.
To enable @GitLabDuo to automatically review merge requests:
- In the top bar, select Search or go to and find your project.
- In the left sidebar, select Settings > Merge requests.
- In the GitLab Duo Code Review section, select Enable automatic reviews by GitLab Duo.
- Select Save changes.
Automatic reviews from GitLab Duo for groups and applications
Use group or application settings to enable automatic reviews for multiple projects.
Prerequisites:
- To turn on automatic reviews for groups, have the Owner role for the group.
- To turn on automatic reviews for all projects, be an administrator.
To enable automatic reviews for groups:
- In the top bar, select Search or go to and find your group.
- In the left sidebar, select Settings > General.
- Expand the Merge requests section.
- In the GitLab Duo Code Review section, select Enable automatic reviews by GitLab Duo.
- Select Save changes.
To enable automatic reviews for all projects:
- In the upper-right corner, select Admin.
- In the left sidebar, select Settings > General.
- In the GitLab Duo Code Review section, select Enable automatic reviews by GitLab Duo.
- Select Save changes.
Settings cascade from application to group to project. More specific settings override broader ones.
Exclude merge requests from automatic reviews
- Status: Beta
The availability of this feature is controlled by a feature flag. For more information, see the history.
When automatic reviews are turned on for a project,
GitLab Duo reviews every eligible merge request.
To exclude specific merge requests, define exclusion rules in a
.gitlab/duo/mr-review-automated-rules.yaml file.
Exclusion rules only prevent automatic reviews. You can still request a review manually for any excluded merge request.
To define exclusion rules:
In the root of your repository, create a
.gitlab/duodirectory if one doesn’t already exist.In the
.gitlab/duodirectory, create a file namedmr-review-automated-rules.yaml.Add exclusion rules using the following format:
exclude: target_branches: - <pattern> source_branches: - <pattern> authors: - <pattern>Each key is optional. GitLab Duo skips the automatic review when a merge request matches any pattern in any category:
target_branches: Matches the target branch name of the merge request.source_branches: Matches the source branch name of the merge request.authors: Matches the username of the merge request author.
Patterns support wildcard (glob) matching. For example,
dependabot/*matches any source branch that starts withdependabot/.For example, to skip automatic reviews for merge requests that target a release branch or that a bot account creates:
exclude: target_branches: - "release/*" authors: - "*-bot"Commit the file to the default branch of your repository.
GitLab Duo reads the exclusion rules from the default branch of your repository. GitLab Duo does not apply rules on other branches.
Exclude merge requests for a group
To define exclusion rules for all projects in a group and its subgroups, specify a project to use
as a template.
The template project must contain a .gitlab/duo/mr-review-automated-rules.yaml file.
If you use
custom review instructions for a group,
add your exclusion rules to the same template project.
You do not need to specify the template project in the UI again.
GitLab Duo automatically reads the mr-review-automated-rules.yaml file.
GitLab Duo combines the exclusion rules from the group template project with the rules defined in the individual project. If the same category is defined at both levels, the project’s rules take precedence. When a group and its subgroups each set a template project, GitLab Duo combines the rules from every level.
Prerequisites:
- The Owner role for the group.
- A project in the group contains the exclusion rules that you want to set.
To configure exclusion rules for a group:
- In the top bar, select Search or go to and find your group.
- In the left sidebar, select Settings > General > GitLab Duo features.
- Under Customize code review, select the project that contains the
.gitlab/duo/mr-review-automated-rules.yamlfile. - Select Save changes.
Troubleshooting
Review fails on a large merge request
GitLab Duo Code Review might fail to post a review on merge requests with many large changed files. Common causes include:
- The combined size of diffs and original file contents exceeds the model’s context window.
- The AI Gateway request takes longer than 120 seconds.
For details on the retry and timeout behavior, see behavior on large merge requests.
To work around the failure:
- Split the merge request into smaller merge requests.
- Exclude context for files that are not relevant to the review.
For more information, see issue 596794.