Separate a review from merge evidence
A team can ask Copilot to review an open pull request manually. A usual Copilot review is a Comment, rather than an approval, and ordinarily does not satisfy a required-approval rule.
Use the commit identifier as the primary freshness boundary: a review is acceptance evidence only when the repository can associate it with the pull request’s present head and when required independent checks are complete. This is a proposed repository rule, not a provider-prescribed merge design.
A post-review push does not initiate another Copilot pass unless the automatic setup includes new pushes. Therefore, a visible earlier review should not by itself be treated as analysis of the newer commit.
Four merge-decision cases
The table applies a deliberately strict policy: “current” means that the recorded review target matches the current head. “Stale” does not say that the review is wrong; it says the repository lacks current-head evidence under this proposed rule.
| Case | Review trigger | Reviewed head state | Freshness classification | Agentic-context availability | Approval meaning | Inference to reject | Independent validation required | Bounded repository-owned action |
|---|---|---|---|---|---|---|---|---|
| Initial manual review of the current head | A maintainer requests the review. | Record the reviewed commit and compare it with the current head. | Current only when those identifiers match. | Record whether Actions-backed additions were available; do not assume either state. | A Comment is not, by default, required-approval evidence. | Reject “a review exists, so every merge condition is met.” | Perform the repository’s human and automated checks for the risk class. | Permit the normal merge decision only after the recorded conditions pass. |
| New push when automatic review of new pushes is disabled | The later push has no automatic follow-up review. | The earlier review points to an older commit. | Stale. | Preserve the prior availability record; it does not refresh the review. | Do not carry the old Comment forward as current acceptance evidence. | Reject “unchanged comments prove the new head was examined.” | Require human review or a newly requested Copilot review, plus normal checks. | Block merge until the team obtains the policy’s current-head evidence. |
| New push when automatic review of new pushes is enabled | Configuration requests review on the later push. | Confirm that a resulting review is associated with the new current commit. | Pending until that association is recorded; current after confirmation. | Record availability for the resulting review separately. | Apply the repository’s approval rules independently of the review label. | Reject “a configured request proves a completed current-head review.” | Validate the result and run the same independent checks. | Hold merge while confirmation or required validation is absent. |
| Review generated while GitHub Actions is unavailable or its Copilot workflows fail | A review can still be produced despite that unavailable capability. | Compare its recorded target with the current head as in every other case. | Current or stale is determined by commit identity, not by capability level. | The additional agentic facilities are unavailable. | Use the normal repository approval interpretation. | Reject “reduced agentic context proves the review has no value” and “it proves equivalent coverage.” | Escalate to the human checks selected by local risk policy. | Record the reduced context and apply the chosen escalation or merge hold. |
Hypothetical Python 3.14 failure walkthrough
This scenario is illustrative and describes no executed review, test, or production outcome. Copilot reviews commit A. A later push creates commit B and introduces boolean evaluation of NotImplemented under Python 3.14. No automatic follow-up review is configured, yet the team initially treats the review of A as if it covered B.
For Python 3.14, using NotImplemented as a Boolean raises TypeError. An independent human check identifies that documented language behavior. Under the proposed contract, B remains blocked because the old review is stale; the team requests a new review for B and retains its separate human acceptance requirement.
The scenario does not assume that Copilot caused the change, ran the code, or would have reported the problem. GitHub cautions that Copilot can miss issues or err, and calls for careful validation plus human review.
Write the repository contract explicitly
Define a current-head rule, name the evidence that ties a review to that head, and state what invalidates the evidence. A conservative choice is to invalidate acceptance evidence after every push, then allow a new review or designated human review to rebuild it.
- Specify whether freshness is exact commit identity, an elapsed interval, or both; exact identity is the clearer default when commits change.
- Keep approval handling separate from review freshness. A current Comment can be useful input without becoming an approval substitute.
- Choose an escalation path for reviews lacking the additional Actions-based facilities, such as extra human scrutiny or a merge hold for sensitive changes.
- Require an explicit owner and documented rationale for any waiver.
- Treat repeated comments during a later review as feedback to assess, not proof that the current head is safe.
These are local policy choices. They should be adjusted to the repository’s risk model, required checks, and authorized merge process rather than presented as a Copilot guarantee.
Limits of the evidence
The supplied material supports the documented review, re-review, validation, and Python 3.14 behaviors used here. It does not establish a universal freshness duration, a definition of commit equivalence, or a particular organization’s mandatory validation set. Those details need a repository decision and, where appropriate, operational verification.
What documented artifact establishes the claimed association between a Copilot review and an exact commit SHA? The supplied GitHub documentation establishes that a push does not trigger re-review unless configured, but it does not, in the cited material, define a review-to-SHA field or an API predicate that a repository can enforce. Without naming that artifact and testing it after a manual request, a subsequent push, and an automatic re-review, “recorded review target matches current head” remains an unresolved implementation assumption rather than a reproducible rule.
This matters because the same documentation says review instructions are read from the pull request head branch. A usable acceptance record may therefore need at least the observed head SHA, review completion identity, and the relevant instruction revision or digest; exact SHA is a conservative invalidation boundary, but not by itself evidence that the platform exposed a verifiable review target. The contract should either cite and validate the available association mechanism or state that a newly requested review is advisory only and rely on independently SHA-bound human and required-check evidence for merge acceptance. GitHub documentation