> ## Documentation Index
> Fetch the complete documentation index at: https://docs.coderabbit.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Automatic review controls

> Configure when and how CodeRabbit automatically reviews pull requests using the `reviews.auto_review` settings.

export const AllPlatformsBadge = ({tip = "This feature is available on all supported platforms: GitHub, GitLab, Azure DevOps, and Bitbucket.", title = "All Platforms", cta, href, disabled = false}) => {
  return <Tooltip tip={tip} cta={cta} href={href}>
        <Badge icon="globe" disabled={disabled || undefined}>
            {title}
        </Badge>
    </Tooltip>;
};

<AllPlatformsBadge />

The `reviews.auto_review` settings group in [`.coderabbit.yaml`](/getting-started/yaml-configuration) file gives you fine-grained control over when CodeRabbit runs automatic reviews. By default, `enabled` is `true` and CodeRabbit reviews every eligible PR automatically: draft PRs are skipped unless `drafts` is `true`, and `base_branches` defaults to only the repository's default branch unless you add more targets. You can disable reviews globally and re-enable them by keyword or label, apply them only to certain branches, skip draft PRs, and pause after a set number of commits.

<Info>
  Regardless of any auto-review configuration, you can always trigger a review manually by commenting `@coderabbitai review` (incremental) or `@coderabbitai full review` (from scratch) on a pull request.
</Info>

## Scope (which PRs qualify)

Configure which pull requests CodeRabbit will review by specifying branch targets, draft status, labels, and keyword-based opt-in.

### `base_branches`

Specify which target branches should receive automatic reviews.

```yaml theme={null}
reviews:
  auto_review:
    base_branches: []   # default — only the default branch
```

By default, CodeRabbit reviews PRs that target the repository's **default branch** (e.g. `main` or `master`). Use `base_branches` to add other branches.

Each entry is a **regex pattern**:

```yaml theme={null}
reviews:
  auto_review:
    base_branches:
      - "develop"
      - "release/.*"
      - "hotfix/.*"
```

Use `".*"` to match all branches and review every PR regardless of target.

<Info>
  The default branch is always included. `base_branches` extends the set of reviewed branches; it does not replace the default branch.
</Info>

### `drafts`

Include draft PRs in automatic reviews.

```yaml theme={null}
reviews:
  auto_review:
    drafts: false   # default
```

By default, CodeRabbit skips draft PRs. Set `drafts: true` to include them. This is useful for teams that use draft PRs as part of active development and want early feedback.

### `labels`

Control reviews using PR labels, including negative filters.

```yaml theme={null}
reviews:
  auto_review:
    labels: []   # default — no label filter
```

The `labels` array controls which PRs are reviewed based on their labels. Labels prefixed with `!` are **negative** matches (exclusions).

| Configuration        | Effect                                      |
| -------------------- | ------------------------------------------- |
| `[]` (empty)         | All PRs are reviewed (no label filter)      |
| `["bug", "feature"]` | Only PRs with the `bug` or `feature` label  |
| `["!wip"]`           | All PRs **except** those labeled `wip`      |
| `["bug", "!wip"]`    | PRs labeled `bug` but **not** labeled `wip` |

<Info>
  Positive label matches also trigger reviews when `enabled: false`. This lets you build label-driven opt-in workflows: disable automatic review globally, then add a configured positive label such as `review-ready` to request a review. Negative-only labels, such as `["!wip"]`, remain exclusion filters and do not opt PRs in by themselves.
</Info>

**Example — opt-in via label with auto-review disabled:**

```yaml theme={null}
reviews:
  auto_review:
    enabled: false
    labels: ["review-ready"]
```

Only PRs labeled `review-ready` will be reviewed. Later pushes to a PR that still has the label are eligible for incremental reviews when `auto_incremental_review` is `true`.

### `description_keyword`

Opt-in by PR description when automatic reviews are disabled.

```yaml theme={null}
reviews:
  auto_review:
    enabled: false
    description_keyword: "coderabbit:review"
```

When `enabled` is `false` and `description_keyword` is set to a non-empty string, CodeRabbit reviews any PR whose **description** contains that exact keyword string. PRs without the keyword are skipped.

Leave `description_keyword` empty (the default) to rely solely on label-based opt-in or manual `@coderabbitai review` commands.

***

## Exclusions

