| name | gh-github-cli |
| description | Use gh (GitHub CLI) to fetch and process GitHub issues, pull requests, repositories, and other GitHub resources. Use when the user provides a GitHub URL (https://github.com/*), asks about GitHub issues/PRs, or mentions gh commands. |
GitHub CLI (gh) Skill
Process GitHub-related requests using the gh CLI tool.
Quick Start
gh issue view 12345 --repo owner/repo
gh pr view 67890 --repo owner/repo
gh pr view 67890 --repo owner/repo --json title,body,author,state,additions,deletions
Instructions
1. Parse GitHub URLs
Extract components from GitHub URLs:
| URL Pattern | Components |
|---|
https://github.com/owner/repo | owner, repo |
https://github.com/owner/repo/issues/123 | owner, repo, issue=123 |
https://github.com/owner/repo/pull/456 | owner, repo, pr=456 |
https://github.com/owner/repo/blob/main/path/file.py | owner, repo, branch, file path |
https://github.com/owner/repo/tree/main/path | owner, repo, branch, directory |
Parse with:
echo "https://github.com/pytorch/pytorch/issues/12345" | sed -E 's|https://github.com/([^/]+)/([^/]+)/(issues\|pull)/([0-9]+)|\1 \2 \3 \4|'
2. Fetch Issue Information
gh issue view <number> --repo <owner>/<repo>
gh issue view <number> --repo <owner>/<repo> --json title,body,author,state,labels,comments
gh issue view <number> --repo <owner>/<repo> --comments
3. Fetch Pull Request Information
gh pr view <number> --repo <owner>/<repo>
gh pr view <number> --repo <owner>/<repo> --json title,body,author,state,additions,deletions,files,commits,reviews
gh pr diff <number> --repo <owner>/<repo>
gh pr checks <number> --repo <owner>/<repo>
gh pr view <number> --repo <owner>/<repo> --json mergeable,mergeStateStatus
4. Fetch Repository Information
gh repo view <owner>/<repo>
gh repo view <owner>/<repo> --json name,description,topics,stargazerCount
gh issue list --repo <owner>/<repo> --state open --limit 20
gh pr list --repo <owner>/<repo> --state open --limit 20
5. Handle API Rate Limits
gh api rate_limit
gh issue list --repo <owner>/<repo> --state all --paginate
6. Advanced API Access
gh api repos/<owner>/<repo>/issues/<number>
gh api graphql -f query='
query($owner: String!, $repo: String!, $number: Int!) {
repository(owner: $owner, name: $repo) {
issue(number: $number) {
title
body
author { login }
}
}
}
' -f owner=<owner> -f repo=<repo> -F number=<number>
Common Workflows
Triage an Issue
- Parse URL to get owner/repo/number
- Fetch issue details:
gh issue view <number> --repo <owner>/<repo> --json title,body,author,state,labels,comments
- Analyze and provide summary
Review a PR
- Parse URL to get owner/repo/number
- Fetch PR details:
gh pr view <number> --repo <owner>/<repo> --json title,body,author,state,files,additions,deletions
- Optionally fetch diff:
gh pr diff <number> --repo <owner>/<repo>
- Review and provide feedback
Check CI Status
gh pr checks <number> --repo <owner>/<repo> --watch
Best Practices
- Use
--json for structured output when processing data programmatically
- Use
--jq to filter JSON output: gh issue view 123 --json title,body | jq '.title'
- Default to
--repo <owner>/<repo> for clarity in multi-repo contexts
- Check
gh auth status if commands fail with auth errors
- Use
gh api for endpoints not covered by convenience commands
Error Handling
if ! command -v gh &> /dev/null; then
echo "gh CLI not installed. Install from: https://cli.github.com/"
exit 1
fi
gh auth status
gh issue view 999999 --repo owner/repo 2>&1 | grep -q "not found" && echo "Issue not found"
Reference
For complete command reference:
gh help
gh issue --help
gh pr --help
gh api --help