用途
Mastering GitHub CLI 是面向 GitHub CLI(gh)命令的参考与自动化技能,目标是把 GitHub 上的仓库检索、代码发现、CI/CD 监控、资源创建和工作流触发集中到命令行中完成,并配套 GitHub Actions 工作流 YAML 的编写方法。
主要能力
搜索与发现
- 按文件查找仓库:
gh search code --filename SKILL.md - 按目录查找仓库:
gh search code "path:.skilz" --json repository --jq '.[].repository.fullName' - 组合条件:
gh search code --filename Dockerfile --language python
CI/CD 监控
- 列出失败运行:
gh run list --workflow=CI --status=failure --limit 10 - 阻塞等待完成:
gh run watch 12345 --exit-status - 仅查看失败日志:
gh run view 12345 --log-failed - 查看 PR 的 CI 状态:
gh pr checks 123 --watch - 下载构建产物:
gh run download ID -n NAME
资源创建与自动化
- 创建 PR/Issue:
gh pr create --title "Feature" --body "Description" --reviewer @user、gh issue create --title "Bug" --label bug,urgent --assignee @me - Fork 并克隆:
gh repo fork owner/repo --clone - 触发并监控工作流:
gh workflow run deploy.yml -f environment=staging,随后用gh run list取回 RUN_ID 并gh run watch "$RUN_ID" --exit-status - 直接调用 API:
gh api repos/{owner}/{repo}
JSON 输出
gh pr list --json用于发现可用字段gh pr list --json number,title,author,labels选择字段- 用
--jq过滤,例如gh run list --json status --jq '.[] | select(.status=="completed")'
环境变量与配额
GH_TOKEN认证令牌,GH_REPO默认 owner/repo,GH_HOST用于 GitHub Enterprise,GH_PROMPT_DISABLED=1在 CI 中禁用交互提示- REST API:5,000/小时(按认证用户),Search API:30/分钟,Code Search:10/分钟,搜索结果上限 1,000 条,超出需按日期分区
工作流编写
提供 GitHub Actions YAML 模式:
- 基础结构:
on触发(push、pull_request、workflow_dispatch),jobs与steps - 缓存:Python/Poetry 使用
actions/cache@v4并以poetry.lock哈希为 key;Node.js 使用actions/setup-node@v4的cache: 'npm' - 矩阵构建:
strategy.matrix指定 os 与 node 版本,fail-fast: false - OIDC 认证(AWS/GCP):
permissions: id-token: write,配合aws-actions/configure-aws-credentials@v4与role-to-assume - 进阶模式涉及临时 PR 环境、Release Please 语义化版本、PR 清理、测试模式(pytest、Gradle、Jest 覆盖率)、部署状态检查、构建/部署角色分离、多栈顺序编排;另有工作流摘要(
$GITHUB_STEP_SUMMARY)、容器安全(多阶段构建、Trivy、镜像标签)、安全扫描(CodeQL、Dependabot、Checkov、tfsec)、故障排查与性能说明
脚本
find-repos-with-path.sh:查找包含指定路径的仓库,用法./scripts/find-repos-with-path.sh .skilz [owner],退出码 0 成功、1 错误wait-for-run.sh:阻塞直到工作流完成,用法./scripts/wait-for-run.sh RUN_ID [timeout],退出码 0 成功、1 失败、2 取消、3 超时batch-search.sh:通过日期分区搜索超过 1000 条结果,用法./scripts/batch-search.sh "query" START END,退出码 0 成功、1 错误
校验清单
完成任务前需确认:已认证(gh auth status);命令语法与文档一致;退出码已检查与处理;考虑速率限制(代码搜索 10/分钟,仓库搜索 30/分钟);--json 输出解析正确;产物下载到正确目录;PR/Issue 设置了正确的标签与指派人;工作流已触发并监控到完成。
不适用场景
该技能只覆盖 gh CLI 与 GitHub Actions 工作流编写,不适用于:直接用 git 命令(push、commit、pull);github.com 网页界面导航问题;GitHub Desktop;不经 gh 封装直接使用 curl/HTTP 调用;GitHub 移动端应用。