Fix reviewer bot never re-approving after blockers are addressed#473
Merged
Conversation
Three `gh pr view` calls run before `actions/checkout`, in a workspace
that has no `.git` yet. Without `-R`, gh resolves the target repo from
the local git remote, so each call fails with "not a git repository".
The reviewDecision read is the damaging one: its failure degrades to
`bot_blocking=false`, which permanently disarms the react-mode verdict
re-evaluation — the bot can never lift its own CHANGES_REQUESTED after
an author addresses a blocker via discussion. The headRefOid read
silently degrades the react checkout to the merge ref, and the isDraft
read fails open to "not draft".
Pass the repo explicitly with `-R "$GITHUB_REPOSITORY"` (and the
`${{ github.repository }}` expression form for the resolve-sha step) so
these pre-checkout queries resolve reliably.
symbiot-bot
self-requested a review
July 22, 2026 22:18
symbiot-bot
approved these changes
Jul 22, 2026
symbiot-bot
left a comment
Collaborator
There was a problem hiding this comment.
✅ No issues found.
Review run summary 🤖
| Metric | Value |
|---|---|
| Mode | review |
| Model | claude-sonnet-5 |
| Model time | 122.7s |
| Tool round-trips | 20 |
| Assistant turns | 21 |
| Tokens in / out | 1489727 / 9499 |
| Cache read / write | 1392385 / 97313 |
| Cost (USD) | $0.93 |
symbiot-bot
added a commit
that referenced
this pull request
Jul 22, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Context
The reviewer bot could never lift its own
CHANGES_REQUESTEDafter a PR author addressed a blocker via discussion — the react-mode verdict re-evaluation shipped in #275 never fired in production.Root cause
Three
gh pr viewcalls incode-review-action/action.ymlrun beforeactions/checkout, in a workspace that has no.gityet. Without-R,gh pr viewresolves the target repo from the local git remote, so each call fails withfatal: not a git repository.Confirmed on a live react run — both pre-checkout reads failed in the same job, before checkout:
Because
bot_blockingis alwaysfalsein react mode,authorAcknowledgesWhileBlockinginclassifyReaction.tscan never arm the re-verdict, soCHANGES_REQUESTEDis never lifted.What / Solution
Pass the repo explicitly to the three pre-checkout
gh pr viewcalls:-Rrequirement.Post-checkout
gh pr viewcalls already have a git remote and are unchanged.Scope
bot_blocking=false) is intentionally kept; with the repo resolved, the deterministic pre-checkout failure no longer occurs, so no retry is added.authorAcknowledgesWhileBlockingacknowledgement vocabulary (which phrasings auto-arm) is unchanged — a separate concern. An explicit "re-review"/"PTAL" arms regardless.Testing
action.ymlshell is not unit-testable (the composite action is not covered byactionlint, which is gated by the CI Validate Actions job). Verify on a live blocking PR: an author acknowledgement (or "PTAL") should now logbot_blocking=true,NEEDS_REVERDICT: true, and a non-nullupdatedVerdict, with no "re-verdict will not arm" warning.Related to #275