子组
您可以将极狐GitLab 群组组织成子组。您可以使用子组:
- 内部和外部组织分开。因为每个子组都可以有自己的可见性级别,您可以在同一个父组下托管用于不同目的的子组。
- 组织大型项目。您可以使用子组来授予对部分源代码的不同访问权限。
- 管理人员并控制可见性。为用户所属的每个群组赋予不同的角色。
子组可以:
- 属于一个直系父组。
- 有许多子组。
- 最多可嵌套 20 层。
- 使用注册到父组的 runners:
- 为父组配置的 secret 可用于子组作业。
- 属于子组的项目中具有维护者角色的用户,可以查看注册到父组的 runner 的详细信息。
例如:
graph TD
subgraph "Parent group"
subgraph "Subgroup A"
subgraph "Subgroup A1"
G["Project E"]
end
C["Project A"]
D["Project B"]
E["Project C"]
end
subgraph "Subgroup B"
F["Project D"]
end
end
查看群组的子组
先决条件:
- 要查看私有嵌套子组,您必须是私有子组的直接成员或继承成员。
要查看群组的子组:
- 在左侧边栏中,选择 搜索或转到 并找到您的群组。
- 选择 子组和项目 选项卡。
- 要查看嵌套子组,请在层次结构列表中展开子组。
公开父组中的私有子组
在层次结构列表中,具有私有子组的公开群组,包含用于指示存在子组的所有用户的扩展选项 ()。当不是私有子组的直接或继承成员的用户选择展开 () 时,不会显示嵌套子组。
如果您希望将有关嵌套子组的存在信息保密,我们建议您仅将私有子组添加到私有父组。
创建子组
先决条件:
- 您必须具有以下角色之一:
- 至少具有组的维护者角色,以便为其创建子组。
- 具有由设置确定的角色。即使在用户的设置中管理员禁用了群组创建,这些用户也可以创建子组。
您不能使用顶级域名托管 GitLab Pages 子组网站。例如,
subgroupname.example.io
。创建子组:
- 在左侧边栏中,选择 搜索或转到 并选择要添加子组的父组。
- 在父组的概览页面的右上角,选择 新建子组。
- 选择 创建群组。
- 填写字段。查看不能用作组名的保留名称列表。
- 选择 创建群组。
更改谁可以创建子组
要创建子组,您必须至少具有该群组的维护者角色,具体取决于群组的设置。默认情况下:
要更改可以在群组上创建子组的人员:
- 作为在组中具有所有者角色的用户:
- 在左侧边栏中,选择 搜索或转到 并找到您的群组。
- 在左侧边栏中,选择 设置 > 通用。
- 展开 权限和群组功能。
- 从 允许创建子组的角色 中选择一个角色。
- 选择 保存更改。
- 作为管理员:
- 在左侧边栏中,选择 搜索或转到。
- 选择 管理中心。
- 在左侧边栏中,选择 概览 > 群组。
- 在群组的行中选择 编辑。
- 从 允许创建子组 中选择一个角色。
- 选择 保存更改。
子组成员
将成员添加到群组时,该成员也会添加到所有子组。用户的权限继承自群组的父级。
子组成员可以:
- 成为子组的直接成员。
- 从子组的父组继承子组的成员资格。
- 成为与子组的顶级组共享的群组的成员。
flowchart RL
subgraph Group A
A(Direct member)
B{{Shared member}}
subgraph Subgroup A
H(1. Direct member)
C{{2. Inherited member}}
D{{Inherited member}}
E{{3. Shared member}}
end
A-->|Direct membership of Group A\nInherited membership of Subgroup A|C
end
subgraph Group C
G(Direct member)
end
subgraph Group B
F(Direct member)
end
F-->|Group B\nshared with\nGroup A|B
B-->|Inherited membership of Subgroup A|D
G-->|Group C shared with Subgroup A|E
成员的群组权限只能通过以下方式更改:
- 在群组中具有所有者角色的用户。
- 更改成员添加到的群组的配置。
确定成员继承
查看成员是否继承了父组的权限:
- 在左侧边栏中,选择 搜索或转到 并找到该群组。
- 选择 管理 > 成员。
示例子组 Four 的成员列表:
在上面的屏幕截图中:
- 五名成员可以访问群组 Four。
- 用户 0 在群组 Four 上具有报告者角色,并从群组 One 继承了权限:
- 用户 0 是群组 One 的直接成员。
- 群组 One 在层次结构中高于组 Four。
- 用户 1 在群组 Four 上具有开发人员角色,并从群组 Two 继承了权限:
- 用户 0 是群组 Two 的直接成员,该群组是群组 One 的子组。
- 群组 One / Two 在层次结构中高于群组 Four。
- 用户 2 在群组 Four 上具有开发人员角色,并从群组 Three 继承了权限:
- 用户 0 是群组 Three 的直接成员,该群组是群组 Two 的子组。群组 Two 是群组 One 的子组。
- 群组 One / Two / Three 在层次结构中高于群组 Four。
- 用户 3 是群组 Four 的直接成员。这意味着其直接从群组 Four 获得维护者角色。
- 管理员在群组 Four 上具有所有者角色,并且是所有子组的成员。因此,与用户 3 一样,源 列表示其是直接成员。
成员可以按继承或直接成员资格进行过滤。
覆盖上级群组成员资格
在子组中具有所有者角色的用户可以向其中添加成员。
您不能为用户分配的子组角色低于他们在上级组中的角色。要覆盖用户在上级组中的角色,请将用户再次添加到具有更高角色的子组中。例如:
- 如果将用户 1 添加到具有开发人员角色的组 Two 中,将在组 Two 的每个子组中继承该角色。
- 要为用户 1 赋予组 Four 的维护者角色(在 One / Two / Three 下),请将其再次添加到组 Four 并具有维护者角色。
- 如果用户 1 从组 Four 中删除,角色将回退到在组 Two 上的角色,再次在组 Four 中具有开发人员角色。
提及子组
在议题、提交和合并请求中提及子组 (@<subgroup_name>
) 会通知该群组的所有成员。子组的继承成员不会通过提及来通知。提及的工作方式与项目和群组相同,您可以选择要通知的人员组。