Skill v1.0.1
currentAutomated scan100/10013 files
version: "1.0.1" disable-model-invocation: false name: cli-gh user-invocable: false description: This skill should be used when the user mentions "gh CLI", "gh command", asks to "view repository info", "trigger workflows", "search GitHub", "manage codespaces", "check PR status", "list issues", "browse repo", or asks about GitHub CLI usage and automation from the command line.
GitHub CLI (gh)
Overview
Expert guidance for GitHub CLI (gh) operations and workflows. Use this skill for command-line GitHub operations including pull request management, issue tracking, repository operations, workflow automation, and codespace management.
Key capabilities:
- Create and manage pull requests from the terminal
- Track and organize issues efficiently
- Search across all of GitHub (repos, issues, PRs)
- Manage labels and project organization
- Trigger and monitor GitHub Actions workflows
- Work with codespaces
- Automate repository operations and releases
- Browse repositories, PRs, and files in the browser
Safety Rules
CRITICAL: This skill NEVER uses destructive gh CLI operations.
This skill focuses exclusively on safe, read-only, or reversible GitHub operations. The following commands are PROHIBITED and must NEVER be used:
Permanently destructive commands:
gh repo delete- Repository deletiongh repo archive- Repository archivalgh release delete- Release deletiongh release delete-asset- Asset deletiongh run delete- Workflow run deletiongh cache delete- Cache deletiongh secret delete- Secret deletiongh variable delete- Variable deletiongh label delete- Label deletiongh ssh-key delete- SSH key deletion (can lock out users)gh gpg-key delete- GPG key deletiongh codespace delete- Codespace deletiongh extension remove- Extension removalgh gist delete- Gist deletion- Bulk deletion operations using
xargswith any destructive commands - Shell commands:
rm -rf(except for temporary file cleanup)
Allowed operations:
- Creating resources (PRs, issues, releases, labels, repos)
- Viewing and listing (status, logs, information, searches)
- Updating and editing existing resources
- Closing PRs/issues (reversible - can be reopened)
- Reverting pull requests (creates a new revert PR)
- Canceling workflow runs (stops execution without deleting data)
- Merging pull requests (after proper review)
- Read-only git operations (
git status,git log,git diff)
Installation & Setup
# Login to GitHubgh auth login# Login and copy OAuth code to clipboard automaticallygh auth login --clipboard# Check authentication statusgh auth status# Check auth status with JSON outputgh auth status --json# Configure git to use gh as credential helpergh auth setup-git
Pull Requests
Creating PRs
# Create PR interactivelygh pr create# Create PR with title and bodygh pr create --title "Add feature" --body "Description"# Create PR to specific branchgh pr create --base main --head feature-branch# Create draft PRgh pr create --draft# Create PR from current branchgh pr create --fill # Uses commit messages# Create PR with Copilot Code Reviewgh pr create --reviewer @copilot
Viewing PRs
# List PRsgh pr list# List my PRsgh pr list --author @me# View PR detailsgh pr view 123# View PR in browsergh pr view 123 --web# View PR diffgh pr diff 123# View PR diff excluding specific filesgh pr diff 123 --exclude "*.lock"# Check PR statusgh pr status
Managing PRs
# Checkout PR locallygh pr checkout 123# Review PRgh pr review 123 --approvegh pr review 123 --comment --body "Looks good!"gh pr review 123 --request-changes --body "Please fix X"# Request Copilot Code Reviewgh pr edit 123 --add-reviewer @copilot# Merge PRgh pr merge 123gh pr merge 123 --squashgh pr merge 123 --rebasegh pr merge 123 --merge# Close PRgh pr close 123# Reopen PRgh pr reopen 123# Ready draft PRgh pr ready 123# Update PR branch with base branchgh pr update-branch 123# Revert a merged PR (creates a new revert PR)gh pr revert 123
PR Checks
# View PR checksgh pr checks 123# Watch PR checksgh pr checks 123 --watch
Issues
Creating Issues
# Create issue interactivelygh issue create# Create issue with title and bodygh issue create --title "Bug report" --body "Description"# Create issue with labelsgh issue create --title "Bug" --label bug,critical# Assign issuegh issue create --title "Task" --assignee @me
Viewing Issues
# List issuesgh issue list# List my issuesgh issue list --assignee @me# List by labelgh issue list --label bug# Advanced issue searchgh issue list --search "is:open label:bug sort:created-desc"# View issue detailsgh issue view 456# View in browsergh issue view 456 --web
Managing Issues
# Close issuegh issue close 456# Close as duplicate, linking to the original issuegh issue close 123 --duplicate-of 456# Reopen issuegh issue reopen 456# Edit issuegh issue edit 456 --title "New title"gh issue edit 456 --add-label buggh issue edit 456 --add-assignee @user# Comment on issuegh issue comment 456 --body "Update"# Create branch to work on issuegh issue develop 456 --checkout
Repository Operations
Repository Info
# View repositorygh repo view# View in browsergh repo view --web# Clone repositorygh repo clone owner/repo# Clone without adding upstream remotegh repo clone owner/repo --no-upstream# Fork repositorygh repo fork owner/repo# List repositoriesgh repo list owner
Repository Management
# Create repositorygh repo create my-repo --publicgh repo create my-repo --private# Sync forkgh repo sync owner/repo# Set default repositorygh repo set-default
Search
When the user asks to search GitHub repositories, issues, or pull requests, see references/search.md.
Labels
When the user asks to list, create, edit, or clone repository labels, see references/labels.md.
Codespaces
When the user asks to list, create, connect to, or manage files within GitHub Codespaces, see references/codespaces.md.
Browse
Open repositories, files, and resources in the browser.
# Open current repo in browsergh browse# Open specific filegh browse src/main.go# Open file at specific linegh browse src/main.go:42# Open blame view for a filegh browse --blame src/main.go# Open Actions tabgh browse --actions# Open specific branchgh browse --branch feature
Releases
When the user asks to create, list, view, or download GitHub releases, see references/releases.md.
Gists
When the user asks to create, list, view, or edit GitHub gists, see references/gists.md.
Configuration
# Set default editorgh config set editor vim# Set default git protocolgh config set git_protocol ssh# View configurationgh config list# Set browsergh config set browser firefox
Quick Reference
Common gh operations at a glance:
| Operation | Command | Common Flags | |
|---|---|---|---|
| Create PR | gh pr create | --draft, --fill, --reviewer @copilot | |
| List PRs | gh pr list | --author @me, --label, --search | |
| View PR | gh pr view <number> | --web, --comments | |
| Merge PR | gh pr merge <number> | --squash, --rebase, --delete-branch | |
| Revert PR | gh pr revert <number> | --body | |
| Create issue | gh issue create | --title, --body, --label | |
| List issues | gh issue list | --assignee @me, --label, --search | |
| Close issue | gh issue close <number> | --duplicate-of, --reason | |
| View issue | gh issue view <number> | --web, --comments | |
| Browse repo | gh browse | --blame, --actions, --branch | |
| Clone repo | gh repo clone <repo> | --no-upstream | |
| Fork repo | gh repo fork | --clone, --remote | |
| View repo | gh repo view | --web | |
| Create release | gh release create <tag> | --title, --notes, --draft | |
| Verify release | gh release verify <tag> | --repo | |
| Run workflow | gh workflow run <name> | --ref, --field | |
| Watch run | gh run watch <id> | --exit-status | |
| Search repos | gh search repos <query> | --language, --stars | |
| Create label | gh label create <name> | --color, --description | |
| Create codespace | gh codespace create | --repo, --branch |
Additional Resources
Reference Guides
For detailed patterns and advanced usage, see:
- [Workflows & Actions](references/workflows-actions.md) - GitHub Actions workflows, runs, cache management, and CI/CD integration patterns
- [Advanced Features](references/advanced-features.md) - Aliases, API access, extensions, secrets, SSH/GPG keys, organizations, projects, and advanced scripting
- [Automation Workflows](references/automation-workflows.md) - Common automation patterns, daily reports, release automation, and team collaboration workflows
- [Troubleshooting](references/troubleshooting.md) - Solutions for authentication, permissions, rate limiting, and common errors
Example Scripts
Practical automation scripts (see examples/ directory):
auto-pr-create.sh- Automated PR creation workflowissue-triage.sh- Bulk issue labeling and assignmentworkflow-monitor.sh- Watch and notify on workflow completionrelease-automation.sh- Complete release workflow automation
External Documentation
- Official Manual: https://cli.github.com/manual
- GitHub Community: https://github.com/cli/cli/discussions
- API Documentation: https://docs.github.com/en/rest
- Extension Marketplace: https://github.com/topics/gh-extension
JSON Output
When the user wants to use --json flags or needs the correct gh CLI JSON field names, see references/json-output.md.
Tips
- Use
--webflag to open items in browser for detailed view - Leverage interactive prompts by omitting parameters - most commands support interactive mode
- Apply filters with
--author,--label,--stateto narrow down lists efficiently - Add
--jsonflag to enable scriptable output for automation - Always check `--help` for valid JSON field names - they differ from GitHub API
- Use
gh repo create --templateto scaffold from template repositories - Enable auto-merge with
gh pr merge --autofor PRs that pass checks