Rah*_*sai 4 git merge git-branch gitlab
我在 gitlab 中有一个名为的分支devops,我想将我的master分支与devops分支合并。但是,我不希望任何其他分支向devops分支发出合并请求。是否可以?
基本上,fordevops作为合并时的目标分支,只能master是源分支。是否可以进行一些定制才能做到这一点?或者通过使用任何脚本?
据我所知,没有简单的方法来告诉 GitLab 哪些分支允许合并到哪些其他分支。如果您使用 GitLab CI,那么有一种方法可以实现您想要的目标。
如果您转到 GitLab 上的项目,请转到“设置”->“常规”->“合并请求”。在那里您会发现一个复选框,上面写着“仅在管道成功时才允许合并请求”。
然后,您必须为您的项目设置管道,并且您应该能够找到这方面的教程和文档。然后有两个环境变量,名为“CI_MERGE_REQUEST_SOURCE_BRANCH_NAME”和“CI_MERGE_REQUEST_TARGET_BRANCH_NAME”。当管道在合并请求上下文中运行时,这些是由 GitLab 设置的。
以下是所有预定义变量的列表。 https://docs.gitlab.com/ce/ci/variables/#predefined-environment-variables
然后,您可以设置一个在所有其他作业之前运行的作业,但前提是存在合并请求。否则检查这些变量是没有用的!一个例子如下:
stages:
- merge-check
- build
- test
allowed-merge:
stage: merge-check
script:
- check-branches # This command is different depending on if you run cmd/bash
only:
- merge_requests
Run Code Online (Sandbox Code Playgroud)
用于检查分支名称的脚本可能看起来有所不同,具体取决于 gitlab 运行程序的执行位置。它应该检查这两个环境变量,如果分支正确则返回 0,否则返回 1。
这样做不会阻止创建合并请求,但无法接受不遵循您想要的规则的合并请求。
| 归档时间: |
|
| 查看次数: |
5399 次 |
| 最近记录: |