🐙 GitHub 自动化进阶

核心能力

📦 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
  • 文件变更自动上传
  • 版本标签管理

技术栈

📚 参考资料

可下载文档 📥

在线文档