GitHub 运维操作¶
管理 GitHub 仓库,重点关注社区健康、CI 可靠性和贡献者体验。
何时激活¶
- 对 issue 进行分类(分类、打标签、回复、去重)
- 管理 PR(审查状态、CI 检查、过期 PR、合并就绪状态)
- 排查 CI/CD 故障
- 准备发布版本和变更日志
- 监控 Dependabot 和安全警报
- 管理开源项目的贡献者体验
- 用户说"检查 GitHub"、"分类 issues"、"审查 PR"、"合并"、"发布"、"CI 坏了"
工具要求¶
- gh CLI 用于所有 GitHub API 操作
- 通过
gh auth login配置仓库访问权限
Issue 分类¶
按类型和优先级对每个 issue 进行分类:
类型: bug、feature-request、question、documentation、enhancement、duplicate、invalid、good-first-issue
优先级: critical(破坏性/安全)、high(重大影响)、medium(锦上添花)、low(外观性)
分类工作流¶
- 阅读 issue 的标题、正文和评论
- 检查是否与现有 issue 重复(按关键词搜索)
- 通过
gh issue edit --add-label应用适当的标签 - 对于问题:起草并发布有用的回复
- 对于需要更多信息的 bug:要求提供复现步骤
- 对于适合新手的问题:添加
good-first-issue标签 - 对于重复问题:评论并附上原始问题链接,添加
duplicate标签
# Search for potential duplicates
gh issue list --search "keyword" --state all --limit 20
# Add labels
gh issue edit <number> --add-label "bug,high-priority"
# Comment on issue
gh issue comment <number> --body "Thanks for reporting. Could you share reproduction steps?"
PR 管理¶
审查清单¶
- 检查 CI 状态:
gh pr checks <number> - 检查是否可合并:
gh pr view <number> --json mergeable - 检查 PR 的年龄和最近活动
- 标记超过 5 天未审查的 PR
- 对于社区 PR:确保包含测试并遵循项目约定
过期策略¶
- 14 天以上无活动的 issue:添加
stale标签,评论询问更新 - 7 天以上无活动的 PR:评论询问是否仍在进行
- 30 天无回复后自动关闭过期的 issue(添加
closed-stale标签)
# Find stale issues (no activity in 14+ days)
gh issue list --label "stale" --state open
# Find PRs with no recent activity
gh pr list --json number,title,updatedAt --jq '.[] | select(.updatedAt < "2026-03-01")'
CI/CD 操作¶
当 CI 失败时:
- 检查工作流运行:
gh run view <run-id> --log-failed - 找出失败的步骤
- 判断是测试不稳定还是真实失败
- 对于真实失败:找出根本原因并提出修复建议
- 对于不稳定的测试:记录模式以供将来调查
# List recent failed runs
gh run list --status failure --limit 10
# View failed run logs
gh run view <run-id> --log-failed
# Re-run a failed workflow
gh run rerun <run-id> --failed
发布管理¶
准备发布版本时:
- 检查 main 分支上所有 CI 是否通过
- 审查未发布的更改:
gh pr list --state merged --base main - 根据 PR 标题生成变更日志
- 创建发布版本:
gh release create
# List merged PRs since last release
gh pr list --state merged --base main --search "merged:>2026-03-01"
# Create a release
gh release create v1.2.0 --title "v1.2.0" --generate-notes
# Create a pre-release
gh release create v1.3.0-rc1 --prerelease --title "v1.3.0 Release Candidate 1"
安全监控¶
# Check Dependabot alerts
gh api repos/{owner}/{repo}/dependabot/alerts --jq '.[].security_advisory.summary'
# Check secret scanning alerts
gh api repos/{owner}/{repo}/secret-scanning/alerts --jq '.[].state'
# Review dependency bumps — merging is a user-authorized action (propose, never auto-merge)
gh pr list --label "dependencies" --json number,title
- 审查安全的依赖升级,并提议合并以供用户批准——绝不自动合并
- 立即标记任何 critical/high 严重级别的警报
- 至少每周检查一次新的 Dependabot 警报
质量门禁¶
完成任何 GitHub 运维任务之前:
- 所有已分类的 issue 都有适当的标签
- 没有超过 7 天未审查或未评论的 PR
- CI 故障已进行调查(而不仅仅是重新运行)
- 发布版本包含准确的变更日志
- 安全警报已确认并跟踪
本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 ev/ECC