Configure rules to skip reviews completely for specific PRs based on title patterns or author. To skip specific **files** within a PR: lock files, generated code, or build artifacts - use [`reviews.path_filters`](/configuration/path-instructions#path-filters) instead.

### `ignore_title_keywords`

Skip reviews for PRs matching specific title keywords.

```yaml theme={null}
reviews:
  auto_review:
    ignore_title_keywords:
      - "WIP"
      - "DO NOT MERGE"
      - "[skip review]"
```

If the PR title contains **any** of these strings (case-insensitive), the review is skipped silently. This is the lightest-weight way to signal that a PR is not ready for review.

### `ignore_usernames`

Skip reviews for PRs from specific authors (bots, service accounts).

```yaml theme={null}
reviews:
  auto_review:
    ignore_usernames:
      - "dependabot[bot]"
      - "renovate[bot]"
      - "github-actions[bot]"
```

PRs authored by any username in this list are skipped silently — no review is posted.

**Username matching rules:**

* Exact match, **case-sensitive**
* No wildcard or regex support — each entry must be a full username
* Whitespace around entries is trimmed automatically
* Empty strings are ignored

**Common entries by platform:**

| Platform     | Example usernames                                         |
| ------------ | --------------------------------------------------------- |
| GitHub       | `dependabot[bot]`, `renovate[bot]`, `github-actions[bot]` |
| GitLab       | `gitlab-ci-token`, `project_123_bot`                      |
| Azure DevOps | Service account display names                             |

<Warning>
  Copy usernames directly from the PR author field on your Git platform to avoid typos. A single character difference means the PR will be reviewed.
</Warning>

Username skipping takes precedence over all other controls — if a PR author is in `ignore_usernames`, the review is skipped regardless of labels, `enabled`, or any other setting.

To force a review for a skipped author, comment `@coderabbitai review` on the PR.

***

## Incremental review

Configure how CodeRabbit handles updates and subsequent pushes to an existing PR.

### `auto_incremental_review`

Review updates on each new push (default enabled).

```yaml theme={null}
reviews:
  auto_review:
    auto_incremental_review: true   # default
```

When `true` (the default), CodeRabbit re-reviews a PR after each new push, focusing on the **commits added since the last review**. This keeps feedback timely without re-analyzing unchanged code.

Label-triggered opt-in follows the same setting: after a PR is reviewed because it has a configured positive label, later pushes are reviewed only when `auto_incremental_review` remains `true`.

Set to `false` to review only when a PR is first opened. Subsequent pushes will be ignored until you [trigger the review manually](#manual-review-commands).

### `auto_pause_after_reviewed_commits`

Pause automatic reviews after reaching a commit threshold.

```yaml theme={null}
reviews:
  auto_review:
    auto_pause_after_reviewed_commits: 5   # default
```

CodeRabbit automatically pauses incremental reviews after this many **reviewed** commits since the last pause. The counter resets each time the pause is lifted.

Set to `0` to disable the pause and always review, no matter how many commits accumulate.

This setting is useful for active feature branches where dozens of small commits would otherwise trigger redundant reviews. After the limit is reached, use `@coderabbitai review` to request a fresh review on demand.

<Warning>
  Automatic incremental reviews count toward the same per-developer PR review rate limit as manual PR reviews. Setting `auto_pause_after_reviewed_commits` to `0` can make active branches use review allowance quickly because every eligible push can trigger another review.
</Warning>

For teams trying to avoid unnecessary PR review limit hits, use automatic review controls to spend reviews only when the PR is ready for feedback. On active branches with frequent pushes, set `auto_pause_after_reviewed_commits` to `1` or `2` so CodeRabbit pauses automatic incremental reviews earlier, then use `@coderabbitai review` when the PR is ready for another pass. You can also pair this with [label-based opt-in](#labels), [title-based exclusions](#ignore_title_keywords), or `enabled: false` for repositories where manual reviews are a better default.

| Goal                                         | Recommended control                                                                                   |
| -------------------------------------------- | ----------------------------------------------------------------------------------------------------- |
| Active PRs with many small commits           | Set `auto_pause_after_reviewed_commits` to `1` or `2`                                                 |
| Review only PRs that are ready               | Set `enabled: false` and add a configured label such as `review-ready` when the PR should be reviewed |
| Skip WIP, generated, or automation-heavy PRs | Add `ignore_title_keywords` exclusions                                                                |
| Stop automatic reviews entirely              | Set `enabled: false` and use manual review commands                                                   |

| Value      | Behavior                                                            |
| ---------- | ------------------------------------------------------------------- |
| `0`        | Never auto-pause — review every push                                |
| `1` or `2` | Pause early on active branches to avoid redundant automatic reviews |
| `5`        | Pause after 5 reviewed commits (default)                            |
| `N`        | Pause after N reviewed commits                                      |

### Manual review commands

When automatic incremental reviews reach their limits, you can use manual commands to control the review process:

* [`@coderabbitai review`](/reference/review-commands#coderabbitai-review) — Request an incremental review of new changes on demand
* [`@coderabbitai full review`](/reference/review-commands#coderabbitai-full-review) — Re-initiate a complete review of all files from scratch. Useful when many incremental updates have accumulated and you want fresh insights on the entire PR
* [`@coderabbitai pause`](/reference/review-commands#coderabbitai-pause) — Temporarily stop automatic reviews
* [`@coderabbitai resume`](/reference/review-commands#coderabbitai-resume) — Restart automatic reviews after a pause

***

## Complete `auto_review` example

```yaml theme={null}
reviews:
  auto_review:
    enabled: true
    auto_incremental_review: true
    auto_pause_after_reviewed_commits: 10
    drafts: false
    base_branches:
      - "develop"
      - "release/.*"
    ignore_title_keywords:
      - "WIP"
      - "[skip review]"
    labels:
      - "!do-not-review"
    description_keyword: ""
```

This configuration:

* Reviews all non-draft PRs automatically on each push
* Pauses after 10 reviewed commits
* Also reviews PRs targeting `develop` or any `release/*` branch
* Skips PRs titled with `WIP` or `[skip review]`
* Skips PRs labeled `do-not-review`

***

## What's next

<CardGroup cols={1}>
  <Card title="Configuration reference" href="/reference/configuration#reviews" icon="book" horizontal>
    See the full auto\_review schema with types, defaults, and constraints
  </Card>

  <Card title="Path instructions" href="/configuration/path-instructions" icon="file-text" horizontal>
    Add per-path review rules to guide CodeRabbit on specific files or directories
  </Card>

  <Card title="Review commands" href="/reference/review-commands" icon="terminal" horizontal>
    Trigger, pause, or override reviews on demand using @coderabbitai commands
  </Card>
</CardGroup>
