What
Approving a PR with non-blocking nits, then having the author push the fix, clears the approval. dismiss_stale_reviews_on_push treats every push the same, so the PR returns to REVIEW_REQUIRED and needs a second round for a change the reviewer already signed off on in advance.
Pick how we handle it. Options, not exhaustive:
- Reviewers withhold approval until nits are resolved — no more "approve with nits"
- Reviewers leave nits as a
COMMENT review and approve after the fix push
- Batch nits as GitHub suggested changes so the author applies them in one push before any approval
- Relax the ruleset: keep
require_last_push_approval, drop dismiss_stale_reviews_on_push
Why
The rule is doing its job. It closed the approve-then-push hole in #725 and has already fired twice (#763, #754). The cost lands hardest on the smallest changes: a one-line nit fix buys a full re-review cycle, which pushes reviewers toward either not raising nits at all or rubber-stamping the second pass. Neither is what we want. We need the security property without taxing the good-faith path.
Definition of done
What
Approving a PR with non-blocking nits, then having the author push the fix, clears the approval.
dismiss_stale_reviews_on_pushtreats every push the same, so the PR returns toREVIEW_REQUIREDand needs a second round for a change the reviewer already signed off on in advance.Pick how we handle it. Options, not exhaustive:
COMMENTreview and approve after the fix pushrequire_last_push_approval, dropdismiss_stale_reviews_on_pushWhy
The rule is doing its job. It closed the approve-then-push hole in #725 and has already fired twice (#763, #754). The cost lands hardest on the smallest changes: a one-line nit fix buys a full re-review cycle, which pushes reviewers toward either not raising nits at all or rubber-stamping the second pass. Neither is what we want. We need the security property without taxing the good-faith path.
Definition of done
docs/wiki/definition-of-done.md) so reviewers know when to approve