SuperAPI AI 工具集

mastering-github-cli

部署与运维

查看项目

更新于 10-16 06:38

技能介绍

用途

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 移动端应用。