Skip to main content

gh-cli

All actions on GitHub must use this skill. Covers pull requests, issues, repositories, releases, GitHub Actions, searches, and API requests via the `gh` CLI.

Source facts

Repository
tedivm/opencode-config
Last source activity
May 22, 2026 at 15:01
Detected SKILL.md language
English
Stars
15
Forks
2

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
gh-cli
description
All actions on GitHub must use this skill. Covers pull requests, issues, repositories, releases, GitHub Actions, searches, and API requests via the `gh` CLI.
license
MIT
metadata
{"author":"Robert Hafner","source":"https://github.com/tedivm/opencode-config"}
## Quick Start Verify authentication first: ``` gh auth status ``` All other `gh` commands support `-R OWNER/REPO` to target a specific repository. When omitted, the current directory's repo is used. ## Pull Requests ### Create ``` gh pr create --title "TITLE" --body "BODY" ``` - `--fill` — autofill title and body from commit messages - `--fill-first` — use only the first commit - `--fill-verbose` — use full commit msg + body - `--draft` — create as draft - `--base BRANCH` — set target branch - `--head USER:BRANCH` — specify head from fork - `-a @me` — self-assign - `-l LABEL` — add labels (repeatable) - `-r HANDLE` — request reviewers (repeatable) - `-F file` — read body from file - `--web` — open browser to create Reference issues with `Closes #N` or `Fixes #N` in the body for auto-closure. ### View and List ``` gh pr list [--state open|closed|all] [--label NAME] [--reviewer ME] gh pr view <NUMBER|URL|BRANCH> gh pr status # relevant PRs across repos ``` ### Review ``` gh pr review --approve gh pr review -r -b "Request changes because..." gh pr review --comment -b "Comment only" ``` ### Merge ``` gh pr merge --squash --delete-branch gh pr merge --rebase --delete-branch gh pr merge --merge --delete-branch gh pr merge --auto # auto-merge after checks pass ``` Use `--admin` to bypass merge queue requirements. Use `--match-head-commit SHA` for safety. ### Other ``` gh pr checkout <NUMBER> gh pr diff <NUMBER> gh pr checks <NUMBER> gh pr update-branch <NUMBER> gh pr close <NUMBER> gh pr reopen <NUMBER> gh pr edit <NUMBER> --title "..." --body "..." gh pr lock <NUMBER> gh pr unlock <NUMBER> ``` ## Issues ### Create ``` gh issue create --title "TITLE" --body "BODY" ``` - `-l LABEL` — add labels (repeatable) - `-a HANDLE` — assign (use `@me` or `@copilot`) - `-m MILESTONE` — add to milestone - `-T TEMPLATE` — use issue template - `-F file` — read body from file - `-e` — open editor for title and body - `--web` — open browser ### View and List ``` gh issue list [--state open|closed|all] [--label NAME] [--assignee HANDLE] gh issue view <NUMBER|URL> gh issue status # relevant issues across repos ``` ### Manage ``` gh issue edit <NUMBER> --title "..." --label "..." gh issue comment <NUMBER> -b "COMMENT" gh issue close <NUMBER> gh issue reopen <NUMBER> gh issue lock <NUMBER> gh issue unlock <NUMBER> gh issue pin <NUMBER> gh issue unpin <NUMBER> gh issue transfer <NUMBER> OWNER/REPO gh issue delete <NUMBER> ``` ## Repositories ``` gh repo clone OWNER/REPO gh repo fork OWNER/REPO gh repo create [--private|--public] gh repo list [--visibility public|private|all] gh repo view [--web] gh repo set-default OWNER/REPO gh repo rename <NAME> gh repo archive gh repo unarchive gh repo sync gh repo delete OWNER/REPO # destructive, confirm carefully ``` ## GitHub Actions ``` gh run list gh run view <RUN_ID> gh run watch <RUN_ID> gh run cancel <RUN_ID> gh run rerun <RUN_ID> gh run download <RUN_ID> gh run delete <RUN_ID> gh workflow list gh workflow view <NAME> ``` ## Releases ``` gh release create TAG --title "TITLE" --notes "NOTES" gh release list gh release view TAG gh release upload TAG FILE gh release download TAG --output FILE gh release edit TAG gh release delete TAG gh release delete-asset TAG ASSET gh release verify TAG ``` ## Search ``` gh search issues "QUERY" gh search prs "QUERY" gh search repos "QUERY" gh search code "QUERY" gh search commits "QUERY" ``` Use `--` before queries with hyphens to avoid flag parsing issues: ``` gh search issues -- "is:open -label:bug" ``` ## API Requests For anything not covered by built-in commands: ``` gh api repos/{owner}/{repo}/releases gh api repos/{owner}/{repo}/issues --jq '.[].title' ``` - `-X METHOD` — HTTP method (default GET, auto POST with params) - `-f key=value` — string parameter - `-F key=value` — typed parameter (auto-converts true/false/null/numbers, `@file` reads from file) - `--jq 'QUERY'` — filter output with jq - `--paginate` — fetch all pages - `--slurp` — wrap paginated results into single array - `--input file` — send file as request body - `-H 'Key: Value'` — custom header - `{owner}`, `{repo}`, `{branch}` — auto-resolved placeholders ### Nested parameters ``` gh api endpoint -F 'key[sub]=val' -F 'arr[]=a' -F 'arr[]=b' ``` ### GraphQL ``` gh api graphql -f query='query { viewer { name } }' -F var='value' ``` ## Output Formatting Append to any command producing JSON: ``` --jq '.field' # jq filter --json FIELD,FIELD # specific fields as JSON ``` ## Common Workflows ### Create PR from current branch ``` gh pr create --fill --reviewer HANDLE ``` ### Review and approve current branch PR ``` gh pr review --approve ``` ### Squash merge and cleanup ``` gh pr merge --squash --delete-branch ``` ### Check CI before merging ``` gh pr checks ``` ### Full PR lifecycle 1. Push branch: `git push -u origin BRANCH` 2. Create PR: `gh pr create --fill` 3. Check CI: `gh pr checks` 4. Review: `gh pr review --approve` 5. Merge: `gh pr merge --squash --delete-branch`
View on GitHub