{{< details >}}

  • Tier: 基础版, 专业版, 旗舰版
  • Offering: JihuLab.com, 私有化部署

{{< /details >}}

{{< history >}}

  • 在极狐GitLab 16.10 中,更改为在成员页面的成员选项卡中显示被邀请的群组成员,使用名为 webui_members_inherited_users功能标志。默认禁用。
  • 在极狐GitLab 17.0 中,功能标志 webui_members_inherited_users 在 JihuLab.com 和私有化部署上启用。
  • 在极狐GitLab 17.4 中,功能标志 webui_members_inherited_users 北移除。默认显示被邀请的群组成员。

{{< /history >}}

你可以通过邀请共享:

  • 一个项目与一个群组。
  • 一个群组与另一个群组。

共享项目

当你希望一个群组可以访问你的项目时,你可以邀请该群组加入项目。该群组的直接和继承成员可以访问项目,该项目成为一个共享项目

在这种情况下,继承成员是指从父群组继承到受邀群组的成员。只有被邀请的群组成员可以访问共享项目。如果你想让你邀请的群组的子群组成员访问项目,你必须邀请该子群组。

下表概述了可以访问共享项目的群组成员。

群组成员来源 访问共享项目
共享群组的直接成员 {{< icon name=”check-circle” >}} 是
共享群组的继承成员 {{< icon name=”check-circle” >}} 是
子群组的直接成员,但不是共享群组的成员 {{< icon name=”dotted-circle” >}} 否
子群组的继承成员,但不是共享群组的成员 {{< icon name=”dotted-circle” >}} 否

你邀请的群组的可见性级别必须至少与项目一样严格。例如,你可以邀请:

  • 一个私有群组到一个私有项目。
  • 一个私有群组到一个内部项目。
  • 一个私有群组到一个公共项目。
  • 一个内部群组到一个内部项目。
  • 一个内部群组到一个公共项目。
  • 一个公共群组到一个公共项目。

如果项目的顶级群组不允许项目在层次结构之外共享,受邀群组或子群组必须位于项目的命名空间中。

成员访问和角色

当你邀请群组加入项目时,以下成员将获得项目访问权限:

  • 直接群组成员。
  • 继承群组成员。
  • 与受邀群组共享的其他群组成员

每个成员的访问权限取决于:

  • 他们在群组中的角色。
  • 你邀请群组时选择的最大角色。

受邀成员保留这两个角色中较低的一个。例如,如果某个成员在他们的群组中有访客角色,而你将他们的群组添加到一个最大角色为维护者的项目中,他们在项目中保留访客角色。

此外:

  • 在群组页面上,项目列在共享项目选项卡上。
  • 在项目的成员页面上,群组列在群组选项卡上。此列表包括公共和私有群组。
  • 在项目的成员页面上,受邀群组的成员列在成员选项卡上。
  • 在使用配额页面上,个人资料旁带有项目邀请徽章的成员计入共享项目顶级群组的计费成员。

在极狐GitLab 16.11 及更高版本中,受邀群组的名称和成员来源在成员群组选项卡上是隐藏的,除非以下情况之一适用:

  • 受邀群组是公开的。
  • 当前用户是受邀群组的成员。
  • 当前用户是当前群组的所有者或当前项目的维护者/所有者。

{{< alert type=”note” >}}

受邀群组的名称和成员来源对没有访问权限的成员是隐藏的。然而,即使项目维护者和所有者无法访问私人受邀群组,他们仍然可以看到私人受邀群组成员的来源。这种行为旨在帮助项目维护者和所有者更好地管理他们所拥有的项目的成员资格。

{{< /alert >}}

例子

在命名空间 group/subgroup01/project 中的一个项目:

  • 可以与 group/subgroup02group/subgroup01/subgroup03 共享。
  • 可以与 group_abc 共享,除非项目的顶级群组不允许项目在层次结构之外共享。

对于由 Group 1 创建的项目:

  • Group 1 的成员可以访问该项目。
  • Group 1 的所有者可以邀请 Group 2 加入项目。这样,Group 1Group 2 的成员都可以访问共享项目。

邀请群组加入项目

{{< history >}}

  • 在极狐GitLab 16.10 中,更改为在成员页面的成员选项卡中显示被邀请的群组成员,使用名为 webui_members_inherited_users功能标志。默认禁用。
  • 在极狐GitLab 17.0 中,功能标志 webui_members_inherited_users 在 JihuLab.com 和私有化部署上启用。
  • 在极狐GitLab 17.4 中,子群组和项目的直接成员访问过期日期被移除,且功能标志 webui_members_inherited_users 被移除。

{{< /history >}}

