Cursor Bugbot Alternative for Gating and Routing PR Reviews
What Cursor Bugbot and PR Routing & Approval do, and how CodeRabbit, Copilot code review and Warpway handle merge gating, routing and approval.
Published 11 min readBy the Warpway team
Before picking a Cursor Bugbot alternative, decide what you're replacing: the reviewer that comments, or the way your team decides what blocks a merge. Bugbot posts findings on the lines of a pull request and follows rules in BUGBOT.md files. Reviewer assignment and low-risk approval are a separate Cursor product, PR Routing & Approval. CodeRabbit and GitHub Copilot code review work most like Bugbot. Warpway works differently: it's an orchestrator that ends every lens in a stated result with evidence, asks specific questions of likely experts, and reports one GitHub check, Warpway / Review, that you can make a required check.
What Cursor Bugbot does, according to its docs
As of October 2026, Cursor's Bugbot documentation says Bugbot reads pull request diffs for bugs, security issues and code quality problems. It leaves comments that explain each problem and suggest a fix. The Bugbot product page shows those comments attached to specific files and lines of the diff.
| Area | What Cursor documents |
|---|---|
| Triggers | Runs on every PR update by default. Commenting cursor review or bugbot run starts a manual run. |
| Rules | A root .cursor/BUGBOT.md is always included. Bugbot also adds any BUGBOT.md file in a changed file's directory or a parent directory. Cursor's project rules don't apply. Learned rules come from team activity or from an @cursor remember comment. |
| Settings | .cursor/config/bugbot.yaml, read from the base branch so a PR can't change its own review settings. |
| Fixes | Optional Autofix starts a Cloud Agent that pushes fixes to a new or existing branch. Findings include "Fix in Cursor" and "Fix in Web" links. |
| Status | A GitHub check named Cursor Bugbot. When there are findings it concludes neutral by default, and failure only if you configure it to fail on unresolved issues. |
| Hosts | GitHub (including Enterprise Server), GitLab, Bitbucket and Azure DevOps. |
The Status row matters most for gating. Making Cursor Bugbot a required check doesn't block merges on findings unless fail-on-unresolved-issues is on. The docs also don't say Bugbot approves pull requests. Approval belongs to a different Cursor product.
Cursor PR Routing & Approval
Cursor's docs describe PR Routing & Approval as an agent that assigns reviewers based on code ownership and commit history. It can also approve low-risk PRs once your approval criteria are met. Cursor says it is not a replacement for full code review. You must enable at least one of its two actions: Request Reviewers or Approve PR.
It decides from risk scoring, approval policy files, AI review agent findings and your configuration:
- Policy files. An
APPROVAL_POLICY.mdapplies to changed files in its directory and below. The nearest file takes priority, and policies in parent directories still apply unless they conflict..cursor/approval-policies/ROUTING.mdis a YAML list. Each entry pairs aproductand aboundary(a semantic description or a path glob) withpolicies. If it's unclear which conflicting policy is more specific, the stricter one applies and the agent doesn't auto-approve. If a PR edits a policy file, the agent uses the version on the base branch. - Risk threshold. "Use Risk Score" turns on risk classification. "Maximum Risk for Approval" sets the highest risk level the agent may approve.
- Criteria. You write the approval criteria as a custom prompt. Without one, the agent uses Cursor's default criteria.
- Bugbot context. With Bugbot Review Context on, the agent waits for Bugbot's check and won't approve if Bugbot reports findings that need human review. Security Agent findings work the same way.
The agent runs when a PR is opened, pushed to, or gets a comment matching a regex. Optional integrations send Slack and Microsoft Teams notifications and give the agent MCP tools, which you can guide with the custom prompt. It supports GitHub and Origin repositories only.
In Cursor's setup, Bugbot finds problems and comments on them. PR Routing & Approval requests reviewers and can approve a PR whose risk is at or below your maximum risk threshold and that meets your approval criteria and policies.
Bugbot, CodeRabbit, Copilot and Warpway compared
The questions that separate these tools: what each one does when it isn't sure, who it asks, what a passing check means, and what decides approval. Based on each vendor's docs as of October 2026:
| Cursor Bugbot + PR Routing & Approval | CodeRabbit | GitHub Copilot code review | Warpway | |
|---|---|---|---|---|
| On the PR | Line comments with suggested fixes | Inline comments. With the Request Changes Workflow on, it also submits a request-changes or approving review | A review with suggested changes you can apply | One check with a result per lens, one summary comment edited in place, line annotations only for concrete findings |
| Instructions | BUGBOT.md and learned rules; APPROVAL_POLICY.md and ROUTING.md for approval | .coderabbit.yaml, including custom pre-merge checks written in plain language | .github/copilot-instructions.md, path-specific *.instructions.md, AGENTS.md | .warpway.yml from the base branch |
| Merge gate | Cursor Bugbot fails only with fail-on-unresolved on | error-mode pre-merge checks block merges when used with the Request Changes Workflow | Reviews don't count toward required approvals by default | Warpway / Review concludes success only when the policy is satisfied, at trust level Gate and above |
| People | Reviewers requested based on code ownership and commit history | Not covered in the pages cited | Not covered in the pages cited | Specific questions to a likely expert, on GitHub or in Slack (Team plan), with the reason they were chosen |
| Approval | Low-risk PRs under a maximum risk threshold, judged against prompt criteria | After the latest commit is reviewed, required threads are resolved and no pre-merge check is failing | An approving review when Copilot approvals are enabled (public preview) | Off by default; only when every deterministic condition passes |
| Hosts | Bugbot: GitHub, GitLab, Bitbucket, Azure DevOps. Routing & Approval: GitHub and Origin | GitHub, GitLab, Azure DevOps, Bitbucket | GitHub; Azure DevOps (public preview) | GitHub |
The CodeRabbit gate has overrides. A PR blocked by failed pre-merge checks can be unblocked by commenting @coderabbitai ignore pre-merge checks or ticking "Ignore failed checks" in the PR Walkthrough; the override applies only to that PR. Setting reviews.pre_merge_checks.override_requested_reviewers_only: true (default false) limits this to requested reviewers (on GitHub, also members of a requested reviewer team), and the PR author can no longer override. The Request Changes Workflow accepts @coderabbitai approve. Set reviews.allow_author_approval: false to stop authors approving their own PRs that way. Copilot code review uses AI credits for each review.
How Warpway's orchestrator model works
Warpway is a GitHub App. For each eligible pull request it plans a review, investigates the change through lenses, and asks people only what it can't resolve itself. When a lens can't settle something, it ends in Human decision required and, from Assist up, Warpway sends the question to a specific person; when required work can't be finished, the lens ends in Incomplete with the reason.
Every lens ends in a state, with evidence
Eight lenses are built in:
- Required on every PR: Correctness, Security, and Testing / Reliability.
- Required when a change touches what they cover: Backward Compatibility, Product Semantics, and Database Safety.
- Advisory, warn without blocking: Architecture and Performance.
Each lens investigates with read-only tools on a snapshot of the head commit. Every tool result is recorded as evidence along with where it came from. Each lens ends in exactly one state:
| State | Meaning |
|---|---|
| Cleared | The required investigation was completed and no material concern remains. |
| Issue found | A concrete defect or risk, with code locations and evidence. |
| Human decision required | A material question needs human judgment or organizational knowledge. |
| Incomplete | Required work couldn't be finished, for example after a tool or model failure. It never turns into Cleared. |
Concrete findings become line annotations; open questions don't. Each result also states how much of the change was covered. Warpway doesn't present a lens's internal confidence as the probability that a change is safe.
Specific questions to the person likely to know
When a lens can't settle something, it writes up a human task. Each task includes:
- a concrete question and why it matters;
- why AI couldn't resolve it, and the evidence gathered so far;
- the relevant lines of code;
- the kind of answer expected, and what each answer will do.
The docs' example asks whether revoking an administrator role must end active sessions immediately, given a new 15-minute authorization cache. It offers three choices.
Routing picks who gets the question. These are its main sources, in their default priority:
- the owner named on the rule that raised the question;
- the lens owner;
CODEOWNERS;- configured Slack contacts;
- configured GitHub contacts;
- people who reviewed or recently changed the code;
- the owner of the linked issue;
- people with expertise on the topic.
An Admin's routing correction ranks ahead of all of these, and a reviewer already on the PR and the organization's fallback owner come last. A catch-all CODEOWNERS entry such as * ranks just after the configured contacts. For non-engineering questions, CODEOWNERS and code history drop below configured contacts, the linked issue and topic expertise.
Every routing decision comes with a reason you can read. An example from the docs: "owner of the Product Semantics lens, answered 3 earlier billing cancellation questions." Engineering questions go to people on GitHub. On the Team plan with Slack connected, non-engineering questions (and lenses set to prefer_slack) go to a Slack direct message that contains no diffs. People who only answer in Slack don't need a Warpway account. A vague reply such as "Sounds fine" gets one follow-up question. Answering "I'm not the right person" sends the task to the next candidate.
This asks one person one specific question instead of requesting a reviewer for the whole PR. Warpway can still request reviewers, up to two per PR by default. The CODEOWNERS alternative guide covers routing in more depth.
Trust levels from Observe to Auto-approve
| Level | Routes questions | The check | Approves |
|---|---|---|---|
| 0 Observe | No | Always neutral | No |
| 1 Assist | Yes | Always neutral | No |
| 2 Gate | Yes | Blocks until the policy is satisfied | No |
| 3 Clear | Yes | Blocks; AI can clear lenses that allow it | No |
| 4 Auto-approve | Yes | Blocks | Only when every deterministic condition passes |
Warpway uses the lowest of three settings: the dashboard level, any trust_level in settings or .warpway.yml, and your plan's maximum. Configuration can lower autonomy but never raise it. See trust levels.
One check you can require
At Gate and above, deterministic code (not a model) decides whether Warpway / Review passes. It concludes success only when all of these hold:
- every required lens is resolved and none is Incomplete;
- no required human task is open;
- no blocking finding is open (
critical,highormediumby default); - required CI checks pass.
When only human tasks remain, it reports action_required. Findings, incomplete lenses or failing CI make it report failure. To enforce it, make it a required check in a GitHub ruleset and select the Warpway app as its source. See merge gating.
Policy lives in .warpway.yml and is read from the base branch, so a PR can't weaken its own review:
version: 1
required_lenses:
- correctness
- security
- testing
routing:
security:
github_team: "@acme/security"
product_semantics:
slack_user_group: "@product-leads"
prefer_slack: true
merge_gate:
block_on_severities:
- critical
- high
required_ci_checks:
- build
- unit-testsCursor's approval agent decides from risk scoring, approval policy files, AI reviewer findings and prompt criteria. Warpway's auto-approval is decided by code. It's off by default and needs the Team plan, trust level 4, an Owner to turn it on for both the organization and the repository, and auto_approve.enabled: true in the base branch's .warpway.yml or in organization or repository settings. Before approving, it checks conditions including:
- the PR's head commit is the exact one Warpway reviewed;
- every required lens is Cleared;
- CI checks concluded
success; - the change avoids excluded paths and categories;
- any optional limits you set, such as
docs_tests_onlyordependabot_only.
It never approves because a model reported high confidence, and it never merges.
Running Bugbot and Warpway together
You can try Warpway without removing Bugbot. Warpway reads CI results that are reported as GitHub check runs, but not commit statuses. If Cursor Bugbot shows up as a check run, you can reference it in your policy:
merge_gate.required_ci_checksacceptssuccess,neutralorskipped. Bugbot concludesneutralwhen it has findings, by default. So listing it there makes the gate wait for Bugbot to finish, not for its findings to be fixed. To block on findings, turn on Bugbot's fail-on-unresolved setting.auto_approve.required_ci_checksrequiressuccess, andneutraldoesn't count.- Start the repository at Observe or Assist. The check concludes
neutralthere and blocks nothing, so you can compare both tools on the same PRs.
What Warpway doesn't do
- Other Git hosts. It works with GitHub only, not GitLab, Bitbucket or Azure DevOps.
- Code changes. It can't push commits, create branches or merge, so it has nothing like Autofix and doesn't hand fixes off to an editor.
- Merge queues. It doesn't report on merge-queue groups. Don't require its check in a ruleset that also gates a merge queue.
- Gating on Free. Merge gating, Slack routing,
.warpway.ymland custom lenses need the Team plan. Free caps trust at Assist.
To see lens output on real code, look at Warpway's case studies. They are replays: merged open-source PRs, as they stood before merge, run through Warpway on 2026-10-07. In the requests 2.32 SSLContext replay, Warpway flags the client-certificate mix-up later reported as issue 6726.
Which one fits
- Bugbot if you're on GitLab, Bitbucket or Azure DevOps (PR Routing & Approval is GitHub and Origin only), want an agent to push fixes, or want review settings to live in Cursor.
- CodeRabbit if you want the reviewer's own request-changes and approving reviews to act as the gate, across several hosts.
- Copilot code review if your organization already licenses Copilot and wants review instructions in
.github. - Warpway if the bottleneck is decisions rather than comments. It gives you a result per lens with evidence, questions sent to named experts in GitHub or Slack, and a check you can make required that lists every blocker. If approval is what you're comparing, see AI code review tools that approve pull requests.
Frequently asked questions
Does Warpway work with GitLab, Bitbucket or Azure DevOps?
No. Warpway is a GitHub App, and it reviews pull requests only in the GitHub repositories you select when you install it. As of October 2026, Cursor's docs list GitHub, GitLab, Bitbucket and Azure DevOps for Bugbot, so teams on other hosts need a different tool.
How does Warpway's pricing compare with Bugbot's?
As of October 2026, Cursor's Bugbot page describes usage-based billing and says the average review costs $1.00 to $1.50, depending on PR size and complexity. Warpway has a Free plan, with unlimited public repository reviews, 20 private repository reviews a month and a trust level capped at Assist. Its Team plan costs $30 per developer per month and has a 14-day trial. A Team seat is anyone who authored a reviewed pull request in the last 30 days, and people who only answer questions don't take a seat.
Does a passing Warpway check count as a GitHub approval?
No. The Warpway / Review check is separate from GitHub approvals, so if your branch requires approving reviews, people still have to give them. The exception is auto-approval, which an Owner must enable and which applies only when every deterministic condition passes. Your GitHub rules decide whether that approval counts toward required approvals.
What does Warpway report if a model call or tool fails during a review?
It fails closed. Temporary failures are retried with backoff. A lens that still can't finish reports Incomplete with the reason, and the check never reports success while a required lens is Incomplete. Fix the cause, then re-run the check.