AI in Code Review

AI Writes a Third of Public Code Review

Across 16,650 reviews in 9,645 repositories, AI agents performed 32% of code review - and almost never approved anything.

32%

Reviews by AI

of 16,650 measured

2%

AI approval rate

humans: 35%

16,650 review events across 9,645 repositories | week of 17-23 August 2026 | GitHub Archive

What We Measured

Everyone has an opinion about how much code review AI is doing. Nobody seems to have a number. We took every public code review event on GitHub for one full week - 16,650 of them, across 9,645 repositories and 7,119 distinct reviewers - and counted who was doing the reviewing.

Just under a third of it was an AI agent. The more interesting result is what those agents did once they got there: they commented, and they almost never approved.

Who Is Reviewing Code?

ReviewerReviewsShareApprovedCommentedChanges req.
Human8,70952.3%34.6%58.9%4.2%
AI agent5,36732.2%2%94.5%3%
Other bots2,57415.5%26.5%67.1%2.4%

"A third of public code review is now performed by something that cannot merge, cannot be held responsible, and for most of this year could not even approve."

The 32% figure is a floor, not a ceiling. We classify an agent as AI only if we recognise its login, so any newer or self-hosted reviewer we have not heard of is counted as a human. The true share is higher by an unknown margin.

AI Reviews. It Does Not Decide.

Humans approved 34.6% of the time. AI agents approved 2.0% of the time. The overwhelming majority of AI review activity - 94.5% - is a comment, not a verdict.

Timing matters here, so read this before quoting the 2%. GitHub's Copilot - the single largest AI reviewer in our data - could not approve a pull request at all during the measurement window. That capability shipped on 1 September 2026, after our measurement window closed, and it is off by default and must be enabled by an admin. So part of the 2% is a product limitation rather than a choice.

That is why the number worth citing is the one with Copilot removed. Across the 3,598 reviews by agents that could approve, the approval rate is 3% - still an order of magnitude below humans. The reticence is real behaviour, not just a missing feature.

Approval rate by agent (agents with 100+ reviews)

Copilotcoderabbitaichatgpt-codex-connectorcursorgreptile-appsclaudesourcery-ai0%3%6%9%12%
AgentReviewsApprovedChanges req.Note
CopilotGitHub1,7690%0%Could not approve pull requests at all during the measurement window.
coderabbitaiCodeRabbit1,6852.6%9.2%Most willing to request changes, by a wide margin.
chatgpt-codex-connectorOpenAI1,0520%0%Comments only.
cursorCursor27412%1.1%The most willing to approve of any agent measured.
greptile-appsGreptile2315.6%0%
claudeAnthropic1887.4%1.6%
sourcery-aiSourcery1130%0%Comments only.
gemini-code-assistGoogle330%0%Comments only.

CodeRabbit is the outlier worth noticing: it requests changes on 9.2% of its reviews, three times any other agent and more than twice the human rate of 4.2%. Cursor is the most willing to sign off, approving 12% of the time. Four of the eight agents we measured never approved anything at all.

At Weekends, AI Does More of the Work

AI's share of review sits between 29% and 32% on weekdays and rises to 40-42% at the weekend. The agents do not change their behaviour; the humans stop. This doubles as our robustness check - the weekday figures hold steady across days whose archive coverage differs by a factor of six.

DayAI share of reviewsReviews measured
Monday29%893
Tuesday30.7%2,635
Wednesday30.9%2,486
Thursday31.6%2,209
Friday32.4%7,219
Saturday40.1%681
Sunday41.7%527

"Nobody decided that two fifths of weekend code review should be automated. It is simply what is left running when everyone logs off."

Why Most Bot Filters Undercount This

The conventional way to exclude bots from engineering data is to test whether the login ends in [bot]. That test misses the largest AI reviewer on GitHub.

Copilot posts reviews as the bare login Copilot, with no suffix. Its display_login is copilot-swe-agent, but the login field that every filter actually reads looks exactly like a person's. Any dashboard, study or "exclude bots" toggle using the standard check silently files a third of AI review activity under human.

"If your bot filter is a check for ‘[bot]’, your human reviewers include GitHub Copilot."

Detecting AI review reliably needs a maintained allowlist of agent identities, which is also why we describe our own 32% as a floor. Related: we separately scored the precision of the comments six AI reviewers post, which asks whether the review is any good rather than how much of it there is.

Method

We downloaded all 168 hourly GitHub Archive files for the week of 17-23 August 2026 - every hour of every day - and read every PullRequestReviewEvent. That is 15,307,338 events in total, of which 16,650 were code reviews. Reviewers were classified by actor login against a maintained list of known AI review agents.

The tool that produced these numbers is a single script, published so the study can be re-run on a later window and the figures compared rather than taken on trust. It carries the agent allowlist, the coverage warning, and a --robustness flag that recomputes the headline per day:

python scripts/gharchive_review_study.py fetch --start 2026-08-17 --days 7
python scripts/gharchive_review_study.py analyse --robustness

This study reads the review object and the event envelope rather than the pull request object, because GitHub stripped the latter in October 2025. We documented that change and its consequences in The GitHub Archive Data Cliff, which is also why this study exists in this shape.

Limitations, stated plainly

  • One week. Treat this as a baseline measurement, not a trend. It is a particularly useful baseline because it sits days before Copilot gained the ability to approve.
  • Ratios only. The archive's hourly coverage in this week was very uneven, with daily event totals ranging from 542,000 to 4.07 million. Every figure here is therefore a proportion computed within one record type. We deliberately publish no absolute volumes and no day-of-week or hour-of-day distributions, because those track archive coverage rather than developer behaviour.
  • The AI share is a floor. Classification is by known login. An agent we do not recognise counts as a human.
  • Public repositories only, and only repositories active in that week. Concentration is low - the busiest 10 repositories account for just 4.6% of reviews and the busiest 100 for 13.1% - so this is not a handful of noisy projects.
  • Sunday is an outlier on several measures and is reported separately rather than blended into a weekday average.

What This Means If You Run a Team

A review-coverage number that counts AI reviews the same as human ones is measuring something different from what it claims. On these figures, a repository showing "100% of PRs reviewed" can have had a third of that review performed by an agent that left a comment and moved on without approving.

That is not an argument against AI review. Comments catch real defects, and one agent in this data requests changes more often than humans do. It is an argument for counting the two separately, because they mean different things: an AI comment is an input to a decision, and a human approval is the decision.

It also means the answer changes soon. Copilot can approve as of 1 September 2026, off by default and admin-gated. Whether teams turn that on, and what happens to human approval rates when they do, is the obvious thing to measure next.

Where we sit in this, stated plainly

Our own reviewer is not in the table above, and the reason is simple: it performed no public code reviews in that week, so the archive has nothing to measure. We are not going to substitute figures from our own customers' private repositories into a table built from public events - different population, different instrument, and the one row measured differently would be ours.

What we can say without cheating is a design difference, verifiable in our own code. Every agent in the table above defaults to commenting. CodePulse Reviews defaults to casting a binding GitHub verdict - it approves or it requests changes. Neutral comment-only output is a per-workspace opt-out, not the default.

That is a product decision rather than evidence of better judgment, and it cuts both ways: an agent that takes a position can be wrong in a way that one leaving comments never is. We think that is the right trade - a review that never resolves to a decision pushes the work back onto the human it was meant to help - but it is a choice, not a benchmark result. For a like-for-like quality comparison, we scored our reviewer against six others with one shared harness in the precision study, including the ways that harness favours us.

Reviews runs on your pull requests. Analytics shows you how much of your review coverage is human, and how much is a comment nobody acted on.

Related Research