GitLab 自动化合并请求管理工作流
该工作流实现了对GitLab项目中合并请求的全面自动化管理,能够周期性检查并处理合并请求,避免重复创建,自动添加备注,确保在CI流水线完成后智能合并,同时关闭过时的请求。这一流程极大地减少了手动管理的工作量和出错风险,提升了团队的协作效率和代码质量,适用于软件开发团队及持续集成/持续交付环境。
流程图

工作流名称
GitLab 自动化合并请求管理工作流
主要功能和亮点
该工作流实现了对 GitLab 项目中的合并请求(Merge Request,MR)的自动检测、创建、更新及关闭等全流程管理。系统能够周期性检查指定分支上的已开启合并请求,避免重复创建;自动添加自定义评论;等待CI流水线完成后智能合并;并支持关闭过时的合并请求。通过自动化操作,大幅减少手动管理合并请求的时间和出错风险。
解决的核心问题
- 避免重复创建相同分支的合并请求,确保合并请求的唯一性和有效性
- 自动添加备注信息,提高合并请求沟通效率
- 等待流水线通过后自动合并,保障代码质量
- 关闭无效或过时的合并请求,保持项目合并请求管理整洁
- 减少人工操作,提升团队协作效率
应用场景
- 软件开发团队需要自动化管理 GitLab 合并请求的情境
- 持续集成/持续交付(CI/CD)流程中自动触发合并请求管理
- 多分支、多开发人员协作项目的合并请求维护
- 自动关闭长期未处理或废弃的合并请求,保障代码库健康
主要流程步骤
- 定时触发(Schedule Trigger):周期性启动工作流,确保合并请求状态实时更新。
- 查询现有合并请求(API to Check existing merge request):通过GitLab API检查目标分支是否已有开启中的合并请求。
- 判断是否存在合并请求(Is Exists):根据查询结果决定是否创建新的合并请求。
- 创建合并请求(Create New Merge Request):无重复时创建新的合并请求,并指定源分支、目标分支及标题。
- 添加自定义备注(Add Custom Notes To Merge Request):为新建合并请求添加备注信息,方便团队成员了解详情。
- 等待流水线完成(30 secs wait to approve merge request and pipeline to finish):暂停一定时间,等待CI流水线运行结果。
- 设置合并参数(setValueForMerge):配置是否在流水线成功后自动合并及是否删除源分支。
- 自动合并请求(Merge When Pipeline Succeeds):当流水线成功后自动执行合并操作。
- 批量处理旧合并请求(Loop Over Items):遍历所有合并请求,自动关闭不再需要的合并请求(API to CLOSE existing Merge Request)。
涉及的系统或服务
- GitLab API:用于查询、创建、更新、关闭合并请求及添加备注。
- n8n 自动化平台:作为工作流自动化引擎,连接和协调各个操作节点。
适用人群或使用价值
- 软件开发团队和DevOps工程师:通过自动化合并请求管理,节省大量重复性操作时间。
- 项目经理和团队负责人:提升项目代码合并流程的规范性和可视化,减少人为错误。
- 持续集成/持续交付环境:保证代码合并与流水线状态一致,提升代码质量和交付效率。
- 多分支、多协作环境的项目:有效管理复杂的合并请求状态,保持代码库整洁有序。
此工作流是实现 GitLab 合并请求自动化管理的高效工具,适合希望提升代码审查和合并效率的各类软件团队。