git 限制任何人在不受保护的分支上触发CI

pexxcrt2  于 2023-05-05  发布在  Git
关注(0)|答案(1)|浏览(154)

我有我的主要分支保护。我已经将gitlab-ci配置为只在main上执行。
我的要求是,没有人应该能够触发CI,除非有变化被审查和合并到主要。这工作正常,直到一些开发人员更新CI并删除only: main条件,然后只要他将其推到分支,它就会触发特定的一个或多个步骤。即使主配置项仍然强制执行这些条件,并且这些更改尚未合并。
gitlab使用哪个版本的.gitlab-ci.yml文件触发CI?从上面的场景中,我假设它是一个被推送的分支,而不是main上的分支。
如果以上是真的,有没有一种方法可以限制这种行为,并实现我想要的,那就是只触发main版本的CI,所以没有人可以在没有适当批准的情况下更改它?

stages:
  - build
  - test

build-code-job:
  stage: build
  script:
    - echo "Hello."
#  only:
#    - main

test-code-job1:
  stage: test
  script:
    - echo "Test"
  only:
    - main
06odsfpq

06odsfpq1#

实现此目的的最佳方法是在项目设置中指定自定义配置文件。例如,您可以使用像.gitlab-ci.yml@namespace/my-config-project:main这样的配置值,以便始终从特定分支上的特定项目获取CI配置。如果您愿意,它甚至可以是具有不同开发人员权限的不同项目。
只有具有维护者权限或更高权限的用户才能更改此项目设置。

相关问题