先决条件:

  • 你必须至少拥有维护者角色。
  • 不得阻止与其他群组共享项目。
  • 你必须是受邀群组或子群组的成员。

要邀请群组加入项目:

  1. 在左侧边栏中,选择搜索或前往并找到你的项目。
  2. 选择 管理 > 成员
  3. 选择 邀请群组
  4. 选择要邀请的群组列表中,选择要邀请的群组。
  5. 选择最大角色列表中,选择受邀群组成员在项目中可以拥有的角色。受邀成员获得以下角色中较低的一个:
    • 你选择的最大角色
    • 他们在群组中的现有角色

    受邀群组成员在项目中不能拥有比他们在群组中更高的角色。有关更多信息,请参见成员访问和角色

  6. 可选。选择一个访问过期日期。从该日期起,受邀群组将无法再访问项目。
  7. 选择 邀请

受邀群组显示在群组选项卡上。你还可以使用 REST API 来列出项目的受邀群组

私有群组是:

  • 对未经授权的用户隐藏。
  • 在项目设置中显示用于受保护的分支、受保护的标签和受保护的环境。

成员选项卡显示:

  • 直接添加到项目的成员。
  • 项目所属群组命名空间的继承成员。

受邀群组的成员不会显示在成员选项卡上,除非启用了 webui_members_inherited_users 功能标志。

例子

一个名为 project-01 的项目具有以下直接成员:

  • 用户 A,所有者
  • 用户 B,维护者

一个名为 group-01 的群组具有以下直接成员:

  • 用户 C,所有者
  • 用户 D,维护者
  • 用户 E,报告者

group-01 被邀请到 project-01 并拥有 开发者 权限时,用户拥有以下角色:

  • 用户 A,所有者
  • 用户 B,维护者
  • 用户 C,开发者
  • 用户 D,开发者
  • 用户 E,报告者

group-01 被邀请到 project-01 并拥有 所有者 权限时,用户拥有以下角色:

  • 用户 A,所有者
  • 用户 B,维护者
  • 用户 C,所有者
  • 用户 D,维护者
  • 用户 E,报告者

查看共享项目

共享项目是一个通过 邀请群组 操作邀请你的群组成员访问其资源的项目。

要查看与你的群组共享访问权限的项目:

  1. 在左侧边栏中,选择搜索或前往并找到你的群组。
  2. 在群组页面上,选择共享项目选项卡。

显示共享项目的列表。你还可以使用 REST API 来列出群组的共享项目

防止项目与群组共享

与另一个群组共享项目会增加可以邀请更多成员加入项目的用户数量。每个(子)群组都可以是访问权限的额外来源,这可能会令人困惑并且难以控制。

要防止项目与其他群组共享:

  1. 在左侧边栏中,选择搜索或前往并找到你的群组。
  2. 选择 设置 > 通用
  3. 展开权限和群组功能部分。
  4. 选择<group_name> 中的项目不能与其他群组共享
  5. 选择 保存更改

启用此设置后:

  • 它适用于所有子群组,除非由群组所有者覆盖。
  • 已经添加到项目的群组将失去访问权限。

{{< alert type=”note” >}}

在你为群组指定用户上限之后,你无法禁用此设置。

{{< /alert >}}

共享群组

当你希望另一个群组的成员可以访问你的群组时,你可以邀请该群组加入你的群组。受邀群组的直接成员可以访问群组,该群组成为一个共享群组

只有受邀群组的直接成员可以访问共享群组,继承或子群组成员不能访问。要授予子群组成员访问权限,请直接邀请子群组。

下表概述了可以访问共享群组的群组成员:

群组成员来源 访问共享群组
被邀请群组的直接成员 {{< icon name=”check-circle” >}} 是
被邀请群组的继承成员 {{< icon name=”dotted-circle” >}} 否
子群组的成员,但不是被邀请群组的成员 {{< icon name=”dotted-circle” >}} 否

成员访问和角色

每个成员的访问权限取决于:

  • 他们在受邀群组中的角色。
  • 你邀请群组时选择的最大角色。

受邀成员保留这两个角色中较低的一个。例如,如果某个成员在他们的群组中有访客角色,而你将他们的群组邀请到另一个最大角色为维护者的群组中,他们在新群组中保留访客角色。

在你邀请群组到你的群组后:

  • 在群组的概览页面上,与此群组共享的群组列在共享群组选项卡上。
  • 在群组的成员页面上,受邀群组列在群组选项卡上。此列表包括公共和私有群组。
  • 在群组的成员页面上,受邀群组的成员列在成员选项卡上。
  • 在群组的使用配额页面上,受邀群组的直接成员在其个人资料旁具有群组邀请徽章,并计入邀请群组的计费成员。

