Back to docs
referenceRepo admin5 min read

Triggers

When reviews fire — PR open, new commits, mentions, draft transitions, branch filters.

A trigger is anything that causes the bot to enqueue a review for a specific PR and head SHA. There are two families: automatic triggers (PR lifecycle events sent by GitHub) and on-demand triggers (explicit user actions on a PR). Every trigger is gated by per-repo configuration before it reaches the queue.

Automatic — PR lifecycle events

Subscribed via the GitHub App's pull_request webhook. Each event is gated by triggerEvents in repo settings; absent from the list, the event is dropped at the webhook layer.

EventDefault behaviourHow to disable
PR openedReviews on open. Both the fast description summary and the deep inline review run.Remove 'opened' from triggerEvents.
New commits pushed (synchronize)Reviews on every new commit. Posts only novel findings; existing comments are reconciled against the new diff.Remove 'synchronize' from triggerEvents.
Draft marked ready for reviewOff by default. When enabled, fires a fresh review when a draft transitions to ready.Add 'ready_for_review' to triggerEvents to enable; remove it to disable.

On-demand — explicit user actions

Triggered by an explicit gesture in the PR. These bypass the triggerEvents allowlist (a user asking for a review is its own consent) but still respect the on/off switches below.

ActionDefault behaviourHow to disable
@mention in a PR commentRouted through an intent-classifier. Mentions can request a re-review, store a learning, or just ask a question — the action is decided by the model, not by keyword matching.Set mentionEnabled to false in repo settings.
Re-run from the GitHub Check RunClicking Re-run on the bot's check run fires a fresh review on the current head SHA. Useful after a merge from base or to re-roll a flaky review.Set checkRerunEnabled to false in repo settings, or disable checkRunEnabled to hide the check run entirely.

Branch allowlist

branchAllowlist is a list of patterns matched against the PR's base branch. An empty list (the default) means every base branch is reviewed. A pattern ending in '*' is a prefix wildcard — the rest of the pattern must match the start of the branch name, with no constraint on path segments. Any other pattern is matched as an exact string.

PatternMatches
mainExactly the branch named main (no other branch, even main-2).
release/*Any branch whose name starts with release/ — e.g. release/2026-04, release/v1.2, or release/v1/hotfix. Trailing * is a prefix wildcard, not a single-segment glob.
*Every branch (a prefix match against the empty string). Equivalent to leaving the allowlist empty.

Skip filters

Filters that suppress a review even when the trigger event fired. All four are evaluated at the webhook layer before the review is enqueued — they cost nothing.

FilterDefaultEffect
skipDraftPrsfalseWhen true, no review fires while the PR is in draft state. Combine with adding ready_for_review to triggerEvents to review only when the PR is marked ready.
skipBotPrsfalseWhen true, PRs authored by GitHub Apps or bot accounts are skipped. Useful if dependency-bot PRs dominate the queue.
skipTrivialFilestrueTrivial files (lockfiles, .md, .env, package.json, deletion-only files) are skipped from deep review. The PR still gets a review if any non-trivial file changed.
maxDiffCharsnull (uncapped)When set, trailing files are dropped from the diff once the running character count exceeds the cap. The review still runs on the kept files — the dropped files are simply not reviewed. Useful for capping cost on huge auto-generated PRs without skipping them entirely.

Cancellation and supersede

Reviews are not free, so the bot is aggressive about not running stale ones. Two cancellation paths apply automatically.

  • PR closed or merged — Any in-flight review for that PR is cancelled at the queue layer. Findings already posted stay; nothing new is added.
  • New commit on a PR with a review in flight — The new commit's review supersedes the prior one. The prior review is cancelled; only the newest review runs to completion. This applies to both the fast summary and the deep review pipelines.

What does not retrigger

Edits to the PR title or description do not fire a review. Adding labels, requesting reviewers, and changing the milestone do not fire a review. Force-pushes that update the head SHA do fire a review (GitHub sends synchronize). Closing without merging cancels any in-flight review; reopening a closed PR does not fire a fresh review on its own — push a new commit, mention the bot, or click Re-run on the check to get a review on the reopened PR.