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