name: github entry: github.sh description: "Comprehensive GitHub CLI wrapper. Manage repos, issues, PRs, workflows, releases, gists, and more via the gh CLI."
GitHub Skill
Full-featured GitHub CLI wrapper for managing repositories, issues, pull requests, CI/CD workflows, releases, and more.
Environment Variables
| Variable | Required | Description |
|---|---|---|
GITHUB_TOKEN | Optional | GitHub personal access token for authentication |
GH_REPO | Optional | Default repository (format: owner/repo) |
Quick Reference
# Issues
github issue list --repo owner/repo
github issue view 42 --repo owner/repo
github issue create --repo owner/repo --title "Bug" --body "Details..."
# Pull Requests
github pr list --repo owner/repo
github pr checks 55 --repo owner/repo
github pr merge 55 --repo owner/repo --squash
# CI/CD Workflows
github run list --repo owner/repo --limit 10
github run view 12345678 --repo owner/repo --log-failed
github run watch 12345678 --repo owner/repo
# Releases
github release list --repo owner/repo
github release create v1.0.0 --repo owner/repo --title "Version 1.0"
# Search
github search repos "topic:ai language:typescript"
github search code "function authenticate repo:owner/repo"
github search issues "is:open label:bug"
Repository Commands
View Repository Info
github repo view owner/repo
github repo view owner/repo --json name,description,stargazers_count
List Your Repositories
github repo list
github repo list --limit 50 --source # exclude forks
Clone a Repository
github repo clone https://github.com/owner/repo
github repo clone owner/repo my-local-name
Fork a Repository
github repo fork owner/repo
github repo fork owner/repo --clone --remote
Issue Commands
List Issues
github issue list --repo owner/repo
github issue list --repo owner/repo --state all --limit 20
github issue list --repo owner/repo --label bug --label "help wanted"
View Issue Details
github issue view 42 --repo owner/repo
github issue view 42 --repo owner/repo --comments
Create an Issue
github issue create --repo owner/repo
github issue create --repo owner/repo --title "Found a bug" --body "Description..."
github issue create --repo owner/repo --title "Bug" --label bug --assignee @me
Manage Issues
github issue close 42 --repo owner/repo
github issue reopen 42 --repo owner/repo
github issue comment 42 --repo owner/repo "Thanks for reporting!"
Pull Request Commands
List PRs
github pr list --repo owner/repo
github pr list --repo owner/repo --state merged --limit 10
github pr list --repo owner/repo --author username
View PR Details
github pr view 55 --repo owner/repo
github pr view 55 --repo owner/repo --json number,title,state,mergeStateStatus
Check PR CI Status
github pr checks 55 --repo owner/repo
github pr checks 55 --repo owner/repo --json state,name
Create a PR
github pr create --repo owner/repo
github pr create --repo owner/repo --title "Fix bug" --body "Description..."
github pr create --repo owner/repo --draft --base main
Merge a PR
github pr merge 55 --repo owner/repo
github pr merge 55 --repo owner/repo --squash --delete-branch
github pr merge 55 --repo owner/repo --rebase --auto
Review a PR
github pr review 55 --repo owner/repo --approve
github pr review 55 --repo owner/repo --request-changes --body "Needs work"
github pr review 55 --repo owner/repo --comment --body "Question about..."
Checkout a PR Locally
github pr checkout 55 --repo owner/repo
github pr checkout 55 --repo owner/repo --branch pr-55
View PR Diff
github pr diff 55 --repo owner/repo
github pr diff 55 --repo owner/repo --name-only
Close a PR
github pr close 55 --repo owner/repo
github pr close 55 --repo owner/repo --delete-branch
Workflow Commands
List Recent Runs
github run list --repo owner/repo
github run list --repo owner/repo --workflow ci.yml --limit 20
View Run Details
github run view 12345678 --repo owner/repo
github run view 12345678 --repo owner/repo --json conclusion,status
View Run Logs
github run logs 12345678 --repo owner/repo
github run failed 12345678 --repo owner/repo # Failed steps only
Watch Run Progress
github run watch 12345678 --repo owner/repo
Rerun or Cancel
github run rerun 12345678 --repo owner/repo
github run rerun 12345678 --repo owner/repo --failed # Rerun failed jobs only
github run cancel 12345678 --repo owner/repo
Release Commands
List Releases
github release list --repo owner/repo
github release list --repo owner/repo --limit 10
View a Release
github release view v1.0.0 --repo owner/repo
Create a Release
github release create v1.0.0 --repo owner/repo
github release create v1.0.0 --repo owner/repo --title "Version 1.0" --notes "Changes..."
github release create v1.0.0 --repo owner/repo --generate-notes --prerelease
Upload Assets
github release upload v1.0.0 --repo owner/repo ./dist/app.zip
Download Release Assets
github release download v1.0.0 --repo owner/repo
Gist Commands
List Your Gists
github gist list
github gist list --limit 20 --public
View a Gist
github gist view GIST_ID
github gist view GIST_ID --raw
Create a Gist
github gist create file.txt
github gist create file.txt --public --desc "My snippet"
github gist create "*.md" --desc "Documentation snippets"
Search Commands
Search Repositories
github search repos "machine learning"
github search repos "topic:ai language:python stars:>1000"
github search repos "org:facebook react"
Search Code
github search code "function authenticate"
github search code "TODO filename:main.go repo:owner/repo"
github search code "class User language:typescript"
Search Issues
github search issues "is:open label:bug"
github search issues "created:>2024-01-01 repo:owner/repo"
github search issues "involves:username state:closed"
Search Pull Requests
github search prs "is:open is:pr review:required"
github search prs "is:merged base:main author:username"
API Commands
Direct API Calls
github api repos/owner/repo/pulls/55
github api repos/owner/repo/issues --jq '.[].title'
github api repos/owner/repo/pulls/55 --method PATCH --field state=closed
GraphQL Queries
github api-graphql 'query { viewer { login name } }'
Common API Patterns
Get PR with specific fields:
github api repos/owner/repo/pulls/55 --jq '.title, .state, .user.login, .merged'
Get repository statistics:
github api repos/owner/repo --jq '.stargazers_count, .forks_count, .open_issues_count'
List collaborators:
github api repos/owner/repo/collaborators --jq '.[].login'
Authentication Commands
Check Status
github auth status
github whoami
Login
github auth login
Get Token
github auth token
Check Rate Limits
github rate-limit
JSON Output & Filtering
Most commands support --json for structured output and --jq for filtering:
# Get specific fields as JSON
github pr list --repo owner/repo --json number,title,author,state
# Filter and format with jq
github issue list --repo owner/repo --json number,title --jq '.[] | "#\(.number): \(.title)"'
# Complex jq filtering
github run list --repo owner/repo --json name,status,conclusion --jq '.[] | select(.conclusion=="failure") | .name'
Tips & Best Practices
Set Default Repository
Avoid typing --repo repeatedly:
export GH_REPO="owner/repo"
github pr list # uses default repo
github issue list # uses default repo
Combine with Other Tools
# Get failing PRs
github pr list --repo owner/repo --json number,title,statusCheckRollup | jq '.[] | select(.statusCheckRollup[].state=="FAILURE")'
# Open PR in browser
github pr view 55 --repo owner/repo --web
Common Workflows
Review and merge a passing PR:
github pr checks 55 --repo owner/repo && \
github pr review 55 --repo owner/repo --approve && \
github pr merge 55 --repo owner/repo --squash --delete-branch
Quick bug fix workflow:
github issue view 42 --repo owner/repo
github issue close 42 --repo owner/repo --comment "Fixed in PR #55"
Monitor deployment:
github run list --repo owner/repo --workflow deploy.yml --limit 1
github run watch <run-id> --repo owner/repo
Help
github help # Show all commands
github repo help # Show repo subcommands
github issue help # Show issue subcommands
github pr help # Show PR subcommands