Fetch Unresolved PR Review Comments
fetch-unresolved-comments
Fetch unresolved PR review comments using GitHub GraphQL API, filtering out resolved and outdated feedback.
SKILL.md
Full skill instructions
Fetch Unresolved PR Review Comments
Uses GitHub's GraphQL API to fetch only unresolved review thread comments from a pull request.
When to Use
- You need to get only unresolved review comments from a PR
- You want to filter out already-resolved and outdated feedback
Instructions
-
Get PR URL:
- First check for environment variables:
- If
PR_NUMBERandGITHUB_REPOSITORYare set, construct URL ashttps://github.com/${GITHUB_REPOSITORY}/pull/${PR_NUMBER}
- If
- Otherwise:
- Use
gh pr view --json url -q '.url'to get the current branch's PR URL
- Use
- First check for environment variables:
-
Run the skill:
uv run skills fetch-unresolved-comments <pr_url>Example:
uv run skills fetch-unresolved-comments https://github.com/mlflow/mlflow/pull/18327The script automatically reads the GitHub token from:
GH_TOKENenvironment variable, orgh auth tokencommand if environment variables are not set
Example Output
{
"total": 3,
"by_file": {
".github/workflows/resolve.yml": [
{
"thread_id": "PRRT_kwDOAL...",
"line": 40,
"startLine": null,
"diffHunk": "@@ -0,0 +1,245 @@\n+name: resolve...",
"comments": [
{
"id": 2437935275,
"body": "We can remove this once we get the key.",
"author": "harupy",
"createdAt": "2025-10-17T00:53:20Z"
},
{
"id": 2437935276,
"body": "Good catch, I'll update it.",
"author": "contributor",
"createdAt": "2025-10-17T01:10:15Z"
}
]
}
],
".gitignore": [
{
"thread_id": "PRRT_kwDOAL...",
"line": 133,
"startLine": null,
"diffHunk": "@@ -130,0 +133,2 @@\n+.claude/*",
"comments": [
{
"id": 2437935280,
"body": "Should we add this to .gitignore?",
"author": "reviewer",
"createdAt": "2025-10-17T01:15:42Z"
}
]
}
]
}
}
