using-gh-cli
183
总安装量
11
周安装量
#2738
全站排名
安装命令
npx skills add https://github.com/trailofbits/skills --skill using-gh-cli
Agent 安装分布
claude-code
11
cursor
10
github-copilot
10
codex
10
gemini-cli
10
opencode
10
Skill 文档
Using the GitHub CLI (gh)
When to Use
- Viewing or creating pull requests, issues, releases, or gists
- Fetching file contents, repo metadata, or any GitHub API data
- Interacting with GitHub Actions (runs, workflows)
- Any task involving GitHub that you might otherwise use
curl,wget, orWebFetchfor
When NOT to Use
- Non-GitHub URLs (use
WebFetchorcurlfor those) - Public web content that happens to be hosted on GitHub Pages (
*.github.io) â those are regular websites - Local git operations (
git commit,git push) â usegitdirectly
Key Principle
Always use gh instead of curl, wget, or WebFetch for GitHub URLs. The gh CLI uses the user’s authenticated token automatically, so it:
- Works with private repositories
- Avoids GitHub API rate limits (unauthenticated: 60 req/hr; authenticated: 5,000 req/hr)
- Handles pagination correctly
- Provides structured output and filtering
Quick Start
# View a repo
gh repo view owner/repo
# List and view PRs
gh pr list --repo owner/repo
gh pr view 123 --repo owner/repo
# List and view issues
gh issue list --repo owner/repo
gh issue view 456 --repo owner/repo
# Call any REST API endpoint
gh api repos/owner/repo/contents/README.md
# Call with pagination and jq filtering
gh api repos/owner/repo/pulls --paginate --jq '.[].title'
Common Patterns
| Instead of | Use |
|---|---|
WebFetch on github.com/owner/repo |
gh repo view owner/repo |
WebFetch on api.github.com/... |
gh api <endpoint> |
WebFetch on raw.githubusercontent.com/... |
gh api repos/owner/repo/contents/path |
curl https://api.github.com/... |
gh api <endpoint> |
curl with -H "Authorization: token ..." |
gh api <endpoint> (auth is automatic) |
wget to download a release asset |
gh release download --repo owner/repo |
Decoding File Contents
gh api repos/.../contents/... returns base64-encoded content. Decode it:
gh api repos/owner/repo/contents/path/to/file --jq '.content' | base64 -d
Or for binary files / large files, use the raw media type:
gh api repos/owner/repo/contents/path/to/file -H "Accept: application/vnd.github.raw+json"
References
- Pull Requests â list, view, create, merge, review PRs
- Issues â list, view, create, close, comment on issues
- Repos and Files â view repos, browse files, clone
- API â raw REST/GraphQL access, pagination, jq filtering
- Releases â list, create, download releases
- Actions â view runs, trigger workflows, check logs