当前位置: 首页 > news >正文

如何创建并使用极狐GitLab 受保护标签?

极狐GitLab 是 GitLab 在中国的发行版,关于中文参考文档和资料有:

  • 极狐GitLab 中文文档
  • 极狐GitLab 中文论坛
  • 极狐GitLab 官网

受保护的标签 (BASIC ALL)

受保护的标签:

  • 允许控制谁有权创建标签。
  • 一旦创建,防止意外更新或删除。

每个规则都允许您匹配:

  • 一个单独的标签名称。
  • 通配符一次控制多个标签。

此功能由受保护的分支演变而来。

谁可以修改受保护的标签

默认情况下:

  • 要创建标签,您必须具有维护者角色。
  • 没有人可以更新或删除标签。

配置受保护的标签

先决条件:

  • 您必须至少具有该项目的维护者角色。

1.在左侧边栏中,选择 搜索或转到 并找到您的项目。

2.选择 设置 > 仓库

3.展开 受保护的标签

4.要保护单个标签,请选择 标签,然后从下拉列表中选择您的标签。

5.保护名称与字符串匹配的所有标签:

1.选择 标签
2.输入用于标签匹配的字符串。支持通配符 (*)。
3.选择 创建通配符

6.在 允许创建 中,选择可以创建受保护标签的用户或角色。
NOTE:在专业版和旗舰版中,您还可以添加群组或个人用户到允许创建。

7.选择 保护

受保护的标签(或通配符)显示在 受保护的标签 列表中。

添加群组到受保护标签

要设置群组或子群组成员以被允许创建受保护标签:

1.在左侧导航栏,选择 搜索或转到 并找到您的项目。

2.选择 设置 > 仓库

3.展开 受保护的标签

4.将群组添加到如下字段中:

# Allow group members to create protected tags
Allowed to create: @group-x
群组的继承和资格

%%{init: { "fontFamily": "GitLab Sans" }}%%
graph TD
accTitle: Diagram of group inheritance for protected tags
accDescr: If a project is shared with a group, the group members inherit permissions for protected tags.
A[Parent group X] -->|owns| B[Project A]
A -->|contains| C[Subgroup Y]
B -->|shared with| C
C -->|members inherit permissions| B

在此示例中:

父群组 Xgroup-x)拥有项目 A

父群组 X还包含一个子群组子群组 Ygroup-x/subgroup-y)。

项目 A子群组 Y共享。

符合受保护标签权限条件的群组如下:

项目 A父群组 X子群组 Y,因为项目 A子群组 Y 共享。

与群组共享项目以赋予(其)受保护标签权限。

您可以将项目与一个组或子组共享,这样这些组的成员就有资格获得受保护标签的权限。

%%{init: { "fontFamily": "GitLab Sans" }}%%
graph LR
accTitle: Diagram of project sharing for protected tag permissions
accDescr: Sharing a project with a group affects whether their members can have protected tag permissions.
A[Parent group X] -->|owns| B[Project A]
A -->|also contains| C[Subgroup Y]
C -.->D{Share Project Awith Subgroup Y?} -.->|yes| E[Members of Subgroup Ycan have protectedtag permissions]
D{Share Project Awith Subgroup Y?} -.->|no| F[Members of Subgroup Ycannot have protectedtag permissions]
E -.->|Add Subgroup Y to protected tag settings| I[Subgroup Y memberscan create tags] -.-> B
F -.-> |Add Subgroup Y to protected tag settings| J[Settings will nottake effect] -.-> B

要为让 子群组 Y 的成员能够访问 项目 A,您必须将项目共享到子群组。直接讲子群组条件到受保护标签中是不高效的而且无法适用于子群组的成员。

NOTE:对于具有受保护标签权限的群组,项目必须被直接共享到群组中。从父群组继承的项目成员关系不足以获得受保护标签权限。

受保护的标签通配符

您可以指定一个保护标签通配符,它会保护所有与通配符匹配的标签。例如:

受保护的标签通配符匹配标签
v*v1.0.0, version-9.1
*-deploymarch-deploy, 1.0-deploy
*gitlab*gitlab, gitlab/v1
*v1.0.1rc2, accidental-tag

两个不同的通配符可能匹配同一个标签。 例如,*-stableproduction-* 都会匹配一个 production-stable 标签。

