核心能力
📦 Release 自动化
- 自动生成版本发布 (gh release create)
- 自动生成 CHANGELOG
- 附件自动上传 (zip、二进制文件)
- 预发布版本标记
🔍 PR 智能审查
- CI 状态检查 (gh pr checks)
- 代码冲突检测
- PR 信息完整性校验
- 自动合并策略 (squash/rebase)
⚡ CI/CD 监控
- 工作流运行状态查询 (gh run list)
- 失败日志自动提取 (gh run view --log-failed)
- 批量重试失败任务
- 构建时间趋势分析
📊 Issue 管理
- 批量标签管理
- 重复 Issue 检测
- 自动回复模板
- 里程碑跟踪
常用命令示例
Release 管理
# 创建新版本发布
gh release create v1.0.0 --title "Version 1.0.0" --notes "Release notes"
# 生成带附件的发布
gh release create v1.0.0 dist/*.zip --generate-notes
# 查看最近发布
gh release list --limit 10
PR 操作
# 检查 PR 的 CI 状态
gh pr checks 55 --repo owner/repo
# 列出最近的 PR
gh pr list --state open --limit 20
# 查看 PR 详情
gh pr view 55 --json number,title,state,mergeStateStatus
工作流监控
# 列出最近的工作流运行
gh run list --repo owner/repo --limit 10
# 查看特定运行的详情
gh run view 123456789 --repo owner/repo
# 只查看失败步骤的日志
gh run view 123456789 --repo owner/repo --log-failed
# 重试失败的运行
gh run rerun 123456789 --repo owner/repo
API 高级查询
# 获取 PR 的特定字段
gh api repos/owner/repo/pulls/55 \
--jq '.title, .state, .user.login, .mergeable'
# 列出最近的提交
gh api repos/owner/repo/commits \
--jq '.[] | "\(.sha[:7]): \(.commit.message)"' | head -10
# 获取仓库统计信息
gh api repos/owner/repo \
--jq '.stargazers_count, .forks_count, .open_issues_count'
自动化工作流
[ 代码提交 ] → [ CI 运行 ] → [ 自动检查 ]
↓
[ PR 创建 ] → [ 审查 + CI 检查 ]
↓
[ 合并到 main ] → [ 自动打标签 ] → [ 生成 Release ]
↓
[ 通知飞书群组 ]
项目应用案例
scott-portfolio 项目
- 自动部署到 GitHub Pages
- 文件变更自动上传
- 版本标签管理
技术栈
- CLI 工具: GitHub CLI (gh)
- API: GitHub REST API v3 / GraphQL API v4
- 认证: GitHub Token (classic / fine-grained)
- 数据处理: jq (JSON 处理)
📚 参考资料
可下载文档 📥
- github-skill.md - GitHub CLI 技能文档
在线文档
- GitHub CLI 官方手册 - gh 命令完整参考
- GitHub REST API 文档 - 程序化访问 GitHub
- GitHub GraphQL API - 高效数据查询
- GitHub Actions 文档 - CI/CD 工作流自动化
- jq 官方文档 - JSON 处理命令行工具