关于 gh-cli
面向命令行 GitHub 工作的技能指南,涵盖仓库、Issue、Pull Request、Actions、发布和 API 操作。强调先检查再修改,并使用结构化输出与明确的仓库范围。
主要功能
- 01查看仓库、Issue 和 Pull Request
- 02管理 Actions 工作流与运行
- 03创建和检查发布
- 04通过 REST 或 GraphQL 调用 API
- 05使用 JSON 与 jq 处理输出
适用场景
- 01检查仓库和当前认证状态
- 02从命令行筛选或审查 Pull Request
- 03查看 Actions 运行日志与状态
- 04通过脚本批量读取 GitHub 数据
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ zlliang/ skills --skill gh-cli安装后在 Claude Code 中输入/gh-cli确认已加载。
详细介绍
GitHub CLI (gh)
对于可通过命令行完成的 GitHub 工作,优先使用 gh:检查仓库、管理议题和拉取请求、查看 Actions 运行、管理发布和 gist,以及调用经过身份验证的 GitHub API。
如需了解确切的标志和当前行为,请运行 gh help、gh <command> --help,或阅读官方 GitHub CLI 手册。
操作原则
- 对于 GitHub 操作,优先使用
gh,而不是临时的浏览器操作,尤其是在需要复制、筛选或编写脚本处理输出时。 - 修改前先检查。如果上下文、仓库、分支或账户不确定,请先运行只读命令。
- 如果当前不在目标仓库的本地检出目录中操作,请使用
--repo OWNER/REPO明确指定仓库范围。 - 使用
--json配合--jq获取结构化输出,而不是解析面向用户的表格。 - 在自动化中避免交互式提示。只有在检查命令帮助并确认操作安全后,才使用
--body-file、--title、--label、--assignee、--confirm或--yes等标志。 - 将破坏性操作视为高风险:删除、关闭、合并、归档、删除发布、更新密钥、取消工作流和更改权限都需要额外验证。
初步检查
使用 gh 前,请先检查基本信息:
gh --version
gh auth status
git remote -v
gh repo view --json nameWithOwner,defaultBranchRef,url
有用的上下文命令:
gh status
gh repo view --web
gh browse --no-browser
gh config list
对于 GitHub Enterprise 或非当前仓库,请使用 gh help 中记录的相应主机名和仓库标志。
常见工作流
仓库
gh repo view OWNER/REPO
gh repo clone OWNER/REPO
gh repo fork OWNER/REPO --clone=false
gh repo sync OWNER/REPO --branch BRANCH
gh repo list OWNER --limit 100 --json name,visibility,url
议题
gh issue list --state open --limit 50
gh issue view NUMBER --comments
gh issue create --title "Title" --body-file body.md
gh issue comment NUMBER --body-file comment.md
gh issue edit NUMBER --add-label label --add-assignee @me
拉取请求
gh pr status
gh pr list --state open --limit 50
gh pr view NUMBER --comments --files
gh pr diff NUMBER
gh pr checkout NUMBER
gh pr create --fill
gh pr review NUMBER --comment --body-file review.md
gh pr checks NUMBER --watch
创建或更新 PR 前,请使用 git status --short、git branch --show-current 和 git log --oneline --decorate -n 10 检查本地 Git 状态。
Actions 和工作流
gh run list --limit 20
gh run view RUN_ID --log
gh run watch RUN_ID
gh workflow list
gh workflow run WORKFLOW --ref BRANCH
只有在确认目标分支、工作流名称和所需输入后,才能使用工作流调度命令。
发布
gh release list
gh release view TAG
gh release create TAG --notes-file notes.md
gh release upload TAG path/to/asset
发布或编辑发布内容前,请确认标签、生成的说明和资源。
GitHub API
当 gh 没有对应的专用命令,或任务需要直接调用 GraphQL 或 REST 端点时,请使用 gh api。
gh api repos/OWNER/REPO
gh api graphql -f query='query { viewer { login } }'
gh api --paginate repos/OWNER/REPO/issues
筛选时优先使用 --jq;只有当端点可能返回多页结果时,才使用 --paginate。
输出处理
-
对于脚本,优先使用稳定的机器可读输出:
gh pr view NUMBER --json title,author,state,mergeable --jq '{title, author: .author.login, state, mergeable}' -
对于 Markdown 正文,请将内容写入临时文件或现有文件,并传入
--body-file/--notes-file。长文本应避免复杂的 shell 引号处理。 -
如果输出可能包含密钥、令牌、私有 URL 或用户数据,请进行概述,而不是原样粘贴。
身份验证和权限
使用 gh auth status 确认当前账户和主机。如果命令因权限范围不足而失败,请检查错误,然后查阅特定权限范围的官方帮助。常见解决方法包括在交互使用时运行 gh auth refresh,或在自动化中设置 GH_TOKEN。
除非任务明确要求且输出不会暴露,否则切勿通过 gh auth token 打印令牌。
不要使用 gh 的情况
- 对于提交历史、blame、分支操作、暂存、变基和本地差异,请使用本地
git。 - 对于本地代码理解,请直接读取文件或搜索仓库。
- 只有在任务需要仅限 UI 的功能、视觉检查或
gh不支持的身份验证流程时,才使用浏览器。