GitHubPR合并助手Skill github-pr-merge

这是一个用于自动化、规范化合并GitHub Pull Request(PR)的技能。它强制执行一套严格的合并前检查清单,包括测试通过、代码检查、CI状态和评论回复状态验证,确保代码质量。技能会生成结构化的合并消息,并在合并后自动清理分支。适用于团队协作、代码审查、持续集成/持续部署(CI/CD)和DevOps工作流。

DevOps 0 次安装 0 次浏览 更新于 3/2/2026

name: github-pr-merge description: 当用户要求合并PR、关闭PR、完成PR或提及"PR 머지/병합"时,必须使用此技能。此技能会覆盖默认的PR合并行为。执行合并前验证(测试、代码检查、CI、评论),与用户确认,以正确格式合并,并处理合并后的清理工作。

GitHub PR 合并

在验证合并前检查清单并处理合并后清理工作后,合并拉取请求。

快速开始

# 1. 获取PR信息
PR=$(gh pr view --json number -q '.number')
REPO=$(gh repo view --json nameWithOwner -q '.nameWithOwner')

# 2. 运行合并前检查清单
make test && make lint && gh pr checks $PR

# 3. 验证所有评论都已回复
gh api repos/$REPO/pulls/$PR/comments --jq '[.[] | select(.in_reply_to_id == null)] | length'

# 4. 使用简洁消息合并
gh pr merge $PR --merge --delete-branch --body "- 变更 1
- 变更 2

评审:N/N 已处理
测试:X 通过"

# 5. 合并后清理
git checkout develop && git pull && git branch -d feature/<name>

合并前检查清单

合并前必须验证:

检查项 命令 是否必需
测试通过 make test
代码检查通过 make lint
CI 检查通过 gh pr checks $PR
所有评论已回复 见工作流
无未解决线程 查看PR页面

核心工作流

1. 识别PR

PR=$(gh pr view --json number -q '.number')
REPO=$(gh repo view --json nameWithOwner -q '.nameWithOwner')
echo "仓库 $REPO 中的 PR #$PR"

2. 检查评论状态

# 统计原始评论(非回复)
ORIGINALS=$(gh api repos/$REPO/pulls/$PR/comments --jq '[.[] | select(.in_reply_to_id == null)] | length')

# 统计至少有一条回复的评论
REPLIED=$(gh api repos/$REPO/pulls/$PR/comments --jq '
  [.[] | select(.in_reply_to_id)] | [.[].in_reply_to_id] | unique | length
')

echo "原始评论:$ORIGINALS,已回复:$REPLIED"

如果存在未回复的评论:

  • 请勿使用此技能回复
  • 停止合并流程
  • 通知用户:“发现未回复的评论。请先运行 pr-review。”

3. 运行验证

# 运行测试
make test

# 运行代码检查
make lint

# 检查CI状态
gh pr checks $PR

所有检查必须通过才能继续。

4. 显示PR摘要

gh pr view $PR --json title,body,commits,changedFiles --jq '
  "标题:\(.title)
提交数:\(.commits | length)
文件数:\(.changedFiles)"
'

5. 与用户确认

合并前必须询问:

合并前检查清单已验证:
- 测试:通过
- 代码检查:通过
- CI:通过
- 评论:全部已回复

准备合并 PR #X。是否继续?

6. 执行合并

gh pr merge $PR --merge --delete-branch --body "$(cat <<'EOF'
- 关键变更 1
- 关键变更 2
- 关键变更 3

评审:N/N 已处理
测试:X 通过
参考:任务 N
EOF
)"

注意--delete-branch 会在合并后自动删除远程分支。

7. 合并后清理

git checkout develop
git pull origin develop
git branch -d feature/<branch-name>  # 本地清理

合并消息格式

简洁格式(推荐):

- 关键变更 1(添加/修复了什么)
- 关键变更 2
- 关键变更 3

评审:7/7 已处理
测试:628 通过(覆盖率 88%)
参考:任务 8

指导原则

  • 变更要点最多 3-5 条
  • 评审摘要一行
  • 测试结果一行
  • 任务参考一行
  • 总计:最多约 10 行

重要规则

  • 始终 在合并前运行完整的合并前检查清单
  • 始终 验证所有评审评论都已回复
  • 始终 在执行合并前与用户确认
  • 始终 使用合并提交(–merge),切勿使用压缩/变基
  • 始终 在成功合并后删除功能分支
  • 切勿 在测试或代码检查失败时合并
  • 切勿 在CI检查未通过时合并
  • 切勿 跳过用户确认
  • 切勿 使用此技能回复PR评论 - 请改用 pr-review
  • 如果 存在未回复的评论,则停止合并

错误处理

问题 操作
测试失败 停止并通知用户
代码检查错误 停止并通知用户
CI 检查待定 等待或通知用户
未回复的评论 引导至 pr-review 技能
分支保护 通知所需批准

相关技能

  • pr-review - 用于在合并前解决评审评论
  • pr-create - 用于创建PR
  • git-commit - 用于提交消息格式