背景
最近有小伙伴们向博主提问,在一个仓库里,如何限制开发人员的CI/CD的权限?我大致理解这种场景的,在一个仓库了,大家都是开发者,但对于test分支的流水线只能开发组的小组长才能运行,release分支只有团队负责人才能运行,这种权限分的很细的业务场景经常存在于大公司了。大家各司其职,权责分明。但问题是GitLab并没有提供这样一种功能,项目中的一些开发不可以使用CI/CD,另外一些人可以使用部分CI/CD权限,还有一些人可以使用全部的CI/CD功能。GitLab 并没有一个这样的配置页面,让你去配置人员,角色,CI/CD权限。但这并不代表GitLab CI/CD 无法实现这样的功能,要实现这样的业务场景还不止一种方式。下面我就给大家介绍三种方式来实现控制开发人员的CI/CD功能权限。
其实在解决这个问题之前,我们应该先整理我们所知道的,所能使用的资料。
比如,我们可以拿到GitLab CI/CD的所有预设变量,包括提交人,那能不能从提交人上入手?
比如GitLab的仓库有Developer
, Maintainer
, Ower
和 Reporter
,而每个角色都可以设置代码权限,分支和包含分支的权限,能否将一些分支设置为保护分支,