【发布时间】:2019-07-16 22:07:55
【问题描述】:
我正在 git lab 社区版中尝试管道。
据我所知,从 gitlab 来看,代码和管道位于同一个 git 存储库中。
在我的场景中,管道由 devops 团队负责,代码由开发团队负责。
在 git lab 中,如何防止开发人员更改管道? 我知道可以添加 devops 团队作为维护者来审查拉取请求,但这会在每次更改中创建 devops 团队的依赖关系。
谢谢
【问题讨论】:
我正在 git lab 社区版中尝试管道。
据我所知,从 gitlab 来看,代码和管道位于同一个 git 存储库中。
在我的场景中,管道由 devops 团队负责,代码由开发团队负责。
在 git lab 中,如何防止开发人员更改管道? 我知道可以添加 devops 团队作为维护者来审查拉取请求,但这会在每次更改中创建 devops 团队的依赖关系。
谢谢
【问题讨论】:
GitLab 并不是真正为您描述的场景而设计的。总体思路是开发人员自己负责 CI 配置。
您可以尝试使用includes feature 将大部分 CI 配置存储在单独的存储库中。
在应用程序存储库中,您将有一个 .gitlab-ci.yml 文件,该文件使用 include-project 从另一个存储库中提取 CI 配置:
include:
- project: 'my-group/my-ciproject'
ref: master
file: '/ci/.gitlab-ci-myappproject.yml'
然后在 my-group/my-ciproject 存储库中,您将拥有一个文件 .gitlab-ci-myappproject.yml,其中包含 GitLab CI 作业配置。
build:
script:
- dobuild
只有 DevOps 团队可以访问 my-group/my-ciproject 存储库,因此开发人员无法编辑 CI 配置(尽管可能会弄乱应用存储库中的 .gitlab-ci.yml` 文件)。
或者,您可以保护主分支并在合并到主分支之前批准所有更改。这样开发人员将无法在未经批准的情况下对 CI 进行更改。
【讨论】: