--- name: github-gh-skill description: 使用 GitHub CLI(`gh`)处理认证、仓库、Issue、Pull Request、Actions、Release,以及通过 JSON/JQ 调用 API 查询数据。适用于用户提到 `gh`、GitHub CLI、终端里的 GitHub、PR、Issue、Actions、Release,或需要不打开浏览器直接获取 GitHub 数据的场景。 --- # GitHub CLI(gh)技能 ## 何时启用 用户提到:`gh`、GitHub CLI、命令行操作 GitHub、PR/Issue/Release/Actions、或需要从终端拉取 GitHub 信息时,优先按本技能执行。 ## 前置检查(一次性) 1. **检查 `gh` 是否已安装**:执行 `gh --version`。 - 若命令不存在,**自动安装最新版**:根据系统包管理器执行安装(如 `apt install gh -y`、`yum install gh -y`、`brew install gh`)。 - 安装失败再**提示用户手动安装**(参考官网 )。 2. 若需私有资源,执行 `gh auth status`;未登录则 `gh auth login`(非 CI 场景由用户完成交互)。 3. 需要脚本化检测时,运行跨平台脚本:`python scripts/check_gh.py`(或 `python3 ...`,仅需 Python 3.8+ 与标准库)。 ## 高效原则(给 Agent) - **优先机器可读**:能用 `--json` 就用;需要筛选时用 `--jq`(避免解析人类表格输出)。 - **减少交互**:批量操作用 `--yes` / `-y`;需要合并且非交互时用环境变量或文档中的标志位(见 [reference.md](reference.md))。 - **先定目标再选子命令**:issue / pr / repo / workflow / release / api —— 不要猜,缺参数时 `gh --help`。 - **API 兜底**:`gh` 子命令缺能力时用 `gh api`,路径以官方 REST 为准。 ## 模块索引(按场景跳转) | 模块 | 内容 | |------|------| | A. 认证与上下文 | `gh auth`,默认仓库 | | B. 仓库 | `gh repo clone/view/create` | | C. Issue | `gh issue list/create/view/close` | | D. PR | `gh pr list/create/view/diff/merge/checkout` | | E. Actions | `gh run list/view/watch/rerun` | | F. Release | `gh release list/create` | | G. 高级 | `gh api`,GraphQL | **详细命令与模板**见 [reference.md](reference.md)。 ## A. 认证与上下文 - 查看登录:`gh auth status` - 设置默认仓库(减少重复 `-R`):在仓库目录内 `gh repo set-default` ## B. 仓库 - 克隆:`gh repo clone owner/name` - 当前仓库信息(JSON):`gh repo view --json name,owner,url,defaultBranchRef` ## C. Issue - 列表(JSON):`gh issue list --json number,title,state,author,labels` - 创建:`gh issue create --title "..." --body "..."` ## D. Pull Request - 列表:`gh pr list --json number,title,state,headRefName` - 检出本地分支:`gh pr checkout ` - 查看差异:`gh pr diff ` ## E. GitHub Actions(workflow / run) - 运行列表:`gh run list --limit 20` - 单次运行详情 + 日志:`gh run view --log` ## F. Release 与标签 - 列表:`gh release list --limit 20` - 创建(需明确 tag 与说明):`gh release create --notes "..."` ## G. `gh api`(REST) - GET 示例:`gh api repos/{owner}/{repo}/issues --jq '.[0].title'` - 占位符:`{owner}` `{repo}` 在已关联 git remote 时常可自动解析;不确定时显式传 `-R owner/repo`。 ## 错误处理 - **401/403**:检查 `gh auth status`、token 权限(repo、workflow 等)。 - **未找到命令**:升级 `gh` 或改用 `gh api`。 - **交互阻塞**:CI/自动化中避免会打开编辑器的命令;为 `pr merge` 等加 `--merge`/`--squash`/`--rebase` 等非交互选项。 ## 附加资源 - 完整命令表与 JSON 字段提示:[reference.md](reference.md) - 环境检查脚本(模块化,中文注释;跨平台,仅标准库):[scripts/check_gh.py](scripts/check_gh.py)