2.8 KiB
2.8 KiB
description, argument-hint
| description | argument-hint | |
|---|---|---|
| Address any valid, outstanding pull request (PR) review comments |
|
/resolve-review-comments
Purpose
Address any valid, outstanding pull request (PR) review comments
Contract
Inputs: PR_NUMBER (optional) — PR number to check (defaults to current branch's PR)
Outputs: STATUS=<OK|FAIL> [key=value ...]
Instructions
-
Identify the PR:
- If PR_NUMBER provided, use it
- Otherwise, detect PR from current branch using
gh pr view
-
Fetch review comments:
- Get all review threads using GitHub GraphQL API
- Filter for unresolved threads
- Show comment details: file, line, author, body
-
For each unresolved comment:
- Read the comment and assess validity
- If valid:
- Implement the suggested fix
- Test the fix (lint, run relevant tests)
- Commit the fix with message referencing the review
- Push to PR branch
- Add reply to review comment conversation explaining the fix concisely
- Mark thread as resolved using GraphQL API
- If invalid:
- Add reply to review comment conversation explaining why it's invalid concisely
- Mark thread as resolved using GraphQL API
- If unclear:
- Ask user whether to address it or skip
-
Output status:
- Print
STATUS=OK RESOLVED=Nwhere N is count of resolved comments - Print
STATUS=FAIL ERROR="message"on failure
- Print
Example Workflow
# 1. Get unresolved review threads
gh api graphql -f query='
query {
repository(owner: "OWNER", name: "REPO") {
pullRequest(number: PR_NUM) {
reviewThreads(first: 50) {
nodes {
id
isResolved
comments(first: 10) {
nodes {
id
databaseId
body
path
line
author { login }
}
}
}
}
}
}
}
'
# 2. Add reply to review comment conversation (NOT issue comment!)
# Use the first comment's databaseId as in_reply_to
gh api repos/OWNER/REPO/pulls/PR_NUM/comments \
-f body="✅ Fixed in commit abc1234..." \
-F in_reply_to=COMMENT_DATABASE_ID
# 3. Resolve the thread
gh api graphql -f query='
mutation {
resolveReviewThread(input: {threadId: "THREAD_ID"}) {
thread { id isResolved }
}
}
'
Constraints
- Only address comments marked as "valid" after analysis
- Always test fixes before committing
- Use conventional commit messages referencing the review
- Atomic commits per review comment
- Ask user for confirmation on ambiguous cases
- IMPORTANT: Add replies to review comment conversations (using
in_reply_to), NOT to the issue - Keep replies concise (1-3 sentences explaining fix or why invalid)