AgentSkillsCN

github

全面的 GitHub CLI 封装。通过 gh CLI 管理仓库、议题、PR、工作流、发布、Gist 等多种资源。

SKILL.md
--- frontmatter
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

VariableRequiredDescription
GITHUB_TOKENOptionalGitHub personal access token for authentication
GH_REPOOptionalDefault repository (format: owner/repo)

Quick Reference

bash
# 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

bash
github repo view owner/repo
github repo view owner/repo --json name,description,stargazers_count

List Your Repositories

bash
github repo list
github repo list --limit 50 --source  # exclude forks

Clone a Repository

bash
github repo clone https://github.com/owner/repo
github repo clone owner/repo my-local-name

Fork a Repository

bash
github repo fork owner/repo
github repo fork owner/repo --clone --remote

Issue Commands

List Issues

bash
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

bash
github issue view 42 --repo owner/repo
github issue view 42 --repo owner/repo --comments

Create an Issue

bash
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

bash
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

bash
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

bash
github pr view 55 --repo owner/repo
github pr view 55 --repo owner/repo --json number,title,state,mergeStateStatus

Check PR CI Status

bash
github pr checks 55 --repo owner/repo
github pr checks 55 --repo owner/repo --json state,name

Create a PR

bash
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

bash
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

bash
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

bash
github pr checkout 55 --repo owner/repo
github pr checkout 55 --repo owner/repo --branch pr-55

View PR Diff

bash
github pr diff 55 --repo owner/repo
github pr diff 55 --repo owner/repo --name-only

Close a PR

bash
github pr close 55 --repo owner/repo
github pr close 55 --repo owner/repo --delete-branch

Workflow Commands

List Recent Runs

bash
github run list --repo owner/repo
github run list --repo owner/repo --workflow ci.yml --limit 20

View Run Details

bash
github run view 12345678 --repo owner/repo
github run view 12345678 --repo owner/repo --json conclusion,status

View Run Logs

bash
github run logs 12345678 --repo owner/repo
github run failed 12345678 --repo owner/repo  # Failed steps only

Watch Run Progress

bash
github run watch 12345678 --repo owner/repo

Rerun or Cancel

bash
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

bash
github release list --repo owner/repo
github release list --repo owner/repo --limit 10

View a Release

bash
github release view v1.0.0 --repo owner/repo

Create a Release

bash
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

bash
github release upload v1.0.0 --repo owner/repo ./dist/app.zip

Download Release Assets

bash
github release download v1.0.0 --repo owner/repo

Gist Commands

List Your Gists

bash
github gist list
github gist list --limit 20 --public

View a Gist

bash
github gist view GIST_ID
github gist view GIST_ID --raw

Create a Gist

bash
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

bash
github search repos "machine learning"
github search repos "topic:ai language:python stars:>1000"
github search repos "org:facebook react"

Search Code

bash
github search code "function authenticate"
github search code "TODO filename:main.go repo:owner/repo"
github search code "class User language:typescript"

Search Issues

bash
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

bash
github search prs "is:open is:pr review:required"
github search prs "is:merged base:main author:username"

API Commands

Direct API Calls

bash
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

bash
github api-graphql 'query { viewer { login name } }'

Common API Patterns

Get PR with specific fields:

bash
github api repos/owner/repo/pulls/55 --jq '.title, .state, .user.login, .merged'

Get repository statistics:

bash
github api repos/owner/repo --jq '.stargazers_count, .forks_count, .open_issues_count'

List collaborators:

bash
github api repos/owner/repo/collaborators --jq '.[].login'

Authentication Commands

Check Status

bash
github auth status
github whoami

Login

bash
github auth login

Get Token

bash
github auth token

Check Rate Limits

bash
github rate-limit

JSON Output & Filtering

Most commands support --json for structured output and --jq for filtering:

bash
# 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:

bash
export GH_REPO="owner/repo"
github pr list  # uses default repo
github issue list  # uses default repo

Combine with Other Tools

bash
# 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:

bash
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:

bash
github issue view 42 --repo owner/repo
github issue close 42 --repo owner/repo --comment "Fixed in PR #55"

Monitor deployment:

bash
github run list --repo owner/repo --workflow deploy.yml --limit 1
github run watch <run-id> --repo owner/repo

Help

bash
github help              # Show all commands
github repo help         # Show repo subcommands
github issue help        # Show issue subcommands
github pr help           # Show PR subcommands