Gitlab 阻止从功能到 master 的合并请求

kpa*_*a23 2 gitlab

有没有办法阻止从“feature/*”分支创建/批准合并请求到主分支?我只需要允许来自“release/*”“hotfix/*”分支的合并请求。

通过 GUI 创建 MergeRequest 时,默认目标分支是 master。因此,执行此操作时的人为错误可能会破坏工作流程并将未经测试\未构建的功能合并到主版本中。

我们当前的工作流程是在“feature/*”分支中编码新功能。将多个功能合并到新的“release/*”分支和 CI 中,构建并测试此版本。测试后,此版本将进入 prod 服务器并进入master

sor*_*ram 6

由于 GitLab 权限是基于角色的,因此无法为每个分支设置权限(除了将分支设置为 protected Settings / Repository / Protected Branches,它控制可以合并而不是哪个分支可以合并)。但是,您可以执行以下操作:

  1. 在你的 GitLab CICD 中(如果你还没有设置它,我强烈推荐,它是一个方便的工具)设置一个始终运行的检查以确定哪个分支正在尝试合并($CI_COMMIT_REF_NAME 是你想要的,查看全部GitLab 默认环境变量(此处),如果分支名称与“feature/*”匹配,则管道失败
  2. Settings / General / Merge Requests,下Merge Checks,勾选该选项Pipelines must succeed

现在,如果有人尝试从功能分支创建合并请求,管道将失败,并且不允许任何人批准该合并请求。