fix(review-pr): resolve any addressed thread, not only your own

Bot and other-reviewer threads block land the same way. The guard that
matters is whether the finding is addressed, not who opened it.
This commit is contained in:
Miguel Palhas
2026-08-24 11:23:53 +01:00
parent c7becda233
commit 8313842de8
+13 -12
View File
@@ -167,13 +167,14 @@ Nothing new behind the reason: return silently, per `COMMON.md`. That
covers a hint with nothing behind it, not a SHA you have reviewed and covers a hint with nothing behind it, not a SHA you have reviewed and
left unacknowledged. left unacknowledged.
### 3.1 Resolving your own threads ### 3.1 Resolving threads
A thread you opened is yours to close. Once the author has addressed a Once a finding is addressed — the fix is in the new commits, or a reply
finding — the fix is in the new commits, or the reply settled it — settled it — resolve the thread. Any thread, whoever opened it: yours,
resolve it. Left open, every finding you ever posted stays open for the another reviewer's, a bot's (Copilot, CodeRabbit, crit), the user's.
life of the PR, and the author's `land` session, which will not declare Left open, findings accumulate for the life of the PR, and the author's
a PR ready over an unaddressed thread, is blocked on you. `land` session, which will not declare a PR ready over an unaddressed
thread, is blocked on them.
```bash ```bash
# github — needs the thread id, not the comment id # github — needs the thread id, not the comment id
@@ -188,10 +189,10 @@ curl -sS -X POST -H "Authorization: token $GITEA_TOKEN" \
"$BASE/api/v1/repos/$REPO/pulls/comments/<cid>/resolve" "$BASE/api/v1/repos/$REPO/pulls/comments/<cid>/resolve"
``` ```
Resolve only threads rooted in a comment you posted, and only when the Resolve only what is actually addressed, and only after reading the
finding is actually addressed. Someone else's thread, and a finding the code that addresses it. A finding the author merely disagreed with, and
author merely disagreed with, both stay open — that is the user's call. a question still waiting on an answer, both stay open — that is the
Never resolve as a way to clear a backlog you have not re-read. user's call, not a backlog for you to clear.
Resolving is the whole of your authority here. It is not approval: the Resolving is the whole of your authority here. It is not approval: the
review decision stays `COMMENT`, per §2. review decision stays `COMMENT`, per §2.
@@ -199,7 +200,7 @@ review decision stays `COMMENT`, per §2.
## 4. Close out ## 4. Close out
When your findings are posted (or handed over, on an unlisted repo), no When your findings are posted (or handed over, on an unlisted repo), no
thread is waiting on you, and every thread you opened is either resolved thread is waiting on you, and every addressed thread is resolved, say so
or genuinely still open, say so in one line and stop. Do not track the in one line and stop. Do not track the
PR to merge — that's the author's job, and on someone else's PR it isn't PR to merge — that's the author's job, and on someone else's PR it isn't
yours to drive. yours to drive.