gitlab - Gitlab 阻止从功能到主控的合并请求
问题描述
有没有办法阻止创建/批准从“功能/*”分支到主分支的合并请求?我只需要允许来自“release/*”和“hotfix/*”分支的合并请求。
通过 GUI 创建 MergeRequest 时,默认目标分支是 master。因此,执行此操作时的人为错误可能会破坏工作流程并将未经测试的\unbuild 功能合并到 master 中。
我们当前的工作流程是在“feature/*”分支中编写新功能。将几个特性合并到新的“release/*”分支和 CI 中,构建和测试这个版本。测试后,此版本在 prod 服务器上进入master。
解决方案
由于 GitLab 权限是基于角色的,因此无法为每个分支设置权限(除了将分支设置为 protected in Settings / Repository / Protected Branches
,它控制谁可以合并而不是哪个分支可以合并)。但是,您可以执行以下操作:
- 在您的 GitLab CICD 中(如果您还没有设置它,我强烈建议您使用它,它是一个方便的工具)设置一个始终运行的检查以确定哪个分支正在尝试合并($CI_COMMIT_REF_NAME 是您想要的,查看全部GitLab 默认环境变量(此处为),如果分支名称与“feature/*”匹配,则管道失败
- 下
Settings / General / Merge Requests
,下Merge Checks
,检查选项Pipelines must succeed
。
现在,如果有人尝试从功能分支创建合并请求,管道将失败,并且不允许任何人批准合并请求。
推荐阅读
- google-cloud-platform - 无法增加每个项目配额的数据流作业
- c# - 如何在 ContextMenu 中获取 PlacementTarget.Content?
- powershell - 将生成的价值传递给下游作业
- xaml - 更改 UWP RatingControl 的大小和间距
- xml - 使用 GetResourceText 加载 Office 功能区对象(按钮/组)时访问它们
- angularjs - 如何将值传递给指令?
- javascript - 阶梯区域谷歌图表错误的可视化
- oracle - 如何在 oracle 表单中使用带有 set_block_property 的游标?
- c# - 是否可以在 Xamarin 表单中隐式应用转换器
- bitmap - System.Drawing.Bitmap 到 Windows.Graphics.Imaging.SoftwareBitmap