在这种情况下,如果这些受保护标签中的任何具有类似 允许创建 的设置,那么 production-stable 也会继承此设置。

如果单击受保护标签的名称,系统会显示所有匹配标签的列表:
在这里插入图片描述

防止创建与分支同名的标签

同名的标签和分支可以包含不同的提交。如果您的标签和分支使用相同的名称,则运行 git checkout 命令的用户可能会检查标签 qa,而不是检查分支 qa

为了防止这个问题:

1.确定您不想用作标签的分支名称。

2.如配置受保护的标签中所述,创建受保护的标签:

  • 名称 中,请提供一个名称,例如 stable。您还可以创建通配符,例* 如 stable-* 来匹配多个名称,例如 stable-v1stable-v2
  • 允许创建 中,选择 No one
    3.选择 保护

用户仍然可以使用受保护的名称创建分支,但不能创建标签。

允许部署密钥创建受保护标签

  • 引入于极狐GitLab 15.11。

您可以通过部署密钥来创建受保护标签。

先决条件:

  • 必须为您的项目启用部署密钥。当在项目中创建部署密钥时,就会默认启用。然而,必须要授权公共部署密钥能够访问您的项目。
  • 部署密钥必须具有您项目的写权限。
  • 部署密钥的所有者必须至少具有项目读取权限。
  • 部署密钥的所有者必须也是项目成员。

要想允许部署密钥来创建受保护标签:

1.在左侧导航栏,选择 搜索或转到 并找到您的项目。
2.选择 设置 > 仓库
3.展开 受保护标签
4.从 标签 下拉列表中选择您想要保护的标签。
5.从 允许创建 下拉列表中选择部署密钥。
6.选择 保护

在受保护标签上运行流水线

创建受保护标签的权限定义了用户是否可以:

  • 继承并运行 CI/CD 流水线。
  • 执行与这些标签关联的任务。

这些权限能够确保只有授权用户可以为受保护标签触发和管理流水线。

删除受保护的标签

您可以使用 API 或用户界面手动删除受保护的标签。
先决条件:

  • 您必须在项目中至少拥有维护者角色。

操作步骤:

1.在左侧边栏中,选择 搜索或转到 并找到您的项目。
2.选择 代码 > 标签
3.在您要删除的标签旁边,选择 删除 ({remove})
4.在确认对话框中,输入标签名称并选择 删除受保护的标签

只能使用极狐GitLab 从 UI 或 API 删除受保护的标签。这些保护措施可防止您通过本地 Git 命令或第三方 Git 客户端意外删除标签。

相关文章:

  • iPhone闹钟无法识别调休致用户迟到,苹果客服称会记录反馈
  • 在uni-app中使用Painter生成小程序海报
  • 简单分析自动驾驶发展现状与挑战
  • 无人船 | 图解基于LQR控制的路径跟踪算法(以全驱动无人艇WAMV为例)
  • 【硬件系统架构】哈佛架构
  • Wireshark快速入门--对启动的后端程序进行抓包
  • JVM 生产环境问题定位与解决实战(八):实战篇——正则表达式回溯引发的CPU 100%
  • 【备份】杂谈
  • mybatis的xml ${item}总是更新失败
  • 【网络原理】TCP提升效率机制(三):延时应答和捎带应答
  • el-transfer穿梭框数据量过大的解决方案
  • 浏览器插件,提示:此扩展程序未遵循 Chrome 扩展程序的最佳实践,因此已无法再使用
  • 非标机械设备的动画制作
  • 如何通过Google Chrome增强网页内容的安全性
  • prompt提示词编写技巧
  • 【Pandas】pandas DataFrame rmod
  • Eureka 深度解析:从原理到部署的全场景实践
  • Spring生命周期
  • SNMP协议之详解(Detailed Explanation of SNMP Protocol)
  • 人工智能-深度学习之多层感知器
  • 深入贯彻中央八项规定精神学习教育中央指导组培训会议召开
  • “上报集团文化助力区域高质量发展赋能平台”揭牌
  • BNEF:亚洲、中东和非洲是电力基础设施投资的最大机会所在
  • 找化学的答案,解人类的命题:巴斯夫的“变革者”成长之道
  • 五万吨级半潜船在沪完成装备装载
  • 俄罗斯称已收复库尔斯克州,普京发表讲话