我是蚂蚁背大象(Apache EventMesh PMC&Committer),文章对你有帮助给项目rocketmq-rust star,关注我GitHub:mxsm,文章有不正确的地方请您斧正,创建ISSUE提交PR~谢谢! Emal:mxsm@apache.com
GitHub Actions 是 GitHub 提供的一种强大而灵活的自动化工具,它允许开发者在软件开发生命周期的各个阶段构建、测试和部署代码。借助 GitHub Actions,开发者可以创建自定义的工作流来自动执行一系列任务,从而提高开发效率、减少人为错误并确保代码质量。
创建一个Github仓库
我这里以我已经创建的 rocketmq-rust为例

设置 GitHub Actions
创建 .github/workflows 文件夹

创建新的工作流文件(如 auto-merge.yml),我这里创建了三个文件:
都是和自动merge相关的。下面会具体讲解
分析上面每个文件的作用
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,这里会有一些条件下面会具体讲解

触发条件:
对于上面的这些操作大部分都可以使用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,谢谢)
以PR#740 为例子。首先当提交PR的时候会有一个对PR的评论与此同时会增加两个标签 auto merge 和 ready to review

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

对应的Action如下:

接下来就是对项目进行代码Review然后, 这里需要有两个地方需要修改
说明: 这里删除ready to review label加上approved标签是因为在automerge.yml配置里面配置了MERGE_LABELS为"approved,auto merge,!ready to review"。 更多的配置可以参照pascalgn/automerge-action@v0.16.3。

进行操作后:

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

代码已经被合并。实现了自动合并的机制
自动化工作流在现代软件开发中变得越来越重要,特别是在 CI/CD(持续集成和持续部署)过程中。自动化工作流的主要好处包括:
相关文档:
GitHub Actions 官方文档
GitHub API 文档
GitHub Actions Marketplace