{{< details >}}

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

{{< /details >}}

极狐GitLab 使具有管理员访问权限的用户能够在分支、项目、代码片段、群组等上实施特定控制。

先决条件:

  • 您必须是管理员。

要访问可见性和访问控制选项:

  1. 在左侧边栏底部,选择 管理员
  2. 选择 设置 > 常规
  3. 展开 可见性和访问控制

定义哪些角色可以创建项目

您可以为您的实例添加项目创建保护。这些保护定义了哪些角色可以 向群组添加项目。要更改哪些角色有权限创建项目:

先决条件:

  • 您必须是管理员。
  1. 在左侧边栏底部,选择 管理员
  2. 选择 设置 > 常规
  3. 展开 可见性和访问控制
  4. 对于 创建项目所需的默认最低角色,选择所需的角色:
    • 无人。
    • 管理员。
    • 拥有者。
    • 维护者。
    • 开发者。
  5. 选择 保存更改

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

如果您选择 管理员 并且 管理员模式 已打开,则管理员必须进入管理员模式才能创建新项目。

{{< /alert >}}

限制项目删除权限为管理员

{{< details >}}

  • Tier: Premium, Ultimate
  • Offering: 极狐GitLab私有化部署

{{< /details >}}

{{< history >}}

  • 在极狐GitLab 15.1 中,用户界面发生了更改。

{{< /history >}}

先决条件:

  • 您必须是管理员,或者在项目中拥有 拥有者 角色。

要仅限管理员删除项目:

  1. 在左侧边栏底部,选择 管理员
  2. 选择 设置 > 常规
  3. 展开 可见性和访问控制
  4. 滚动到:
    • (GitLab 15.1 及更高版本) 允许删除项目,选择 管理员
    • (GitLab 15.0 及更早版本) 默认项目删除保护,选择 只有管理员可以删除项目
  5. 选择 保存更改

要禁用限制:

  1. 选择 拥有者和管理员
  2. 选择 保存更改

删除保护

{{< details >}}

  • Tier: Premium, Ultimate
  • Offering: 极狐GitLab私有化部署

{{< /details >}}

{{< history >}}

  • 在极狐GitLab 15.1 中,从默认延迟项目删除进行了重命名。
  • 在极狐GitLab 15.1 中,在个人命名空间中为项目启用。
  • 在极狐GitLab 15.3 中,在个人命名空间中为项目禁用。
  • 在极狐GitLab 15.11 中,移除了立即删除选项,使用名为 always_perform_delayed_deletion功能标志。默认禁用。
  • 在极狐GitLab 16.0 中,默认启用延迟删除并在 JihuLab.com 和私有化部署上移除了立即删除选项。

{{< /history >}}

这些保护措施有助于防止您的实例上的群组和项目被意外删除。

保留期

{{< history >}}

  • 在极狐GitLab 15.1 中发生变更。

{{< /history >}}

在您定义的保留期内,群组和项目仍然可恢复。默认情况下,这是 7 天,但您可以更改它。如果您将保留期设置为 0 天,极狐GitLab 会立即删除已删除的群组和项目。您无法恢复它们。

在 GitLab 15.1 及更高版本中,保留期必须在 190 天之间。如果在 15.1 更新之前您将保留期设置为 0 天,则下一次您更改任何应用程序设置时,极狐GitLab 将:

  • 将保留期更改为 1 天。
  • 禁用删除保护。

延迟项目删除

{{< history >}}

  • 在极狐GitLab 15.1 中,用户界面发生了变更。
  • 在极狐GitLab 16.0 中,默认启用延迟删除并在 JihuLab.com 和私有化部署上移除了立即删除选项。

{{< /history >}}

先决条件:

  • 您必须是管理员。
  • 您必须为群组启用延迟项目删除,然后才能为项目启用它。删除保护仅适用于项目。
  • 禁用时,GitLab 15.1 及更高版本会强制执行此延迟删除设置,您无法覆盖它。

要配置延迟项目删除:

{{< tabs >}}

{{< tab title=”GitLab 16.0 及更高版本” >}}

  1. 在左侧边栏底部,选择 管理员
  2. 选择 设置 > 常规
  3. 展开 可见性和访问控制
  4. 滚动到 删除保护 并将保留期设置为 190 天之间的值。
  5. 选择 保存更改

{{< /tab >}}

{{< tab title=”GitLab 15.11 及更早版本” >}}

  1. 在左侧边栏底部,选择 管理员
  2. 选择 设置 > 常规
  3. 展开 可见性和访问控制
  4. 滚动到:
    • 在 GitLab 15.11 中启用 always_perform_delayed_deletion 功能标志:删除保护 并将保留期设置为 190 天之间的值。
    • 在 GitLab 15.1 到 15.10 中:删除保护 并选择 保留已删除的群组和项目,然后设置保留期。
    • 在 GitLab 15.0 及更早版本中:默认延迟项目保护 并选择 为新创建的群组默认启用延迟项目删除,然后设置保留期。
  5. 选择 保存更改

