现在,任何在我的项目中创建分支并向其中添加.gitlab-ci.yml文件的人都可以使用runner在我的服务器上执行命令。我该如何做到这一点,只有主人或所有者可以上传CI配置文件并对其进行更改?如何限制跑步者到一个特定的分支并从变化中锁定.gitlab-ci.yml?
我在使用bash运行https://gitlab.com/gitlab-org/gitlab-ci-multi-runner。
现在,任何在我的项目中创建分支并向其中添加.gitlab-ci.yml文件的人都可以使用runner在我的服务器上执行命令。我该如何做到这一点,只有主人或所有者可以上传CI配置文件并对其进行更改?如何限制跑步者到一个特定的分支并从变化中锁定.gitlab-ci.yml?
我在使用bash运行https://gitlab.com/gitlab-org/gitlab-ci-multi-runner。
GitLab跑步者并不是真正为这种场景设计的,因此你无法做到这一点。你可以做的只是使用.gitlab-ci.yml
文件创建一个新项目,并对其进行配置,以便它能够提取原始存储库。从那里你可以做所有你想用你的仓库做的其他事情。
对不起,我不明白这是如何工作的。你能解释一下吗(推到项目A = CI那是干什么的) 像刚刚用我的ci文件做的新项目一样吗? – CausingUnderflowsEverywhere
@CausingUnderflowsEverywhere你有2个回购。回购A是您的原始回购,没有启用亚军并且没有CI文件。回购B是你的“亚军回购”,你只有CI文件。在该文件中,您可以“拉拽”回购A并执行您想要执行的所有其他操作。这样你就可以锁定CI文件并且仍然拥有所有权利。没有其他办法可以真正做到这一点。 – Fairy
嗯,每次我想要运行配置项时都需要手动推送,但它不是自动的,所以它不值一提。谢谢你的提示。如果我一个人工作,那很有可能,但事实是,正如我在问题中所说的,我正在与其他人一起工作。对我来说,根本不可行,看看是否有人推动回购A对我来说,推动回购B来激活回购A中不会出现在合并请求上的CI。我可以使用webhooks等,即使使用你的工作,我会把这个CI放在一些由webhook激活的代码中。 – CausingUnderflowsEverywhere
这使我感到非常合理的功能要求。特别是因为gitlab-ci现在支持部署。你有没有考虑过[这里](https://gitlab.com/gitlab-org/gitlab-ci-multi-runner/issues/)? – Matthew