| name | github |
| description | GitHub operations via `gh` CLI for issues, PRs, CI runs, code review, and API queries. Use when checking PR status or CI, creating or commenting on issues, listing or filtering PRs and issues, or viewing run logs. |
| license | MIT |
| metadata | {"author":"greedychipmunk","version":"1.0"} |
GitHub Skill
Use the gh CLI to interact with GitHub repositories, issues, PRs, and CI.
When to Use
- Checking PR status, reviews, or merge readiness
- Viewing CI/workflow run status and logs
- Creating, closing, or commenting on issues
- Creating or merging pull requests
- Querying GitHub API for repository data
- Listing repos, releases, or collaborators
When NOT to Use
- Local git operations (commit, push, pull, branch) → use
git directly
- Non-GitHub repos (GitLab, Bitbucket, self-hosted) → different CLIs
- Cloning repositories → use
git clone
- Reviewing actual code changes → read files directly
Setup
gh auth login
gh auth status
Common Commands
Pull Requests
gh pr list --repo owner/repo
gh pr checks 55 --repo owner/repo
gh pr view 55 --repo owner/repo
gh pr create --title "feat: add feature" --body "Description"
gh pr merge 55 --squash --repo owner/repo
Issues
gh issue list --repo owner/repo --state open
gh issue create --title "Bug: something broken" --body "Details..."
gh issue close 42 --repo owner/repo
CI/Workflow Runs
gh run list --repo owner/repo --limit 10
gh run view <run-id> --repo owner/repo
gh run view <run-id> --repo owner/repo --log-failed
gh run rerun <run-id> --failed --repo owner/repo
API Queries
gh api repos/owner/repo/pulls/55 --jq '.title, .state, .user.login'
gh api repos/owner/repo/labels --jq '.[].name'
gh api repos/owner/repo --jq '{stars: .stargazers_count, forks: .forks_count}'
JSON Output
Most commands support --json for structured output with --jq filtering:
gh issue list --repo owner/repo --json number,title --jq '.[] | "\(.number): \(.title)"'
gh pr list --json number,title,state,mergeable --jq '.[] | select(.mergeable == "MERGEABLE")'
Templates
PR Review Summary
PR=55 REPO=owner/repo
echo "## PR #$PR Summary"
gh pr view $PR --repo $REPO --json title,body,author,additions,deletions,changedFiles \
--jq '"**\(.title)** by @\(.author.login)\n\n\(.body)\n\n📊 +\(.additions) -\(.deletions) across \(.changedFiles) files"'
gh pr checks $PR --repo $REPO
Issue Triage
gh issue list --repo owner/repo --state open --json number,title,labels,createdAt \
--jq '.[] | "[\(.number)] \(.title) - \([.labels[].name] | join(", ")) (\(.createdAt[:10]))"'
Notes
- Always specify
--repo owner/repo when not in a git directory
- Use URLs directly:
gh pr view https://github.com/owner/repo/pull/55
- Rate limits apply; use
gh api --cache 1h for repeated queries