microsoft/pr-review-comments
Guide for submitting/posting inline PR review comments to GitHub. Use this when you need to post code review comments on specific lines of a Pull Request.
npx skills add https://github.com/microsoft/semantic-link-labs --skill pr-review-comments
This skill documents how to post inline review comments to GitHub Pull Requests using the GitHub CLI (gh) and GitHub API. Inline comments appear directly on specific lines of code in the PR diff, making it easier for PR authors to identify and address issues.
Use this skill when you need to:
gh --version curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg | sudo dd of=/usr/share/keyrings/githubcli-archive-keyring.gpg
sudo chmod go+r /usr/share/keyrings/githubcli-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | sudo tee /etc/apt/sources.list.d/github-cli.list > /dev/null
sudo apt update && sudo apt install gh -y
gh auth statusgh auth login -h github.com -p https --webCOMMIT_SHA=$(gh api repos/{OWNER}/{REPO}/pulls/{PR_NUMBER} --jq '.head.sha')
echo "Commit SHA: $COMMIT_SHA"
Create a JSON file with the review comments. Each comment needs:
path: The file path relative to repository rootline: The line number in the new version of the file (right side of diff)body: The comment content (supports Markdown)cat > /tmp/review.json << 'EOF'
{
"commit_id": "YOUR_COMMIT_SHA_HERE",
"event": "COMMENT",
"comments": [
{
"path": "src/path/to/file.py",
"line": 40,
"body": "🔴 **Critical:** Description of the issue.\n\n**Suggested fix:**\n```python\n# your code here\n```"
},
{
"path": "src/path/to/another_file.py",
"line": 21,
"body": "🟡 **Minor:** Another issue description."
}
]
}
EOF
gh api repos/{OWNER}/{REPO}/pulls/{PR_NUMBER}/reviews --method POST --input /tmp/review.json
line field refers to the line number in the new version of the file (right side of the diff)side: "LEFT" and the line number from the old version| Event | Description |
|-------|-------------|
| "COMMENT" | Just add comments without approving/requesting changes |
| "APPROVE" | Approve the PR with comments |
| "REQUEST_CHANGES" | Request changes with comments |
\n for newlines in JSONFor commenting on a range of lines:
{
"path": "src/file.py",
"start_line": 10,
"line": 15,
"body": "This comment spans lines 10-15"
}
| Issue | Solution |
|-------|----------|
| "Validation Failed" error | Check that the line number exists in the PR diff; verify the file path is correct |
| "Resource not accessible" error | Ensure you have write access to the repository; re-authenticate with gh auth login |
| Comments not appearing on specific lines | The line must be part of the diff (added, modified, or within context lines) |
gh pr review CommandFor simpler reviews without inline comments:
gh pr review {PR_NUMBER} --repo {OWNER}/{REPO} --comment --body "Your review comment here"
This posts a general review comment but does not support inline comments on specific lines.
microsoft/semantic-link-labssrc/sempy_labs/{module}/_items.pysrc/sempy_labs/{module}/__init__.pySee the examples/ folder for complete working scripts:
Take microsoft/pr-review-comments from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.