{{< details >}}

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

{{< /details >}}

极狐GitLab,像大多数大型应用程序一样,在某些功能上施加限制以维持最低的性能质量。允许某些功能无限制可能会影响安全性、性能、数据,甚至可能耗尽应用程序的分配资源。

实例配置

在实例配置页面,您可以找到当前极狐GitLab 实例中使用的某些设置的信息。

根据您配置的限制,您可以看到:

  • SSH 主机密钥信息
  • CI/CD 限制
  • 极狐GitLab Pages 限制
  • 软件包注册表限制
  • 速率限制
  • 大小限制

因为此页面对所有人可见,未认证用户只能看到与其相关的信息。

要访问实例配置页面:

  1. 在左侧边栏中,选择 帮助 ({{< icon name=”question-o” >}}) > 帮助
  2. 在帮助页面上,选择 检查当前实例配置

直接 URL 是 <gitlab_url>/help/instance_configuration。对于 JihuLab.com,您可以访问 https://jihulab.com/help/instance_configuration

速率限制

速率限制可用于提高极狐GitLab 的安全性和耐久性。

阅读更多关于配置速率限制

议题创建

此设置限制到议题创建端点的请求速率。

阅读更多关于议题创建速率限制

  • 默认速率限制:默认情况下禁用。

按用户或 IP

此设置限制每个用户或 IP 的请求速率。

阅读更多关于用户和 IP 速率限制

  • 默认速率限制:默认情况下禁用。

按原始端点

此设置限制每个端点的请求速率。

阅读更多关于原始端点速率限制

  • 默认速率限制:每个项目、每次提交和每个文件路径 300 个请求。

按受保护路径

此设置限制特定路径上的请求速率。

极狐GitLab 默认对以下路径进行速率限制:

'/users/password',
'/users/sign_in',
'/api/#{API::API.version}/session.json',
'/api/#{API::API.version}/session',
'/users',
'/users/confirmation',
'/unsubscribes/',
'/import/github/personal_access_token',
'/admin/session'

阅读更多关于受保护路径速率限制

  • 默认速率限制:在 10 次请求后,客户端必须等待 60 秒再尝试。

软件包注册表

此设置限制每个用户或 IP 的软件包 API 的请求速率。有关更多信息,请参阅 软件包注册表速率限制

  • 默认速率限制:默认情况下禁用。

Git LFS

此设置限制 Git LFS 每个用户的请求速率。有关更多信息,请阅读 极狐GitLab Git 大文件存储 (LFS) 管理

  • 默认速率限制:默认情况下禁用。

文件 API

此设置限制每个用户或 IP 地址的文件 API 的请求速率。有关更多信息,请阅读 文件 API 速率限制

  • 默认速率限制:默认情况下禁用。

弃用的 API 端点

此设置限制每个用户或 IP 地址的弃用 API 端点的请求速率。有关更多信息,请阅读 弃用的 API 速率限制

  • 默认速率限制:默认情况下禁用。

导入/导出

此设置限制群组和项目的导入/导出操作。

限制 默认值 (每分钟每用户)
项目导入 6
项目导出 6
项目导出下载 1
群组导入 6
群组导出 6
群组导出下载 1

阅读更多关于导入/导出速率限制

成员邀请

限制每个群组层级允许的每日最大成员邀请数。

  • JihuLab.com: 基础版成员每天可以邀请 20 个成员,专业版试用和旗舰版试用成员每天可以邀请 50 个成员。
  • 极狐GitLab 私有化部署: 邀请不受限制。

Webhook 速率限制

{{< history >}}

  • 限制变更从每个 hook 变为每个顶级命名空间在极狐GitLab 15.1 中。

{{< /history >}}

限制每分钟、每个顶级命名空间可以调用 webhook 的次数。 这仅适用于项目和群组 webhooks。

超过速率限制的调用记录在 auth.log 中。

要为极狐GitLab 私有化部署实例设置此限制,请在 极狐GitLab Rails 控制台 中运行以下命令:

# 如果默认计划没有限制,您可以创建一个限制:
# Plan.default.create_limits!

Plan.default.actual_limits.update!(web_hook_calls: 10)

将限制设置为 0 以禁用它。

  • 默认速率限制:禁用(无限制)。

搜索速率限制

{{< history >}}

  • 在极狐GitLab 15.9 中的更改包括议题、合并请求和史诗搜索在速率限制中。
  • 对于认证请求,在极狐GitLab 16.0 中的更改应用速率限制到搜索范围

{{< /history >}}

此设置限制搜索请求如下:

限制 默认值 (每分钟请求数)
已认证用户 30
未认证用户 10

超过每分钟搜索速率限制的搜索请求返回以下错误:

此端点请求次数过多。请稍后再试。

自动补全用户速率限制

{{< history >}}

  • 引入于极狐GitLab 17.10,使用名为 autocomplete_users_rate_limit 的功能标志。默认禁用。

{{< /history >}}

此设置限制自动补全用户请求如下:

限制 默认值 (每分钟请求数)
已认证用户 300
未认证用户 100

超过每分钟自动补全速率限制的请求返回以下错误:

此端点请求次数过多。请稍后再试。

流水线创建速率限制

{{< history >}}

  • 引入于极狐GitLab 15.0。

{{< /history >}}

此设置限制到流水线创建端点的请求速率。

