如何利用Github Action实现自动Merge PR

我是蚂蚁背大象(Apache EventMesh PMC&Committer),文章对你有帮助给项目rocketmq-rust star,关注我GitHub:mxsm,文章有不正确的地方请您斧正,创建ISSUE提交PR~谢谢! Emal:mxsm@apache.com

1. 引言

GitHub Actions 是 GitHub 提供的一种强大而灵活的自动化工具,它允许开发者在软件开发生命周期的各个阶段构建、测试和部署代码。借助 GitHub Actions,开发者可以创建自定义的工作流来自动执行一系列任务,从而提高开发效率、减少人为错误并确保代码质量。

2.准备工作

创建一个Github仓库

我这里以我已经创建的 rocketmq-rust为例

设置 GitHub Actions

创建 .github/workflows 文件夹

创建新的工作流文件(如 auto-merge.yml),我这里创建了三个文件:

都是和自动merge相关的。下面会具体讲解

3.编写自动 Merge PR 的 GitHub Actions 工作流

3.1定义工作流名称和触发条件

分析上面每个文件的作用

  • auto-comment-pr.yml

    这个文件的作用是当有贡献者提交PR的时候增加一个评论与此同时添加两个标签,具体如下图所示RP#716

    这个配置文件的触发条件就是 pull_request_target

  • auto_request_review.yml

    这个配置文件的作用就是请求相关项目的ower对PR进行代码Review。来提醒相关人员进行代码Review,例如下面个PR#657

    这个也是为下面自动merge作的准备,配置文件触发条件 pull_request_target

  • automerge.yml

    这个配置文件的作用就对已经Review好的项目进行merge,这里会有一些条件下面会具体讲解

    触发条件:

    • pull_request_target
    • pull_request_review
    • check_suite

3.2 设置工作流的权限

对于上面的这些操作大部分都可以使用Github Action的权限,也就是使用 secrets.GITHUB_TOKEN 这个Token,而我这里的代码Merge和评论使用的是私有的Token也就是 secrets.PAT 。所以你会发现上面的这些评论和操作中部分是 mxsm 这个账号部分是 github-actions 这个机器人账号。

生成Private Access Token(PAT)

这里主要的权限是跟仓库相关的,你可以把全部设置成Read and Write的权限

配置PAT

找到对应项目的设置地方,具体如下图配置PAT

到这里就完成了整个权限的配置。

三个配置文件的具体脚本参照项目:https://github.com/mxsm/rocketmq-rust 项目的对应目录下面 (如果觉得项目不错给个star,谢谢)

4. 测试相关流程

PR#740 为例子。首先当提交PR的时候会有一个对PR的评论与此同时会增加两个标签 auto merge 和 ready to review

同时会增加一个Review的请求这个是有github-actions机器人添加

对应的Action如下:

接下来就是对项目进行代码Review然后, 这里需要有两个地方需要修改

  • 对代码进行approve
  • 删除ready to review label加上approved标签

说明: 这里删除ready to review label加上approved标签是因为在automerge.yml配置里面配置了MERGE_LABELS为"approved,auto merge,!ready to review"。 更多的配置可以参照pascalgn/automerge-action@v0.16.3。

进行操作后:

提示PR已经被合并,在看一下代码界面:

代码已经被合并。实现了自动合并的机制

5. 总结

自动化工作流在现代软件开发中变得越来越重要,特别是在 CI/CD(持续集成和持续部署)过程中。自动化工作流的主要好处包括:

  • 提高开发效率:减少手动操作,让开发者专注于更高价值的任务。
  • 增强代码质量:通过自动化测试和审查流程,确保代码在合并前符合质量标准。
  • 降低人为错误:减少手动合并和部署过程中的潜在错误。
  • 加快发布周期:通过自动化部署和发布流程,加快从代码提交到发布的周期。

相关文档:

GitHub Actions 官方文档

GitHub API 文档

GitHub Actions Marketplace

相关推荐
极智-9969 小时前
GitHub 热榜项目-日榜精选(2026-02-02)| AI智能体、终端工具、视频生成等 | openclaw、99、Maestro等
人工智能·github·视频生成·终端工具·ai智能体·电子书管理·rust工具
樱花落海洋11113 小时前
GitHub DeskTop Can`t find URP项目
github
我的golang之路果然有问题14 小时前
使用 Hugo + GitHub Pages + PaperMod 主题 + Obsidian 搭建开发博客
golang·go·github·博客·个人开发·个人博客·hugo
codezzzsleep15 小时前
fuClaudeBackend:面向fuclaude的轻量后端代理 + Key 管理后台
ai·github·ai编程
kjzd12315 小时前
GitHub 热门项目趋势分析报告 (2026年2月2日)
github
LostSpeed15 小时前
git - github工程中不能包含大文件
git·github
CoderJia程序员甲16 小时前
GitHub 热榜项目 - 日榜(2026-02-02)
人工智能·ai·大模型·github·ai教程
_oP_i18 小时前
git gui设置github sshkey
git·github
mathematican18 小时前
Git本地修改导致pull失败的解决方法
github
MicrosoftReactor20 小时前
技术速递|GitHub Copilot SDK 与混合 AI 实践:README 到 PPT 的自动化转换流程
人工智能·github·copilot