受保护的分支
权限在GitLab中,基本上都是围绕着对存储库和分支拥有读写权限的想法来定义的。为了防止人们破坏历史记录或未经审查就发布代码,我们创建了受保护的分支。
概述
默认情况下,受保护的分支做四件简单的事情:
- 它可以阻止除具有Master权限的用户之外的所有人创建它(如果尚未创建)
- 它可以防止所有人推送,除了拥有主权限的用户
- 它可以防止任何人从推力到树枝
- 它可以防止任何人从删除分支开始
看到更新日志部分用于随时间变化的更改。
GitLab企业版的附加功能:
- 限制对的推送和合并访问某些用户
配置受保护分支
若要保护分支,您至少需要具有Master权限级别。注意主
分支默认受保护。
使用允许合并和允许推送设置
介绍了在GitLab 8.11中。
自从GitLab 8.11以来,我们增加了另一层分支保护,它提供了更细粒度的受保护分支管理。“开发人员可以推送”选项被“允许推送”设置所取代,该设置可以设置允许/禁止管理员和/或开发人员推送到受保护的分支。
使用“允许推送”和“允许合并”设置,您可以控制不同角色可以对受保护分支执行的操作。例如,您可以将“允许推送”设置为“无人”,将“允许合并”设置为“开发人员+管理员”每一个人为进入受保护分支的更改提交合并请求。这与工作流兼容,如GitLab工作流.
然而,有些工作流程不需要这样做,只有防止外力推动和分支移除才有用。对于这些工作流,你可以通过将“允许推送”设置为“开发人员+管理员”,允许每个有写权限的人推送到受保护的分支。
您可以在创建受保护的分支时设置“允许推送”和“允许合并”选项,或者在创建受保护的分支后,从“已受保护”区域的下拉列表中选择您想要的选项。
如果在创建受保护的分支时不选择这些选项,默认情况下它们将被设置为“master”。
通配符保护的分支
介绍了在GitLab 8.10中。
您可以指定一个通配符保护的分支,该分支将保护所有匹配通配符的分支。例如:
通配符保护分支 | 匹配的分支 |
---|---|
*稳定 |
稳定产量 ,staging-stable |
生产/ * |
生产/应用服务器 ,生产/负载平衡器 |
* gitlab * |
gitlab ,gitlab /分期 ,主/ gitlab /生产 |
受保护的分支设置(如“开发人员可以推送”)适用于所有匹配的分支。
两个不同的通配符可能匹配同一个分支。例如,*稳定
而且生产- *
两者都匹配稳定产量
分支。在这种情况下,如果任何这些受保护的分支都有一个类似“允许推送”的设置,然后稳定产量
也将继承此设置。
如果你点击一个受保护的分支的名称,你将会看到所有匹配分支的列表:
删除受保护的分支
介绍了在GitLab 9.3中。
有时,可能需要删除或清理受保护的分支。
用户提供主的权限和up可以通过GitLab的web界面手动删除受保护的分支:
删除受保护的分支只允许通过web界面,不允许通过Git。这意味着您不能意外地从命令行或Git客户端应用程序中删除受保护的分支。
在受保护的分支上运行管道
合并或推送到受保护分支的权限用于定义用户是否可以运行CI/CD管道并对与这些分支相关的作业执行操作。
看到受保护分支的安全性有关管道安全模型的详细信息。
更新日志
9.2
- 允许通过web界面删除受保护的分支gitlab-org gitlab-ce # 21393
8.11
- 允许创建不能推送到的受保护分支gitlab-org gitlab-ce !5081
8.10
- 允许开发人员在没有推送访问权限的情况下合并到受保护的分支gitlab-org gitlab-ce !4892
- 允许使用通配符指定受保护的分支gitlab-org gitlab-ce !4665