Security 什么';保持gitlab-ci.yml不变的最佳实践是什么?

Security 什么';保持gitlab-ci.yml不变的最佳实践是什么?,security,gitlab-ci,Security,Gitlab Ci,我想让我们的gitlab-ci.yml对大多数组成员保持不变。我如何有效地做到这一点 这些用户贡献代码,并且必须作为合并到开发分支的一部分部署代码,因此我不能简单地删除他们对主项目的repo的访问,也不能保护开发分支(因为这样他们就不能运行管道) 我尝试对位于另一个项目中的CI文件执行触发作业,但我开始认为我不能同时允许project YIN触发YANG,同时防止这些承包商干扰部署脚本,我将部署脚本从YIN重新定位到YANG,希望将其锁定 我怀疑,为了将commit合并到Yin项目中并使其触发Y

我想让我们的gitlab-ci.yml对大多数组成员保持不变。我如何有效地做到这一点

这些用户贡献代码,并且必须作为合并到开发分支的一部分部署代码,因此我不能简单地删除他们对主项目的repo的访问,也不能保护开发分支(因为这样他们就不能运行管道)

我尝试对位于另一个项目中的CI文件执行触发作业,但我开始认为我不能同时允许project YIN触发YANG,同时防止这些承包商干扰部署脚本,我将部署脚本从YIN重新定位到YANG,希望将其锁定

  • 我怀疑,为了将commit合并到Yin项目中并使其触发Yang中的部署,用户必须持有Yang或更高版本的开发人员访问权限。。。这意味着他们也可以向Yang提交任何包含他们将触发的gitlab-ci.yml文件的分支。是吗
  • (我既不能惩罚他们,也不能解雇他们。一半的挑战是语言问题,另一半是缺乏不接触不属于你的东西的经验)


    谢谢你抽出时间。新的trigger:syntax似乎比旧的curl-The-api-URL-and-pray技巧工作得更好(阅读:至少是这样)。如果这是可用的,它仍然是理想的,但真正的目标是一个不可变的gitlab-ci.yml,因此任何成功的方法都是很好的。

    使用您想要的语言运行测试,与
    cat./gitlab ci
    相比,预期您想要保留的内容,因此现在如果gitlab ci上的一个空格发生变化,测试未通过,因此没有任何内容进入下一步。这可能非常基本,但可以避免错误,但1)将校验和放入gitlab ci将改变gitlab ci,这将使它永远无法通过自己的签名检查。2)如果他们太忙而无法进行代码复查,他们可以删除或更改校验和,并且该校验将被禁用。