Copilot Code Review: evidence to require when AI runs code
GitHub’s update expands the ways a finding can be checked during review. We propose an evidence contract that distinguishes a resolved comment, an executed test and a merge decision.
- Published
- September 16, 2026
- min read
- 5 min read
- Categoría
- Engineering
On this page
8 chapters- 01The problem: a convincing finding needs a test
- 02Copilot Code Review: from hypothesis to verifiable artifact
- 031. Tie each conclusion to the exact change
- 042. Prepare permissions for executing repository code
- 053. Reproduce the defect before accepting the fix
- 064. Separate resolution, verification and approval
- 075. Measure usefulness with a pilot that can fail
- 08When to adopt it and what still needs review

Chapter 01
The problem: a convincing finding needs a test
A review comment can describe a plausible defect and still be wrong about actual behavior. The cost appears when a team changes correct code, dismisses a real risk or mistakes a closed conversation for a completed check. Copilot Code Review brings an engineering question into focus: what evidence do we need before acting on an AI observation?
On September 11, 2026, GitHub announced broader shell tools for code review, including builds, tests and scripts, behind the agent firewall. It also announced automatic resolution of addressed comments during rereview and an ensemble of agents for Lite. That update is our starting point; the criteria below are our implementation proposal, not results measured by Wasyra.
Chapter 02
Copilot Code Review: from hypothesis to verifiable artifact
The useful mechanism is a short loop: form a hypothesis about the diff, choose a check that could disprove it, execute it in a bounded environment and tie the result to the reviewed code. Console output is useful only when we know which command produced it, against which revision and with which data. Asking the agent to be more careful leaves too many decisions implicit.
The documentation states that agentic review capabilities use GitHub Actions. The available environment therefore matters: a checkout without dependencies or fixtures can prevent a valid test. Before expanding the pilot, prepare a reproducible installation path and confirm that the command actually discovers the expected tests. An execution that exits without errors but runs no cases does not demonstrate the behavior under investigation.
Chapter 03
1. Tie each conclusion to the exact change
Record the reviewed SHA, comparison base, affected files and the scenario that triggers the suspected defect. If another commit arrives, earlier evidence remains historically useful but does not automatically validate the new state. To decide what to repeat, determine whether the function, its dependency, the fixture or the configuration supporting the test changed.
The record can be small: one observation, one command, an expected result and an observed result. Include the exit code and the number of cases executed. If a dependency is missing, classify the finding as awaiting verification. Do not turn an inability to reproduce it into a claim that the defect does not exist.
Chapter 04
2. Prepare permissions for executing repository code
A test script is executable code too. For the pilot, use synthetic data, narrowly scoped credentials and disposable services. Define what the environment needs to download and who approves expanding that access. Review installation and setup scripts as carefully as test commands; familiar names do not guarantee harmless effects.
GitHub documents specific firewall limits: it does not directly cover MCP server processes or configured setup steps, and its scope is limited to the GitHub Actions appliance environment. The documentation also warns about potential bypasses. Review those paths separately and retain network restrictions as one layer of the design, without assuming complete isolation.
Chapter 05
3. Reproduce the defect before accepting the fix
Hypothetical example: an API must prevent a user from reading documents belonging to another organization. The agent notices that a query filters by document identifier but appears to omit the organization. A useful test prepares two fictional organizations, attempts to read the other organization’s document and checks for denial. A successful build does not answer that authorization question.
Run the same case against the previous state and the proposed fix. If the test passes in both, another authorization boundary may already exist, or the case may not reach the vulnerable path. If it fails in both, the fix may be incomplete. Add the allowed same-organization case to detect a fix that simply blocks everyone. Keep results free of real customer data.
Chapter 06
4. Separate resolution, verification and approval
Use three states in the team process: comment addressed, behavior verified and change accepted by the owner. Each answers a different question. The first organizes the conversation; the second requires evidence; the third includes compatibility, scope and operational consequences. This separation prevents a tidy interface or a convincing explanation from replacing the technical decision.
GitHub’s current guide distinguishes Comment reviews from approvals and allows Copilot approvals to be configured. Check the repository’s actual policy. Retain the required checks appropriate to the product and define who can accept exceptions. A local test run by the reviewer and a required CI check have different provenance and responsibilities.
Chapter 07
5. Measure usefulness with a pilot that can fail
Select historical changes with confirmed defects, known false positives and clean cases. Keep a subset out of the instructions used to prepare the agent. Evaluate whether it finds the defect, supplies a valid reproduction and reduces the human work needed to decide. Count missed defects as well: measuring only accepted comments favors a reviewer that says little and overlooks problems.
Separate results by change type: authorization, business logic, interface or configuration. Record total time, consumption, failed commands and reviews left without evidence. Set acceptance criteria before seeing results and repeat a sample to detect variation. A vendor’s promotional figures do not replace this evaluation in your repositories.
Chapter 08
When to adopt it and what still needs review
Adoption makes sense when the team can reconstruct the environment, constrain access and audit results. If tests depend on production or nobody maintains the fixtures, start by fixing that foundation. Automating a fragile check can multiply uncertainty and consume time without improving the merge decision.
The five-criterion contract supports adoption of this update with verifiable expectations. We have not run a Copilot benchmark for this article and do not claim a reduction in defects. If you are introducing AI review, start with one critical path and one reproducible test. Wasyra can help define that pilot as part of a custom agent project, with agreed scope and acceptance conditions.
Written by
Wasyra Engineering
Modernization, architecture, and reliable delivery
Wasyra Engineering documents patterns for moving legacy systems without freezing delivery or breaking ownership.
Series
AI systems that actually reach production
A series on agents, copilots, and guardrails for bringing AI into real work without breaking trust or operations.
Posts in this seriesMore from this author
More from this author
AI Systems
OpenAI Agents API: controls for long-running agents
The Agents API beta brings Codex infrastructure to applications. What to evaluate about state, permissions and recovery before operating agents.
ArticleEngineering
Copilot Auto: evaluating cost and quality for your team
GitHub adds preferences to Copilot Auto. A practical framework for testing real tasks, measuring rework and deciding when to escalate review.
ArticleKeep reading
Keep reading
Engineering
LLM observability in 2026: why OpenTelemetry and evals must run together
Monitoring an LLM is not monitoring a microservice. Tokens, cost, variable latency, drift, and subjective quality. How to build the stack with OTel + GenAI semantic conventions + online evals.
ArticleAI Systems
MCP in production: the protocol standardizing your AI agents in 2026
Model Context Protocol went from experiment to de-facto standard in twelve months. Why Gartner expects 40% of enterprise apps to use it by end of 2026.
ArticleAI Systems
Top 5 AI and product development news to watch now
Five recent moves from OpenAI, GitHub, AWS, and Anthropic that change how teams design, build, and operate software.
Article