Skip to content

Auto-Approve

When the bot reviews a PR it leaves inline review comments tied to specific lines of the diff. As the author works through that feedback, they mark each conversation Resolved in GitHub.

Once every comment thread the bot opened on the PR is resolved, the bot submits a formal approval review — no further interaction needed. The PR’s review status flips to “Approved” and any branch protection rule requiring an approving review is satisfied.


  1. Code review — the user requests a review (e.g. @vgvbot review this PR). The bot analyzes the diff and posts a review with inline comments. Each comment becomes a conversation thread.
  2. Resolution tracking — as the author addresses feedback they click Resolve conversation on each thread. GitHub fires a webhook for each thread that flips to resolved.
  3. Approval — the bot checks whether all its threads on the PR are resolved. If yes, it submits an approval with a short acknowledgement message. If any thread is still open, it waits for the next resolution event.

Threads opened by other reviewers — humans or other bots — are ignored. The bot only tracks its own conversations.


There is one case where the bot intentionally does not submit an approval even when all its comments are resolved: when the bot itself opened the PR.

GitHub does not allow the author of a pull request to approve it, and this applies to GitHub Apps the same way it applies to people. When the bot opened the PR it posts a comment instead:

All my review comments have been resolved. This PR looks good to me! I can’t formally approve it since I opened it, but it’s ready from my side.

This is expected behavior, not a bug. A human reviewer still needs to hit the approve button on those PRs.


The bot only auto-approves on the initial pass. If you commit further changes and want a fresh review, re-request the bot as a reviewer through GitHub’s normal UI. That starts a new review cycle.


SituationOutcome
All bot comments resolved, PR opened by a humanBot submits a formal approval review
All bot comments resolved, PR opened by the bot itselfBot posts an acknowledgement comment (no formal approval)
Some bot comments still unresolvedBot waits — no action
Only non-bot comments on the PRBot ignores — auto-approval is scoped to the bot’s own threads