在极狐GitLab 16.11 及更高版本中,受邀群组的名称和成员来源在成员群组选项卡上是隐藏的,除非以下情况之一适用:

  • 受邀群组是公开的。
  • 当前用户是受邀群组的成员。
  • 当前用户是当前群组的所有者或当前项目的维护者/所有者。

{{< alert type=”note” >}}

受邀群组的名称和成员来源对没有访问权限的成员是隐藏的。然而,即使群组所有者无法访问私人受邀群组,他们仍然可以看到私人受邀群组成员的来源。这种行为旨在帮助群组所有者更好地管理他们所拥有的群组的成员资格。

{{< /alert >}}

例子

用户 AGroup 1 的直接成员,并具有群组的维护者角色。Group 2 以开发者角色邀请 Group 1用户 AGroup 2 中具有开发者角色。

用户 BGroup 1 的继承成员。当 Group 1 被邀请时,该用户无法访问 Group 2

邀请群组加入群组

{{< history >}}

  • 对于子群组和项目直接成员的访问过期日期在极狐GitLab 17.4 中被移除。

{{< /history >}}

类似于邀请群组加入项目,你可以邀请群组加入另一个群组。

先决条件:

  • 你必须是受邀和邀请群组的成员。

要邀请群组加入你的群组:

  1. 在左侧边栏中,选择搜索或前往并找到你的群组。
  2. 选择 管理 > 成员
  3. 选择 邀请群组
  4. 选择要邀请的群组列表中,选择要邀请的群组。
  5. 选择最大角色列表中,选择受邀群组成员在群组中可以拥有的角色。受邀成员获得以下角色中较低的一个:
    • 你选择的最大角色
    • 他们在受邀群组中的现有角色

    受邀成员在新群组中不能拥有比他们在受邀群组中更高的角色。有关更多信息,请参见成员访问和角色

  6. 选择用户在群组中的最高角色自定义角色
  7. 可选。选择一个访问过期日期。从该日期起,受邀群组将无法再访问群组。
  8. 选择 邀请

移除受邀群组

要移除受邀群组:

  1. 在左侧边栏中,选择搜索或前往并找到你的群组。
  2. 选择 管理 > 成员
  3. 选择 群组选项卡。
  4. 在要移除的群组右侧,选择 移除群组 ({{< icon name=”remove” >}})。

当你从群组中移除受邀群组时:

  • 受邀群组的所有直接成员将不再能够访问你的群组。
  • 受邀群组的成员不再计入你群组的计费成员。

查看共享群组

共享群组是一个通过 邀请群组 操作邀请你的群组成员访问其资源的群组。

要查看与你的群组共享访问权限的群组:

  1. 在左侧边栏中,选择搜索或前往并找到你的群组。
  2. 在群组页面上,选择共享群组选项卡。

显示共享群组的列表。你还可以使用 REST API 来列出群组的共享群组

防止邀请层次结构之外的群组

你可以配置顶级群组,以便其子群组和项目无法邀请顶级群组层次结构之外的其他群组。此选项仅适用于顶级群组。

例如,在以下群组和项目层次结构中:

  • Animals > Dogs > Dog Project
  • Animals > Cats
  • Plants > Trees

如果你阻止 Animals 群组邀请层次结构之外的群组:

  • Dogs 可以邀请群组 Cats
  • Dogs 不能邀请群组 Trees
  • Dog Project 可以邀请群组 Cats
  • Dog Project 不能邀请群组 Trees

要防止邀请群组层次结构之外的群组:

  1. 在左侧边栏中,选择搜索或前往并找到你的群组。
  2. 选择 设置 > 通用
  3. 展开权限和群组功能
  4. 选择成员不能邀请 <group_name> 及其子群组之外的群组
  5. 选择 保存更改

为协作设置群组

如果你打算与群组中的外部用户合作,请考虑以下最佳实践:

  • 根据组织需求逻辑地构建你的群组和子群组。避免创建不必要的群组。
  • 如果你有大量用户需要管理,请考虑将用户组织在与组织项目的群组分开的群组中。将这些用户群组共享到他们需要访问的群组和项目中。
  • 仔细考虑你邀请到项目的群组。只邀请需要访问的群组,以防止过度共享并保持安全。
  • 当你邀请群组时:
    • 适当地设置最大角色。最好分配所需的最低权限,而不是默认设置为最高角色。
    • 受邀群组的子群组成员不会获得项目访问权限。你可能更愿意分别邀请子群组。
  • 检查属于多个具有项目访问权限的群组的用户的最大角色。为了防止意外的高权限,你可能想要更改用户的角色。
  • 定期审查群组对共享项目的访问权限,并根据需要进行更新。如果某个群组不再需要访问项目,请将其移除。