阅读更多关于流水线创建速率限制

Gitaly 并发限制

克隆流量可能会给您的 Gitaly 服务带来很大压力。为了防止这样的工作负载压倒您的 Gitaly 服务器,您可以在 Gitaly 配置文件中设置并发限制。

阅读更多关于Gitaly 并发限制

  • 默认速率限制:禁用。

每个议题、合并请求或提交的评论数量

议题、合并请求或提交上可以提交的评论数量有限制。当达到限制时,系统笔记仍然可以 添加,以便不会丢失事件的历史,但用户提交的评论会失败。

  • 最大限制:5,000 条评论。

议题、合并请求和史诗的评论和描述的大小

议题、合并请求和史诗的评论和描述大小有限制。尝试添加超过限制的文本主体会导致错误,并且该项目也不会被创建。

此限制可能会在未来更改为更低的数字。

  • 最大大小:约 100 万字符 / 约 1 MB。

提交标题和描述的大小

可以将任意大消息的提交推送到极狐GitLab,但以下显示限制适用:

  • 标题 - 提交消息的第一行。限制为 1 KiB。
  • 描述 - 提交消息的其余部分。限制为 1 MiB。

当提交被推送时,极狐GitLab 处理标题和描述以替换对议题(#123)和合并请求(!123)的引用为对议题和合并请求的链接。

当带有大量提交的分支被推送时,仅处理最后 100 次提交。

里程碑概述中的议题数量

里程碑概述页面上加载的议题最大数量为 500。 当数量超过限制时,页面会显示警报并链接到分页的 议题列表 以显示里程碑中的所有议题。

  • 限制:500 个议题。

每次 Git 推送的流水线数量

当使用单个 Git 推送推送多个更改时,如多个标签或分支, 仅能触发四个标签或分支流水线。此限制可以防止在使用 git push --allgit push --mirror 时意外创建大量流水线。

合并请求流水线 不受限制。如果 Git 推送同时更新多个合并请求,则可以为每个更新的合并请求触发合并请求流水线。

为了删除限制,以便可以为单个 Git 推送事件触发任意数量的流水线,管理员可以启用 git_push_create_all_pipelines 功能标志。不建议启用此功能标志,因为如果一次推送太多更改并且意外创建大量流水线,可能会导致极狐GitLab 实例负载过大。

活动历史的保留

项目和个人档案的活动历史限制为三年。

嵌入指标的数量

在极狐GitLab 风格的 Markdown (GLFM) 中嵌入指标时,由于性能原因存在限制。

  • 最大限制:100 个嵌入。

Webhook 限制

另请参阅 Webhook 速率限制

Webhooks 的数量

要为极狐GitLab 私有化部署实例设置群组或项目 webhooks 的最大数量, 请在 极狐GitLab Rails 控制台 中运行以下命令:

# 如果默认计划没有限制,您可以创建一个限制:
# Plan.default.create_limits!

# 对于项目 webhooks
Plan.default.actual_limits.update!(project_hooks: 200)

# 对于群组 webhooks
Plan.default.actual_limits.update!(group_hooks: 100)

将限制设置为 0 以禁用它。

每个项目的 webhooks 默认最大数量为 100,每个群组为 50。子群组中的 webhooks 不计入其父群组的 webhook 限制。

对于 JihuLab.com,请参阅 JihuLab.com 的 webhook 限制

Webhook 负载大小

最大 webhook 负载大小为 25 MB。

Webhook 超时

极狐GitLab 发送 webhook 后等待 HTTP 响应的秒数。

要更改 webhook 超时值:

  1. 编辑运行 Sidekiq 的所有极狐GitLab 节点上的 /etc/gitlab/gitlab.rb

    gitlab_rails['webhook_timeout'] = 60
    
  2. 保存文件。
  3. 重新配置并重启极狐GitLab 以使更改生效:

    gitlab-ctl reconfigure
    gitlab-ctl restart
    

另请参阅 JihuLab.com 的 webhook 限制

递归 webhooks

极狐GitLab 检测并阻止递归的 webhooks 或超出限制的 webhooks,这些 webhooks 可以从其他 webhooks 触发。这使得极狐GitLab 能够 继续支持使用 webhooks 非递归调用 API 的工作流,或不会触发大量其他 webhooks 的工作流。

当 webhook 配置为调用其自己的极狐GitLab 实例(例如,API)时,可能会发生递归。调用然后触发相同的 webhook 并创建无限循环。

由一系列触发其他 webhooks 的 webhooks 对实例发出的最大请求数为 100。当达到限制时,极狐GitLab 阻止该系列将触发的任何进一步的 webhooks。

被阻止的递归 webhook 调用记录在 auth.log 中,消息为 "Recursive webhook blocked from executing"

导入占位符用户限制

{{< history >}}

  • 引入于极狐GitLab 17.4。

{{< /history >}}

在导入期间创建的 占位符用户 的数量可以限制在每个顶级命名空间。

极狐GitLab 私有化部署 的默认限制为 0(无限制)。

要为极狐GitLab 私有化部署实例更改此限制,请在 极狐GitLab Rails 控制台 中运行以下命令:

# 如果默认计划没有限制,您可以创建一个限制:
# Plan.default.create_limits!

Plan.default.actual_limits.update!(import_placeholder_user_limit_tier_1: 200)

将限制设置为 0 以禁用它。

拉取镜像间隔

拉取刷新之间的最小等待时间 默认为 300 秒(5 分钟)。例如,无论您触发多少次,拉取刷新只在给定的 300 秒期间运行一次。

此设置适用于使用 项目 API 调用的拉取刷新上下文, 或在 设置 > 仓库 > 镜像仓库 中选择 立即更新 ({{< icon name=”retry” >}}) 强制更新时。 此设置对 Sidekiq 用于 拉取镜像 的自动 30 分钟间隔计划没有影响。

要为极狐GitLab 私有化部署实例更改此限制,请在 极狐GitLab Rails 控制台 中运行以下命令:

# 如果默认计划没有限制,您可以创建一个限制:
# Plan.default.create_limits!

Plan.default.actual_limits.update!(pull_mirror_interval_seconds: 200)

来自自动响应器的传入电子邮件

极狐GitLab 通过查找 X-Autoreply 标头忽略所有来自自动响应器的传入电子邮件。这些电子邮件不会在议题或合并请求上创建评论。

从 Sentry 通过错误跟踪发送的数据量

{{< history >}}

  • 限制所有 Sentry 响应在极狐GitLab 15.6 中引入。

{{< /history >}}

发送到极狐GitLab 的 Sentry 负载的最大限制为 1 MB,出于安全原因和限制内存消耗。

REST API 用于基于偏移的分页的最大偏移量

使用 REST API 中的基于偏移的分页时,对结果集请求的最大偏移量有限制。此限制仅适用于也支持基于键集分页的端点。有关分页选项的更多信息,请参阅 API 文档中的分页部分

要为极狐GitLab 私有化部署实例设置此限制,请在 极狐GitLab Rails 控制台 中运行以下命令:

# 如果默认计划没有限制,您可以创建一个限制:
# Plan.default.create_limits!

Plan.default.actual_limits.update!(offset_pagination_limit: 10000)
  • 默认偏移分页限制50000

将限制设置为 0 以禁用它。

CI/CD 限制

活动流水线中的作业数量

活动流水线中的作业总数可以按项目限制。每次创建新流水线时都会检查此限制。活动流水线是处于以下状态的任何流水线:

  • created
  • pending
  • running

如果新流水线会导致作业总数超过限制,则流水线会失败,并出现 job_activity_limit_exceeded 错误。

  • 在 JihuLab.com 上,限制在 为每个订阅层定义 ,此限制影响该层的所有项目。
  • 在极狐GitLab 私有化部署中,专业版或旗舰版 订阅中, 此限制在影响所有项目的 default 计划下定义。此限制默认禁用(0)。

要为极狐GitLab 私有化部署实例设置此限制,请在 极狐GitLab Rails 控制台 中运行以下命令:

# 如果默认计划没有限制,您可以创建一个限制:
# Plan.default.create_limits!

Plan.default.actual_limits.update!(ci_active_jobs: 500)

将限制设置为 0 以禁用它。

作业可以运行的最大时间

作业可以运行的默认最大时间为 60 分钟。运行超过 60 分钟的作业会超时。

您可以更改作业在超时前可以运行的最长时间:

  • 在项目级别的 项目的 CI/CD 设置 中为给定项目。此限制必须在 10 分钟到 1 个月之间。
  • runner 级别。 此限制必须为 10 分钟或更长时间。

流水线中的最大部署作业数量

您可以限制流水线中的最大部署作业数量。部署是任何指定了 environment 的作业。在创建流水线时检查流水线中的部署数量。具有过多部署的流水线会失败,并出现 deployments_limit_exceeded 错误。

所有 极狐GitLab 私有化部署和 JihuLab.com 订阅 的默认限制为 500。

要为极狐GitLab 私有化部署实例更改限制,请使用以下 极狐GitLab Rails 控制台 命令更改 default 计划的限制:

# 如果默认计划没有限制,您可以创建一个限制:
# Plan.default.create_limits!

Plan.default.actual_limits.update!(ci_pipeline_deployments: 500)

将限制设置为 0 以禁用它。

限制流水线层级大小

一个流水线层级 默认情况下最多可以包含 1000 个下游流水线。在创建新的下游流水线时检查此限制。如果新的下游流水线会导致层级超过此限制,则流水线创建会失败。

将限制设置为 0 以禁用它。默认情况下在极狐GitLab 私有化部署中为 1000

要在您的实例上将此限制设置为 2000,请在极狐GitLab Rails 控制台中运行以下命令:

Plan.default.actual_limits.update!(pipeline_hierarchy_size: 2000)

您也可以通过在 管理员区域 中使用极狐GitLab UI 设置此限制。

此限制在 JihuLab.com 上启用,无法更改。

项目的 CI/CD 订阅数量

每个项目的订阅总数可以限制。每次创建新订阅时都会检查此限制。

如果新订阅会导致订阅总数超过限制,则订阅被视为无效。

  • 在 JihuLab.com 上,限制在为每个订阅层定义,此限制影响该层的所有项目。
  • 在极狐GitLab 私有化部署 专业版或旗舰版 中,此限制在影响所有项目的 default 计划下定义。默认情况下,限制为 2 个订阅。

要为极狐GitLab 私有化部署实例设置此限制,请在 极狐GitLab Rails 控制台 中运行以下命令:

Plan.default.actual_limits.update!(ci_project_subscriptions: 500)

将限制设置为 0 以禁用它。

限制流水线触发器的数量

您可以为每个项目设置流水线触发器的最大数量限制。每次创建新触发器时都会检查此限制。

如果新触发器会导致流水线触发器总数超过限制,则触发器被视为无效。

将限制设置为 0 以禁用它。默认情况下在极狐GitLab 私有化部署中为 25000

要在极狐GitLab 私有化部署实例上将此限制设置为 100,请在 极狐GitLab Rails 控制台 中运行以下命令:

Plan.default.actual_limits.update!(pipeline_triggers: 100)

此限制在 JihuLab.com 上启用

流水线计划的数量

每个项目的流水线计划总数可以限制。每次创建新的流水线计划时都会检查此限制。如果新的流水线计划会导致流水线计划总数超过限制,则流水线计划不会被创建。

在 JihuLab.com 上,限制在为每个订阅层定义,此限制影响该层的所有项目。

在极狐GitLab 私有化部署 专业版或旗舰版 中,此限制在影响所有项目的 default 计划下定义。默认情况下,限制为 10 个流水线计划。

要为极狐GitLab 私有化部署实例设置此限制,请在极狐GitLab Rails 控制台 中运行以下命令:

Plan.default.actual_limits.update!(ci_pipeline_schedules: 100)

限制每天由流水线计划创建的流水线数量

您可以限制流水线计划每天可以触发的流水线数量。

计划尝试以比限制更高的频率运行流水线时,频率会降低到最大频率。频率通过将 1440(一天中的分钟数)除以限制值来计算。例如,对于最大频率为:

  • 每分钟一次,限制必须为 1440
  • 每 10 分钟一次,限制必须为 144
  • 每 60 分钟一次,限制必须为 24

最小值为 24,即每 60 分钟一次流水线。 没有最大值。

要在极狐GitLab 私有化部署实例上将此限制设置为 1440,请在极狐GitLab Rails 控制台 中运行以下命令:

Plan.default.actual_limits.update!(ci_daily_pipeline_schedule_triggers: 1440)

此限制在 JihuLab.com 上启用

限制为安全策略项目定义的计划规则数量

{{< history >}}

  • 引入 在极狐GitLab 15.1。

{{< /history >}}

您可以限制每个安全策略项目的计划规则总数。每次更新具有计划规则的策略时都会检查此限制。如果新的计划规则会导致计划规则总数超过限制,则不处理新的计划规则。

默认情况下,极狐GitLab 私有化部署不限制可处理的计划规则数量。

要为极狐GitLab 私有化部署实例设置此限制,请在极狐GitLab Rails 控制台 中运行以下命令:

Plan.default.actual_limits.update!(security_policy_scan_execution_schedules: 100)

此限制在 JihuLab.com 上启用

CI/CD 变量限制

{{< history >}}

  • 群组和项目变量限制在极狐GitLab 15.7 中引入。

{{< /history >}}

可以在项目、群组和实例设置中定义的 CI/CD 变量 的数量在整个实例中都有限制。每次创建新变量时都会检查这些限制。如果新的变量会导致变量总数超过相应限制,则不会创建新的变量。

要在极狐GitLab 私有化部署实例上更新这些限制之一的 default 计划,请在极狐GitLab Rails 控制台 中运行以下命令:

  • 实例级别 CI/CD 变量 限制(默认:25):

    Plan.default.actual_limits.update!(ci_instance_level_variables: 30)
    
  • 每个群组的 群组级别 CI/CD 变量 限制(默认:30000):

    Plan.default.actual_limits.update!(group_ci_variables: 40000)
    
  • 每个项目的 项目级别 CI/CD 变量 限制(默认:8000):

    Plan.default.actual_limits.update!(project_ci_variables: 10000)
    

每种类型的产物的最大文件大小

{{< history >}}

  • ci_max_artifact_size_annotations 限制在极狐GitLab 16.3 中引入。
  • ci_max_artifact_size_lsif 限制在极狐GitLab 17.8 中进行了增加。

{{< /history >}}

由 runner 上传的作业产物通过 artifacts:reports 定义,如果文件大小超过最大文件大小限制,则会被拒绝。限制通过将项目的最大产物大小设置与给定产物类型的实例限制进行比较,并选择较小的值来确定。

限制以兆字节为单位设置,因此可以定义的最小值为 1 MB

每种类型的产物都有一个可以设置的大小限制。默认值为 0 表示没有特定产物类型的限制,并使用项目的最大产物大小设置:

产物限制名称 默认值
ci_max_artifact_size_accessibility 0
ci_max_artifact_size_annotations 0
ci_max_artifact_size_api_fuzzing 0
ci_max_artifact_size_archive 0
ci_max_artifact_size_browser_performance 0
ci_max_artifact_size_cluster_applications 0
ci_max_artifact_size_cobertura 0
ci_max_artifact_size_codequality 0
ci_max_artifact_size_container_scanning 0
ci_max_artifact_size_coverage_fuzzing 0
ci_max_artifact_size_dast 0
ci_max_artifact_size_dependency_scanning 0
ci_max_artifact_size_dotenv 0
ci_max_artifact_size_junit 0
ci_max_artifact_size_license_management 0
ci_max_artifact_size_license_scanning 0
ci_max_artifact_size_load_performance 0
ci_max_artifact_size_lsif 200 MB
ci_max_artifact_size_metadata 0
ci_max_artifact_size_metrics_referee 0
ci_max_artifact_size_metrics 0
ci_max_artifact_size_network_referee 0
ci_max_artifact_size_performance 0
ci_max_artifact_size_requirements 0
ci_max_artifact_size_requirements_v2 0
ci_max_artifact_size_sast 0
ci_max_artifact_size_secret_detection 0
ci_max_artifact_size_terraform 5 MB
ci_max_artifact_size_trace 0
ci_max_artifact_size_cyclonedx 5 MB

例如,要在极狐GitLab 私有化部署中将 ci_max_artifact_size_junit 限制设置为 10 MB,请在 极狐GitLab Rails 控制台 中运行以下命令:

Plan.default.actual_limits.update!(ci_max_artifact_size_junit: 10)

每个极狐GitLab Pages 网站的文件数量

每个极狐GitLab Pages 网站的文件条目总数(包括目录和符号链接)限制为 200,000

这是 极狐GitLab 私有化部署和 JihuLab.com 的默认限制。

要在极狐GitLab 私有化部署实例中更新限制,请使用 极狐GitLab Rails 控制台。 例如,要将限制更改为 100

Plan.default.actual_limits.update!(pages_file_entries: 100)

每个极狐GitLab Pages 网站的自定义域数量

每个极狐GitLab Pages 网站的自定义域总数限制为 JihuLab.com150

极狐GitLab 私有化部署 的默认限制为 0(无限制)。 要在您的实例上设置限制,请使用 管理员区域

并行 Pages 部署的数量

在使用 并行 Pages 部署 时,允许的顶级命名空间的并行 Pages 部署总数为 1000。

每个范围的注册 runner 数量

{{< history >}}

  • 在极狐GitLab 17.1 中 runner 过期超时从 3 个月更改为 7 天。

{{< /history >}}

注册 runner 的总数对于群组和项目是有限制的。每次注册新 runner 时,极狐GitLab 会在过去 7 天内检查这些限制与创建或活动的 runner。如果 runner 超过 runner 注册令牌确定的范围限制,则注册失败。如果限制值设置为零,则禁用限制。

JihuLab.com 订阅者根据订阅定义了不同的限制,影响使用该订阅的所有项目。

在极狐GitLab 私有化部署中,专业版和旗舰版的限制由影响所有项目的默认计划定义:

Runner 范围 默认值
ci_registered_group_runners 1000
ci_registered_project_runners 1000

要更新这些限制,请在极狐GitLab Rails 控制台 中运行以下命令:

# 使用 ci_registered_group_runners 或 ci_registered_project_runners
# 根据所需范围
Plan.default.actual_limits.update!(ci_registered_project_runners: 100)

作业日志的最大文件大小

极狐GitLab 中作业日志文件大小限制默认是 100 兆字节。任何超过限制的作业将被标记为失败,并由 runner 丢弃。

您可以在 极狐GitLab Rails 控制台 中更改限制。 使用兆字节更新 ci_jobs_trace_size_limit

Plan.default.actual_limits.update!(ci_jobs_trace_size_limit: 125)

极狐GitLab Runner 也有一个output_limit 设置配置 runner 中的最大日志大小。超过 runner 限制的作业继续运行,但日志在达到限制时被截断。

每个项目的最大活跃 DAST 配置文件计划数量

限制每个项目的活跃 DAST 配置文件计划的数量。DAST 配置文件计划可以是活跃的或非活跃的。

您可以在 极狐GitLab Rails 控制台 中更改限制。 更新 dast_profile_schedules 的新值:

Plan.default.actual_limits.update!(dast_profile_schedules: 50)

CI 产物存档的最大大小

此设置用于限制 动态子流水线 的 YAML 大小。

CI 产物存档的默认最大大小为 5 兆字节。

您可以通过使用 极狐GitLab Rails 控制台 更改此限制。 要更新 CI 产物存档的最大大小, 请使用新值更新 max_artifacts_content_include_size。例如,将其设置为 20 MB:

ApplicationSetting.update(max_artifacts_content_include_size: 20.megabytes)

CI/CD 配置 YAML 文件的最大大小和深度

{{< history >}}

  • max_yaml_size_bytes 的默认值在极狐GitLab 17.3 中进行了更改。

{{< /history >}}

单个 CI/CD 配置 YAML 文件的默认最大大小为 2 兆字节,默认深度为 100。

您可以在 极狐GitLab Rails 控制台 中更改这些限制:

  • 要更新最大 YAML 大小,请使用兆字节更新 max_yaml_size_bytes

    ApplicationSetting.update(max_yaml_size_bytes: 4.megabytes)
    

    max_yaml_size_bytes 值不直接与 YAML 文件的大小相关,而是与分配的内存相关。

  • 要更新最大 YAML 深度,请使用行数更新 max_yaml_depth

    ApplicationSetting.update(max_yaml_depth: 125)
    

整个 CI/CD 配置的最大大小

{{< history >}}

  • max_yaml_size_bytes 的默认值在极狐GitLab 17.3 中进行了更改。
  • ci_max_total_yaml_size_bytes 的默认值在极狐GitLab 17.3 中进行了更改。

{{< /history >}}

最大内存量(以字节为单位)可以为完整的流水线配置分配,包含所有包含的 YAML 配置文件。

默认值通过将max_yaml_size_bytes(默认 2 MB)与ci_max_includes(默认 150)相乘计算得出:

  • 在极狐GitLab 17.2 及更早版本中:1 MB × 150 = 157286400 字节(150 MB)。
  • 在极狐GitLab 17.3 及更高版本中:2 MB × 150 = 314572800 字节(314.6 MB)。

您可以通过使用 极狐GitLab Rails 控制台 更改此限制。 要更新 CI/CD 配置可以分配的最大内存, 请使用新值更新 ci_max_total_yaml_size_bytes。例如,将其设置为 20 MB:

ApplicationSetting.update(ci_max_total_yaml_size_bytes: 20.megabytes)

限制 dotenv 变量

您可以为 dotenv 产物中的变量数量设置限制。每次将 dotenv 文件导出为产物时都会检查此限制。

将限制设置为 0 以禁用它。默认情况下在极狐GitLab 私有化部署中为 20

要在您的实例上将此限制设置为 100,请运行以下命令 极狐GitLab Rails 控制台

Plan.default.actual_limits.update!(dotenv_variables: 100)

您也可以通过使用 极狐GitLab UI计划限制 API 设置此限制。

此限制在 JihuLab.com 上启用

限制 dotenv 文件大小

您可以为 dotenv 产物的最大大小设置限制。每次将 dotenv 文件导出为产物时都会检查此限制。

将限制设置为 0 以禁用它。默认情况下为 5 KB。

要在极狐GitLab 私有化部署实例上将此限制设置为 5 KB,请在极狐GitLab Rails 控制台 中运行以下命令:

Plan.default.actual_limits.update!(dotenv_size: 5.kilobytes)

限制 CI/CD 作业注释

{{< history >}}

  • 引入于极狐GitLab 16.3。

{{< /history >}}

您可以设置每个 CI/CD 作业的最大 注释 数量限制。

将限制设置为 0 以禁用它。极狐GitLab 私有化部署的默认值为 20

要在您的实例上将此限制设置为 100,请在 极狐GitLab Rails 控制台 中运行以下命令:

Plan.default.actual_limits.update!(ci_job_annotations_num: 100)

限制 CI/CD 作业注释文件大小

{{< history >}}

  • 引入于极狐GitLab 16.3。

{{< /history >}}

您可以设置 CI/CD 作业 注释 的最大大小限制。

将限制设置为 0 以禁用它。默认值为 80 KB。

要在极狐GitLab 私有化部署实例上将此限制设置为 100 KB,请在 极狐GitLab Rails 控制台 中运行以下命令:

Plan.default.actual_limits.update!(ci_job_annotations_size: 100.kilobytes)

实例监控和指标

限制入站事故管理警报

此设置限制在一段时间内的入站警报负载数量。

阅读更多关于事故管理速率限制的信息。

Prometheus 警报 JSON 负载

发送到 notify.json 端点的 Prometheus 警报负载限制为 1 MB。

通用警报 JSON 负载

发送到 notify.json 端点的警报负载限制为 1 MB。

指标仪表板 YAML 文件

解析后的指标仪表板 YAML 文件所占用的内存不能超过 1 MB。

每个 YAML 文件的最大深度限制为 100。YAML 文件的最大深度是其最深嵌套键的嵌套数量。路径上的每个哈希和数组都算作其深度。例如,以下 YAML 的最深嵌套键的深度为 7:

dashboard: 'Test dashboard'
links:
- title: Link 1
  url: https://gitlab.com
panel_groups:
- group: Group A
  priority: 1
  panels:
  - title: "Super Chart A1"
    type: "area-chart"
    y_label: "y_label"
    weight: 1
    max_value: 1
    metrics:
    - id: metric_a1
      query_range: 'query'
      unit: unit
      label: Legend Label

环境仪表板限制

{{< details >}}

  • Tier: 专业版, 旗舰版
  • Offering: JihuLab.com, 极狐GitLab 私有化部署

{{< /details >}}

查看环境仪表板以了解显示的项目数量上限。

部署板上的环境数据

部署板从 Kubernetes 加载有关 Pods 和 Deployments 的信息。然而,从 Kubernetes 读取的超过 10 MB 的某个环境的数据不会显示。

合并请求

差异限制

极狐GitLab 对以下内容进行了限制:

每个都有适用的上限和下限:

  • 更改的文件数量。
  • 更改的行数。
  • 显示的更改的累积大小。

较低的限制导致其他差异被折叠。较高的限制阻止任何更多更改的渲染。有关这些限制的更多信息,请阅读开发文档

差异版本限制

{{< history >}}

  • 引入于极狐GitLab 17.10,使用名为 merge_requests_diffs_limit功能标志。默认禁用。
  • 在极狐GitLab 17.10 上为 JihuLab.com 启用。

{{< /history >}}

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

此功能的可用性由一个功能标志控制。有关更多信息,请参阅历史记录。此功能可用于测试,但尚未准备好用于生产环境。

{{< /alert >}}

极狐GitLab 将每个合并请求限制为 1000 个差异版本。达到此限制的合并请求不能进一步更新。相反,请关闭受影响的合并请求并创建一个新的合并请求。

合并请求报告大小限制

超过 20 MB 限制的报告不会加载。受影响的报告:

高级搜索限制

最大文件大小索引

您可以设置在 Elasticsearch 中索引的存储库文件内容的限制。大于此限制的任何文件仅索引文件名。文件内容既不被索引,也不可搜索。

设置限制有助于减少索引过程的内存使用和整体索引大小。此值默认为 1024 KiB (1 MiB),因为任何大于此的文本文件可能并不打算被人类阅读。

您必须设置限制,因为不支持无限制的文件大小。将此值设置为大于极狐GitLab Sidekiq 节点上的内存量会导致极狐GitLab Sidekiq 节点内存耗尽,因为在索引期间会预先分配这部分内存。

最大字段长度

您可以设置高级搜索中索引的文本字段内容的限制。设置最大值有助于减少索引过程的负载。如果任何文本字段超过此限制,则文本被截断为此字符数。其余的文本不被索引,也不可搜索。这适用于除存储库文件外的所有索引数据,存储库文件有单独的限制。有关更多信息,请阅读最大文件大小索引

  • 在 JihuLab.com 上,字段长度限制为 20,000 字符。
  • 对于极狐GitLab 私有化部署实例,字段长度默认是无限制的。

您可以在启用 Elasticsearch时为极狐GitLab 私有化部署实例配置此限制。将限制设置为 0 以禁用它。

数学渲染限制

{{< history >}}

  • 引入于极狐GitLab 16.5。
  • 从 Wiki 和仓库文件移除了 50 节点的限制。
  • 新增了一个群组级别的设置以允许禁用数学渲染限制,而且在极狐GitLab 16.9 中默认重启了对于 wiki 和仓库文件的数学限制。

{{< /history >}}

极狐GitLab 在 Markdown 字段中渲染数学时强制执行默认限制。这些限制提供了更好的安全性和性能。

对于议题、合并请求、史诗、wiki 和存储库文件的限制:

  • 最大宏扩展数量:1000
  • 用户指定的最大大小 em: 20
  • 渲染的节点最大数量:50
  • 数学块中的最大字符数:1000
  • 最大渲染时间:2000 ms

当您运行极狐GitLab 私有化部署并信任用户输入时,可以禁用这些限制。

使用 极狐GitLab Rails 控制台

ApplicationSetting.update(math_rendering_limits_enabled: false)

这些限制也可以使用 GraphQL 或 REST API 每群组禁用。

如果禁用了限制,则在议题、合并请求、史诗、wiki 和存储库文件中渲染数学时几乎没有限制。这意味着恶意行为者 可能 添加数学,使其在浏览器中查看时导致 DoS。您必须确保只有您信任的人可以添加内容。

Wiki 限制

代码段限制

请参阅有关代码段设置的文档

设计管理限制

请参阅将设计添加到议题部分中的限制。

推送事件限制

最大推送大小

允许的最大推送大小

默认情况下未在极狐GitLab 私有化部署上设置。有关 JihuLab.com,请参阅账户和限制设置

Webhooks 和项目服务

单个推送中的更改(分支或标签)总数。如果更改超过指定的限制,则不执行钩子。

有关更多信息,请参阅:

活动

单个推送中的更改(分支或标签)总数,以确定是创建单独的推送事件还是批量推送事件。

更多信息可以在推送事件活动限制和批量推送事件文档中找到。

软件包注册表限制

文件大小限制

上传到极狐GitLab 软件包注册表的一个软件包的默认最大文件大小因格式而异:

  • Conan: 3 GB
  • Generic: 5 GB
  • Helm: 5 MB
  • Maven: 3 GB
  • npm: 500 MB
  • NuGet: 500 MB
  • PyPI: 3 GB
  • Terraform: 1 GB

极狐GitLab.com 上的最大文件大小可能不同。

要为极狐GitLab 私有化部署实例设置这些限制,您可以通过管理员区域进行设置,或者在 极狐GitLab Rails 控制台中运行以下命令:

# 文件大小限制以字节存储

# 对于 Conan 软件包
Plan.default.actual_limits.update!(conan_max_file_size: 100.megabytes)

# 对于 npm 软件包
Plan.default.actual_limits.update!(npm_max_file_size: 100.megabytes)

# 对于 NuGet 软件包
Plan.default.actual_limits.update!(nuget_max_file_size: 100.megabytes)

# 对于 Maven 软件包
Plan.default.actual_limits.update!(maven_max_file_size: 100.megabytes)

# 对于 PyPI 软件包
Plan.default.actual_limits.update!(pypi_max_file_size: 100.megabytes)

# 对于 Debian 软件包
Plan.default.actual_limits.update!(debian_max_file_size: 100.megabytes)

# 对于 Helm Charts
Plan.default.actual_limits.update!(helm_max_file_size: 100.megabytes)

# 对于通用软件包
Plan.default.actual_limits.update!(generic_packages_max_file_size: 100.megabytes)

将限制设置为 0 以允许任何文件大小。

软件包版本返回

在请求给定 NuGet 软件包名称的版本时,极狐GitLab 软件包注册表最多返回 300 个版本。

依赖代理限制

缓存的图像的最大文件大小在 依赖代理 中因文件类型而异:

  • 图像 blob:5 GB
  • 图像清单:10 MB

分配和审阅者的最大数量

{{< history >}}

  • 最大指派人引入于极狐GitLab 15.6。
  • 最大审核人员数引入于极狐GitLab 15.9。

{{< /history >}}

议题和合并请求强制执行以下最大值:

  • 最大分配人数:200
  • 最大审阅者人数:200

容器存储库标签删除限制

容器存储库标签位于容器注册表中,因此每次标签删除都会触发对容器注册表的网络请求。因此,我们将单个 API 调用可以删除的标签数量限制为 20。

项目级安全文件 API 限制

安全文件 API 强制执行以下限制:

  • 文件必须小于 5 MB。
  • 项目不能有超过 100 个安全文件。

变更日志 API 限制

{{< history >}}

  • 引入于极狐GitLab 15.1,使用名为 changelog_commits_limitation功能标志。默认禁用。
  • 在极狐GitLab 15.3 中为私有化部署和 JihuLab.com 默认启用
  • 在极狐GitLab 17.3 中 GA。功能标志 changelog_commits_limitation 被移除。

{{< /history >}}

变更日志 API 强制执行以下限制:

  • fromto 之间的提交范围不能超过 15000 个提交。

价值流分析限制

  • 每个命名空间(例如群组或项目)最多可以有 50 个价值流。
  • 每个价值流最多可以有 15 个阶段。

审计事件流目的地限制

自定义 HTTP 端点

  • 每个顶级群组最多可以有 5 个自定义 HTTP 流目的地。

Amazon S3

  • 每个顶级群组最多可以有 5 个 Amazon S3 流目的地。

列出所有实例限制

要列出所有实例限制值,请从 极狐GitLab Rails 控制台 中运行以下命令:

Plan.default.actual_limits

示例输出:

id: 1,
plan_id: 1,
ci_pipeline_size: 0,
ci_active_jobs: 0,
project_hooks: 100,
group_hooks: 50,
ci_project_subscriptions: 3,
ci_pipeline_schedules: 10,
offset_pagination_limit: 50000,
ci_instance_level_variables: "[FILTERED]",
storage_size_limit: 0,
ci_max_artifact_size_lsif: 200,
ci_max_artifact_size_archive: 0,
ci_max_artifact_size_metadata: 0,
ci_max_artifact_size_trace: "[FILTERED]",
ci_max_artifact_size_junit: 0,
ci_max_artifact_size_sast: 0,
ci_max_artifact_size_dependency_scanning: 350,
ci_max_artifact_size_container_scanning: 150,
ci_max_artifact_size_dast: 0,
ci_max_artifact_size_codequality: 0,
ci_max_artifact_size_license_management: 0,
ci_max_artifact_size_license_scanning: 100,
ci_max_artifact_size_performance: 0,
ci_max_artifact_size_metrics: 0,
ci_max_artifact_size_metrics_referee: 0,
ci_max_artifact_size_network_referee: 0,
ci_max_artifact_size_dotenv: 0,
ci_max_artifact_size_cobertura: 0,
ci_max_artifact_size_terraform: 5,
ci_max_artifact_size_accessibility: 0,
ci_max_artifact_size_cluster_applications: 0,
ci_max_artifact_size_secret_detection: "[FILTERED]",
ci_max_artifact_size_requirements: 0,
ci_max_artifact_size_coverage_fuzzing: 0,
ci_max_artifact_size_browser_performance: 0,
ci_max_artifact_size_load_performance: 0,
ci_needs_size_limit: 2,
conan_max_file_size: 3221225472,
maven_max_file_size: 3221225472,
npm_max_file_size: 524288000,
nuget_max_file_size: 524288000,
pypi_max_file_size: 3221225472,
generic_packages_max_file_size: 5368709120,
golang_max_file_size: 104857600,
debian_max_file_size: 3221225472,
project_feature_flags: 200,
ci_max_artifact_size_api_fuzzing: 0,
ci_pipeline_deployments: 500,
pull_mirror_interval_seconds: 300,
daily_invites: 0,
rubygems_max_file_size: 3221225472,
terraform_module_max_file_size: 1073741824,
helm_max_file_size: 5242880,
ci_registered_group_runners: 1000,
ci_registered_project_runners: 1000,
ci_daily_pipeline_schedule_triggers: 0,
ci_max_artifact_size_cluster_image_scanning: 0,
ci_jobs_trace_size_limit: "[FILTERED]",
pages_file_entries: 200000,
dast_profile_schedules: 1,
external_audit_event_destinations: 5,
dotenv_variables: "[FILTERED]",
dotenv_size: 5120,
pipeline_triggers: 25000,
project_ci_secure_files: 100,
repository_size: 0,
security_policy_scan_execution_schedules: 0,
web_hook_calls_mid: 0,
web_hook_calls_low: 0,
project_ci_variables: "[FILTERED]",
group_ci_variables: "[FILTERED]",
ci_max_artifact_size_cyclonedx: 1,
rpm_max_file_size: 5368709120,
pipeline_hierarchy_size: 1000,
ci_max_artifact_size_requirements_v2: 0,
enforcement_limit: 0,
notification_limit: 0,
dashboard_limit_enabled_at: nil,
web_hook_calls: 0,
project_access_token_limit: 0,
google_cloud_logging_configurations: 5,
ml_model_max_file_size: 10737418240,
limits_history: {},
audit_events_amazon_s3_configurations: 5

由于在 Rails 控制台中进行过滤,某些限制值在列表中显示为 [FILTERED]