{{< /tab >}}

{{< /tabs >}}

延迟群组删除

{{< history >}}

  • 在极狐GitLab 15.1 中,用户界面发生了变更。
  • 在极狐GitLab 16.0 中,对企业版进行了默认行为的修改。

{{< /history >}}

如果保留期为 1 天或更长时间,群组仍然可恢复。

在 GitLab 16.0 及更高版本中,保留已删除 选项被移除,延迟群组删除成为默认行为。

要在 GitLab 15 中启用延迟群组删除:

  1. 仅在 GitLab 15.11 中:启用 always_perform_delayed_deletion 功能标志。
  2. 在左侧边栏底部,选择 管理员
  3. 选择 设置 > 常规
  4. 展开 可见性和访问控制
  5. 对于 删除保护,选择 保留已删除
  6. 选择 保存更改

覆盖默认设置并立即删除

要覆盖延迟并立即删除标记为删除的项目:

  1. 恢复项目
  2. 管理项目页面 所述删除项目。

配置项目可见性默认值

要设置新项目的默认 可见性级别

先决条件:

  • 您必须是管理员。
  1. 在左侧边栏底部,选择 管理员
  2. 选择 设置 > 常规
  3. 展开 可见性和访问控制
  4. 选择所需的默认项目可见性:
    • 私有 - 需要明确授予每个用户项目访问权限。如果该项目属于群组,则授予群组成员访问权限。
    • 内部 - 任何经过身份验证的用户,除外部用户外,都可以访问该项目。
    • 公开 - 任何用户无需身份验证即可访问该项目。
  5. 选择 保存更改

配置代码片段可见性默认值

要设置新 代码片段 的默认可见性级别:

先决条件:

  • 您必须是管理员。
  1. 在左侧边栏底部,选择 管理员
  2. 选择 设置 > 常规
  3. 展开 可见性和访问控制
  4. 对于 默认代码片段可见性,选择您希望的可见性级别:
    • 私有
    • 内部。此设置在 JihuLab.com 上的新项目、群组和代码片段中被禁用。使用 内部 可见性设置的现有代码片段保留此设置。
    • 公开
  5. 选择 保存更改

配置群组可见性默认值

要设置新群组的默认可见性级别:

先决条件:

  • 您必须是管理员。
  1. 在左侧边栏底部,选择 管理员
  2. 选择 设置 > 常规
  3. 展开 可见性和访问控制
  4. 对于 默认群组可见性,选择您希望的可见性级别:
    • 私有 - 只有成员可以查看群组及其项目。
    • 内部 - 任何经过身份验证的用户,除外部用户外,都可以查看群组及任何内部项目。
    • 公开 - 查看群组及任何公共项目不需要身份验证。
  5. 选择 保存更改

有关群组可见性的更多详细信息,请参阅 群组可见性

限制可见性级别

{{< history >}}

  • 在极狐GitLab 16.3 中进行了更改以组织限制默认项目和群组的可见性,使用名为 prevent_visibility_restriction功能标志。默认禁用。
  • 在极狐GitLab 16.4 中,prevent_visibility_restriction 默认启用。
  • 在极狐GitLab 16.7 中,prevent_visibility_restriction 被移除。

{{< /history >}}

在限制可见性级别时,考虑这些限制如何与继承其可见性的子群组和项目的权限交互。

此设置不适用于在个人命名空间下创建的群组和项目。

要限制群组、项目、代码片段和选定页面的可见性级别:

先决条件:

  • 您必须是管理员。
  1. 在左侧边栏底部,选择 管理员
  2. 选择 设置 > 常规
  3. 展开 可见性和访问控制
  4. 对于 受限可见性级别,选择要限制的可见性级别。
    • 如果您限制 公开 级别:
      • 只有管理员可以创建公开群组、项目和代码片段。
      • 用户配置文件仅通过 Web 界面对经过身份验证的用户可见。
      • 通过 GraphQL API 的用户属性:
        • 在极狐GitLab 15.1 及更高版本中不可见。
        • 在极狐GitLab 15.0 中仅对经过身份验证的用户可见。
    • 如果您限制 内部 级别:
      • 只有管理员可以创建内部群组、项目和代码片段。
    • 如果您限制 私有 级别:
      • 只有管理员可以创建私有群组、项目和代码片段。
  5. 选择 保存更改

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

您不能限制作为新项目或群组默认设置的可见性级别。相反,您不能将受限可见性级别设置为新项目或群组的默认设置。

{{< /alert >}}

配置启用的 Git 访问协议

