![GitHub pull request merge box showing a changes requested review from coderabbitai[bot] and merging blocked](https://mintcdn.com/coderabbit/N5RZvrAPwAPwn-SE/assets/images/changes-requested.png?fit=max&auto=format&n=N5RZvrAPwAPwn-SE&q=85&s=130eae8ae2948a12a11e65ff2768e94a)
A GitHub pull request blocked by CodeRabbit's request-changes review
How it works
1
CodeRabbit reviews a commit
If the review posts actionable inline comments, CodeRabbit submits a request-changes review.
2
You address the feedback
Push changes to the pull request and let CodeRabbit review the new commit.
3
CodeRabbit resolves addressed threads
During the next review, CodeRabbit checks its open threads and resolves those that the changes addressed.
4
CodeRabbit checks the approval requirements
CodeRabbit approves only when every approval requirement is met.
5
CodeRabbit approves the reviewed commit
Immediately before approving, CodeRabbit checks that the pull request HEAD has not changed.
Approval requirements
CodeRabbit approves a pull request only when all of these are true:- The latest commit has a completed CodeRabbit review.
- All required review threads are resolved.
- No Pre-Merge Check is failing.
- The pull request is within any configured risk limits.
- No matching team or path override disables approval.
Turn on Automatic Approvals
Automatic Approvals is off by default. Turn it on for a repository or an organization:- Configuration file
- Web interface
Add
reviews.auto_approvals.enabled to .coderabbit.yaml in your repository or central configuration repository:.coderabbit.yaml
Why CodeRabbit hasnât approved
While a review, thread, or Pre-Merge Check requirement is unmet, the approval stays pending and CodeRabbit posts no notice about it:
During a rate-limited run, CodeRabbit may still resolve threads that the new changes addressed, but the approval stays pending because the latest commit has no completed review.
Approve or resolve on demand
Post@coderabbitai approve or @coderabbitai resolve as a top-level pull request comment to skip the wait. Both commands resolve CodeRabbitâs review threads. With Automatic Approvals turned on, both can also approve the pull request without a completed review of the latest commit and without passing Pre-Merge Checks. They work only as top-level comments, not as replies in a review thread.
The commands do not bypass risk limits or disabled overrides. The risk assessment comes from a completed review, so when a limit is set, the latest commit needs a completed review before either command can approve. CodeRabbit also checks, immediately before approving, that the pull request HEAD has not changed. If every approved commit must have a completed review, run @coderabbitai review first.
Stop authors from approving their own pull requests
By default, pull request authors can use both commands on their own pull requests. Setreviews.allow_author_approval to false to prevent this:
.coderabbit.yaml
Turn off Automatic Approvals
Setreviews.auto_approvals.enabled to false, or turn off Automatic approvals in the web interface. CodeRabbit then stops requesting changes and approving on new reviews.
Turning the feature off does not remove reviews that CodeRabbit already submitted. On open pull requests, dismiss CodeRabbitâs approvals that should no longer count toward your merge rules, and any request-changes reviews that still block merging.
Configuration
Approval risk limits explains the risk limits and overrides for teams and paths.boolean
default:false
Request changes for blocking findings. Automatically approve when required threads are resolved, the latest commit is reviewed, pre-merge checks pass, and configured risk limits are satisfied. In GitLab, required discussions must be resolved.
enum
Highest inclusive merge risk that permits approval. Omitted limits can be inherited; merge risk is unrestricted only when no configuration source sets a limit. A configured limit requires an assessment covering the current commit. One of:
minimal, low, moderate, high, criticalenum
Highest inclusive security architecture risk that permits approval. Security risk assessments require the Advanced plan or above. Omitted limits can be inherited; security risk is unrestricted only when no configuration source sets a limit. This is separate from Security finding severity. A configured limit requires an assessment covering the current commit. One of:
minimal, low, moderate, high, criticalboolean
Set to false to withhold approval for matching pull requests, regardless of risk. Omit to use the global setting. Any matching disabled override wins. Review comments and requests for changes continue normally; overrides cannot turn on a globally disabled workflow.
array of string
Apply this override when the pull request author belongs to any listed GitHub team. Use organization/team-slug.
array of string
Apply this override when any changed file matches these repository-relative globs. Uses the same glob syntax as path_filters, including ! exclusions. Renames match both old and new paths. When teams and paths are set, both must match. Omit to match all paths.
enum
Override the global merge-risk limit for matching pull requests. Omit to inherit the global limit. One of:
minimal, low, moderate, high, criticalenum
Override the global security-risk limit for matching pull requests. Omit to inherit the global limit. Security risk assessments require the Advanced plan or above. One of:
minimal, low, moderate, high, criticalLegacy configuration key
CodeRabbit also readsreviews.request_changes_workflow and treats it as reviews.auto_approvals.enabled. Use only one of the two keys. If a configuration sets both to different values, CodeRabbit turns off Automatic Approvals for that configuration and reports a configuration error.
Whatâs next
Approval risk limits
Keep higher-risk pull requests for human approval while CodeRabbit approves routine ones.
Choose an approval policy
Combine CodeRabbit approvals with human reviews, GitHub branch rules, and Triage merges.
Pre-Merge Checks
Configure the quality gates that CodeRabbit verifies before it approves.