使用极狐GitLab访问限制,您可以选择用户用于与极狐GitLab通信的协议。禁用访问协议不会阻止对服务器本身的端口访问。协议使用的端口,SSH 或 HTTP(S),仍然可访问。极狐GitLab限制适用于应用程序级别。

极狐GitLab 仅允许您选择的协议进行 Git 操作:

  • 如果您启用 SSH 和 HTTP(S),用户可以选择任一协议。
  • 如果您仅启用一种协议,项目页面仅显示允许的协议的 URL,没有选项可以更改它。

要指定实例上所有项目的启用 Git 访问协议:

先决条件:

  • 您必须是管理员。
  1. 在左侧边栏底部,选择 管理员
  2. 选择 设置 > 常规
  3. 展开 可见性和访问控制
  4. 对于 启用 Git 访问协议,选择您希望的协议:
    • SSH 和 HTTP(S)。
    • 仅 SSH。
    • 仅 HTTP(S)。
  5. 选择 保存更改

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

极狐GitLab 允许 HTTP(S) 协议用于 使用极狐GitLab CI/CD 作业令牌 执行的 Git 克隆或获取请求。这种情况发生,即使您选择 仅 SSH,因为极狐GitLab Runner 和 CI/CD 作业需要此设置。

{{< /alert >}}

自定义 HTTP(S) 的 Git 克隆 URL

您可以自定义项目 Git 克隆 URL 的 HTTP(S),这会影响在项目页面上显示给用户的克隆面板。例如,如果:

  • 您的极狐GitLab实例位于 https://example.com,则项目克隆 URL 类似于 https://example.com/foo/bar.git
  • 您希望克隆 URL 看起来像 https://git.example.com/gitlab/foo/bar.git,可以将此设置设置为 https://git.example.com/gitlab/

要在 gitlab.rb 中指定 HTTP(S) 的自定义 Git 克隆 URL,请为 gitlab_rails['gitlab_ssh_host'] 设置新值。要从极狐GitLab UI 指定新值:

先决条件:

  • 您必须是管理员。
  1. 在左侧边栏底部,选择 管理员
  2. 选择 设置 > 常规
  3. 展开 可见性和访问控制
  4. 输入 HTTP(S) 的自定义 Git 克隆 URL 的根 URL。
  5. 选择 保存更改

配置 RSA、DSA、ECDSA、ED25519、ECDSA_SK、ED25519_SK SSH 密钥的默认值

这些选项指定 SSH 密钥的 允许类型和长度

要为每种密钥类型指定限制:

  1. 在左侧边栏底部,选择 管理员
  2. 选择 设置 > 常规
  3. 展开 可见性和访问控制
  4. 转到 RSA SSH 密钥
  5. 对于每种密钥类型,您可以完全允许或阻止其使用,或者仅允许以下长度:
    • 至少 1024 位。
    • 至少 2048 位。
    • 至少 3072 位。
    • 至少 4096 位。
    • 至少 1024 位。
  6. 选择 保存更改

启用项目镜像

极狐GitLab 默认启用项目镜像。如果您禁用它, 拉取镜像推送镜像 将不再在每个仓库中工作。它们只能由管理员用户在每个项目的基础上重新启用。

要允许您的实例上的项目维护者为每个项目配置镜像:

先决条件:

  • 您必须是管理员。
  1. 在左侧边栏底部,选择 管理员
  2. 选择 设置 > 仓库
  3. 展开 仓库镜像
  4. 选择 允许项目维护者配置仓库镜像
  5. 选择 保存更改

配置全局允许的 IP 地址范围

{{< history >}}

  • 引入于极狐GitLab 15.1,使用名为 group_ip_restrictions_allow_global功能标志。默认禁用。
  • 在极狐GitLab 15.4 中 GA。group_ip_restrictions_allow_global 被移除。

{{< /history >}}

管理员可以将 IP 地址范围与 每个群组的 IP 限制 相结合。使用全局允许的 IP 地址,即使在每个群组设置了 IP 地址限制时,也可以使极狐GitLab安装的各个方面正常工作。

例如,如果极狐GitLab Pages 守护程序在 10.0.0.0/24 范围内运行,您可以将该范围指定为全局允许。极狐GitLab Pages 仍然可以从流水线中提取产物,即使群组的 IP 地址限制不包括 10.0.0.0/24 范围。

要将 IP 地址范围添加到群组的允许列表:

先决条件:

  • 您必须是管理员。
  1. 在左侧边栏底部,选择 管理员
  2. 选择 设置 > 常规
  3. 展开 可见性和访问控制
  4. 全局允许的 IP 范围 中,提供 IP 地址范围列表。此列表:
    • 对 IP 地址范围的数量没有限制。
    • 适用于 SSH 或 HTTP 授权的 IP 地址范围。您无法按授权类型拆分此列表。
  5. 选择 保存更改