GitLab.com 设置
- 层级:免费版、高级版、旗舰版
- 服务类型:GitLab.com
这些设置用于 GitLab.com,并可供 GitLab SaaS 客户使用。
部分设置可在 GitLab.com 的实例配置页面 查看。
账户和限制设置
GitLab.com 使用以下账户限制。如果某项设置未列出,其默认值 与 GitLab 自托管实例相同:
| 设置 | GitLab.com 默认值 |
|---|---|
| 包含 LFS 的仓库大小 | 10 GB |
| 最大导入大小 | 5 GiB |
| 最大导出大小 | 40 GiB |
| 从外部对象存储导入时的最大远程文件大小 | 10 GiB |
| 从源 GitLab 实例通过直接传输导入时的最大下载文件大小 | 5 GiB |
| 最大附件大小 | 100 MiB |
| 导入存档的最大解压后文件大小 | 25 GiB |
| 最大推送大小 | 5 GiB |
如果接近或超过仓库大小限制,您可以:
通过 Cloudflare 发送的 git push 和 GitLab 项目导入请求限制为每次 5 GiB。非文件上传的导入不受此限制。仓库限制同时适用于公开和私有项目。
备份
要在 GitLab.com 备份整个项目,可以导出:
导出时请注意 项目导出包含和不包含的内容。
要备份项目或 Wiki 的 Git 仓库,请将其克隆到另一台计算机。所有 2020 年 8 月 22 日后上传到 Wiki 的文件 在克隆仓库时均包含在内。
CI/CD
GitLab.com 使用以下 GitLab CI/CD 设置。此处未列出的设置或功能限制使用相关文档中的默认值:
| 设置 | GitLab.com | 默认值(GitLab 自托管) |
|---|---|---|
| Artifacts 最大大小(压缩后) | 1 GB | 参见 最大 artifacts 大小。 |
| Artifacts 过期时间 | 除非另有说明,否则为 30 天 | 参见 默认 artifacts 过期时间。2020 年 6 月 22 日前创建的 artifacts 无过期时间。 |
| 定时流水线 Cron | */5 * * * * |
参见 流水线计划高级配置。 |
| 单个流水线中的最大作业数 | 免费版:500,试用版所有层级:1000,高级版:1500,旗舰版:2000 | 参见 单个流水线中的最大作业数。 |
| 活跃流水线中的最大作业数 | 免费版:500,试用版所有层级:1000,高级版:20000,旗舰版:100000 | 参见 活跃流水线中的作业数。 |
| 单个项目的最大 CI/CD 订阅数 | 2 |
参见 单个项目的 CI/CD 订阅数。 |
| 单个项目的最大流水线触发器数量 | 25000 |
参见 限制流水线触发器数量。 |
| 项目中的最大流水线计划数 | 免费版:10,付费版所有层级:50 | 参见 流水线计划数量。 |
| 每个计划的最大流水线数 | 免费版:24,付费版所有层级:288 | 参见 限制流水线计划每天创建的流水线数量。 |
| 每个安全策略项目定义的最大计划规则数 | 付费版所有层级:无限制 | 参见 每个安全策略项目定义的计划规则数。 |
| 定时作业归档 | 3 个月 | 从不。2020 年 6 月 22 日前创建的作业于 2020 年 9 月 22 日归档。 |
| 每个 单元测试报告 的最大测试用例数 | 500000 |
无限制。 |
| 最大注册运行器数量 | 免费版:每个组 50,每个项目 50 付费版所有层级:每个组 1000,每个项目 1000 |
参见 每个范围注册的运行器数量。 |
| dotenv 变量限制 | 免费版:50高级版: 100旗舰版: 150 |
参见 限制 dotenv 变量。 |
| 最大下游流水线触发速率(针对特定项目、用户和提交) | 每分钟 350 |
参见 限制下游流水线触发速率。 |
| 单个流水线层次树中的最大下游流水线数量 | 1000 |
参见 限制流水线层次大小。 |
容器注册表
| 设置 | GitLab.com | GitLab 自托管 |
|---|---|---|
| 域名 | registry.gitlab.com |
|
| IP 地址 | 35.227.35.254 |
|
| CDN 域名 | cdn.registry.gitlab-static.net |
|
| CDN IP 地址 | 34.149.22.116 |
|
| 授权令牌有效期(分钟) | 15 |
参见 增加容器注册表令牌有效期。 |
要使用 GitLab 容器注册表,Docker 客户端必须能访问:
- 注册表端点和 GitLab.com(用于授权)。
- Google Cloud Storage 或 Google Cloud Content Delivery Network(用于下载镜像)。
GitLab.com 由 Cloudflare 提供服务。对于访问 GitLab.com 的入站连接,必须允许 Cloudflare 的 CIDR 块(IPv4 和 IPv6)。
差异显示限制
GitLab.com 上无法更改差异文件的显示设置。
| 设置 | 定义 | GitLab.com |
|---|---|---|
| 最大差异补丁大小 | 整个差异的总大小。 | 200 KB |
| 最大差异文件数 | 差异中更改的文件总数。 | 3,000 |
| 最大差异行数 | 差异中更改的行总数。 | 100,000 |
邮件
邮件配置设置、IP 地址和别名。
确认设置
GitLab.com 使用以下邮件确认设置:
email_confirmation_setting设置为 严格模式。unconfirmed_users_delete_after_days设置为三天。
IP 地址
GitLab.com 使用 Mailgun 从 mg.gitlab.com 域发送邮件,并拥有专用 IP 地址:
23.253.183.23669.72.35.19069.72.44.107159.135.226.146161.38.202.219192.237.158.143192.237.159.239198.61.254.136198.61.254.160209.61.151.122
mg.gitlab.com 的 IP 地址可能随时更改。
服务台别名
GitLab.com 为服务台配置了邮箱,地址为:contact-project+%{key}@incoming.gitlab.com。要使用此邮箱,请在项目设置中配置 自定义后缀。
GitLab.com 上的 Gitaly RPC 并发限制
针对不同类型的 Git 操作(如 git clone)配置了按仓库的 Gitaly RPC 并发和队列限制。当超过这些限制时,客户端会收到 fatal: remote error: GitLab is currently unable to handle this request due to load 消息。
有关管理员文档,请参阅 限制 RPC 并发。
GitLab Pages
部分 GitLab Pages 设置与 GitLab 自托管默认值 不同:
| 设置 | GitLab.com |
|---|---|
| 域名 | gitlab.io |
| IP 地址 | 35.185.44.232 |
| 自定义域名支持 | 是 |
| TLS 证书支持 | 是 |
| 最大站点大小 | 1 GB |
| 每个 GitLab Pages 网站的自定义域名数量 | 150 |
Pages 站点的最大大小取决于最大 artifacts 大小,这是 GitLab CI/CD 设置 的一部分。
速率限制 也适用于 GitLab Pages。
GitLab.com 的大规模部署
除了 GitLab Enterprise Edition Linux 包安装外,GitLab.com 还使用以下应用程序和设置来实现规模扩展。所有设置均公开可用,形式为 Kubernetes 配置 或 Chef cookbooks。
Consul
服务发现:
Elastic 集群
我们使用 Elasticsearch 和 Kibana 作为监控解决方案的一部分:
Fluentd
我们使用 Fluentd 统一 GitLab 日志:
Grafana
用于监控数据的可视化:
HAProxy
高性能 TCP/HTTP 负载均衡器:
Prometheus
Prometheus 完善了我们的监控堆栈:
Sentry
开源错误跟踪:
GitLab 托管的运行器
使用 GitLab 托管的运行器在 GitLab.com 和 GitLab Dedicated 上运行 CI/CD 作业,以便在不同环境中无缝构建、测试和部署您的应用程序。
更多信息请参阅 GitLab 托管的运行器。
主机名列表
在配置本地 HTTP(S) 代理或其他管理终端用户计算机的网页屏蔽软件时,请添加这些主机名。GitLab.com 上的页面会从这些主机名加载内容:
gitlab.com*.gitlab.com*.gitlab-static.net*.gitlab.io*.gitlab.net
通过 docs.gitlab.com 和 about.gitlab.com 提供的文档和 GitLab 公司页面也会直接从常见的公共 CDN 主机名加载某些页面内容。
导入
GitLab.com 使用设置限制导入数据到 GitLab。
默认导入源
默认可用的 导入源 取决于您使用的 GitLab 版本:
- GitLab.com:默认启用所有可用的导入源。
- GitLab 自托管:默认不启用任何导入源,必须 启用。
导入占位用户限制
导入 GitLab.com 时,限制每个顶级命名空间的 占位用户 数量。限制因您的计划和座位数而异。更多信息请参阅 GitLab.com 占位用户限制表。
IP 范围
GitLab.com 使用 IP 范围 34.74.90.64/28 和 34.74.226.0/24 处理其 Web/API 车队的流量。整个范围专用于 GitLab。来自 Webhook 或仓库镜像的连接来自这些 IP 地址。您应允许这些连接。
- 入站连接 - GitLab.com 由 Cloudflare 提供服务。对于访问 GitLab.com 的入站连接,允许 Cloudflare 的 CIDR 块(IPv4 和 IPv6)。
- CI/CD 运行器的出站连接 - 我们不为 CI/CD 运行器的出站连接提供静态 IP 地址。但以下指南可能有帮助:
- Linux GPU 和 Linux Arm64 运行器部署在 Google Cloud 的
us-central1区域。 - 其他 GitLab.com 实例运行器部署在 Google Cloud 的
us-east1区域。 - macOS 运行器托管在 AWS 的
us-east-1区域,运行器管理器托管在 Google Cloud。
- Linux GPU 和 Linux Arm64 运行器部署在 Google Cloud 的
要配置基于 IP 的防火墙,必须允许 AWS IP 地址范围 和 Google Cloud IP 地址范围。
请参阅如何查找 GCP 的 IP 地址范围或 CIDR 块。
最大审查者和分配者数量
合并请求强制执行以下上限:
- 最大分配者数量:200
- 最大审查者数量:200
合并请求限制
此功能的可用性由功能标志控制。更多信息请参阅历史记录。
GitLab 限制每个合并请求最多 1000 个 差异版本。达到此限制的合并请求无法进一步更新。请关闭受影响的合并请求并创建新的合并请求。
差异提交限制
此功能的可用性由功能标志控制。更多信息请参阅历史记录。
GitLab 限制每个合并请求最多 1,000,000(一百万)个差异提交。达到此限制的合并请求无法进一步更新。请关闭受影响的合并请求并创建新的合并请求。
密码要求
GitLab.com 对新账户和密码更改设置以下密码要求:
- 最小字符长度 8 个字符。
- 最大字符长度 128 个字符。
- 接受所有字符。例如
~,!,@,#,$,%,^,&,*,(),[],_,+,=,-。
组创建
在 GitLab.com 上,顶级组创建 不通过 API 提供,必须通过用户界面执行。
项目和组删除
与项目和组删除相关的设置。
延迟组删除
组在延迟 30 天后永久删除。
请参阅如何 查看和恢复标记为删除的组。
延迟项目删除
项目在延迟 30 天后永久删除。
请参阅如何 查看和恢复标记为删除的项目。
休眠项目删除
休眠项目删除 在 GitLab.com 上禁用。
包注册表限制
上传到 GitLab 包注册表 的 最大文件大小 因格式而异:
| 包类型 | GitLab.com |
|---|---|
| Conan | 5 GB |
| Generic | 5 GB |
| Helm | 5 MB |
| 机器学习模型 | 10 GB(上传限制为 5 GB) |
| Maven | 5 GB |
| npm | 5 GB |
| NuGet | 5 GB |
| PyPI | 5 GB |
| Terraform | 1 GB |
Puma
GitLab.com 对 Puma 请求超时 使用默认的 60 秒。
GitLab.com 上的速率限制
有关管理员文档,请参阅 速率限制。
当请求被限速时,GitLab 返回 429 状态码。客户端应等待一段时间后再尝试请求。响应中可能包含信息性标头,详细信息请参阅 限速响应。项目、组和用户 API 的限速响应不包含信息性标头。
下表描述了 GitLab.com 的速率限制:
| 速率限制 | 设置 |
|---|---|
| 单个 IP 地址的受保护路径 | 每分钟 10 次请求 |
| 项目、提交或文件路径的原始端点流量 | 每分钟 300 次请求 |
| 单个 IP 地址的未认证流量 | 每分钟 500 次请求 |
| 单个用户的认证 API 流量 | 每分钟 2,000 次请求 |
| 单个用户的认证非 API HTTP 流量 | 每分钟 1,000 次请求 |
| 单个 IP 地址的所有流量 | 每分钟 2,000 次请求 |
| 问题创建 | 每分钟 200 次请求 |
| 问题与合并请求的注释创建 | 每分钟 60 次请求 |
| 单个 IP 地址的高级/项目/组搜索 API | 每分钟 10 次请求 |
| 单个 IP 地址的 GitLab Pages 请求 | 每 50 秒 1,000 次请求 |
| GitLab Pages 域的请求 | 每 10 秒 5,000 次请求 |
| 单个 IP 地址的 GitLab Pages TLS 连接 | 每 50 秒 1,000 次请求 |
| GitLab Pages 域的 TLS 连接 | 每 10 秒 400 次请求 |
| 项目、用户或提交的流水线创建请求 | 每分钟 25 次请求 |
| 项目的告警集成端点请求 | 每小时 3,600 次请求 |
GitLab Duo aiAction 请求 |
每 8 小时 160 次请求 |
| 拉取镜像 间隔 | 5 分钟 |
用户对 /api/v4/users/:id 的 API 请求 |
每 10 分钟 300 次请求 |
| 单个 IP 地址的 GitLab 包云请求(在 GitLab 16.11 中 引入) | 每分钟 3,000 次请求 |
| GitLab 仓库文件 | 每分钟 500 次请求 |
用户关注者请求 (/api/v4/users/:id/followers) |
每分钟 100 次请求 |
用户关注请求 (/api/v4/users/:id/following) |
每分钟 100 次请求 |
用户状态请求 (/api/v4/users/:user_id/status) |
每分钟 240 次请求 |
用户 SSH 密钥请求 (/api/v4/users/:user_id/keys) |
每分钟 120 次请求 |
单个 SSH 密钥请求 (/api/v4/users/:id/keys/:key_id) |
每分钟 120 次请求 |
用户 GPG 密钥请求 (/api/v4/users/:id/gpg_keys) |
每分钟 120 次请求 |
单个 GPG 密钥请求 (/api/v4/users/:id/gpg_keys/:key_id) |
每分钟 120 次请求 |
用户项目请求 (/api/v4/users/:user_id/projects) |
每分钟 300 次请求 |
用户贡献项目请求 (/api/v4/users/:user_id/contributed_projects) |
每分钟 100 次请求 |
用户星标项目请求 (/api/v4/users/:user_id/starred_projects) |
每分钟 100 次请求 |
项目列表请求 (/api/v4/projects) |
每 10 分钟 2,000 次请求 |
组项目请求 (/api/v4/groups/:id/projects) |
每分钟 600 次请求 |
单个项目请求 (/api/v4/projects/:id) |
每分钟 400 次请求 |
组列表请求 (/api/v4/groups) |
每分钟 200 次请求 |
单个组请求 (/api/v4/groups/:id) |
每分钟 400 次请求 |
有关 受保护路径 和 原始端点 的速率限制详情,请参阅相关文档。
GitLab 可能在多个层级限速。此处列出的速率限制在应用程序中配置。这些限制对每个 IP 地址最为严格。
通过上传导出文件进行组和项目导入
为避免滥用,GitLab.com 使用速率限制:
- 项目和组导入。
- 使用文件的组和项目导出。
- 导出下载。
更多信息请参阅:
IP 封禁
当 GitLab.com 从单个 IP 地址接收到系统视为潜在恶意的异常流量时,可能发生 IP 封禁。这可能基于速率限制设置。异常流量停止后,IP 地址会根据封禁类型自动解除,具体说明见后续章节。
如果您对 GitLab.com 的所有请求收到 403 Forbidden 错误,请检查是否有任何自动化进程触发了封禁。如需帮助,请联系 GitLab Support,并提供受影响的 IP 地址等详细信息。
Git 和容器注册表认证失败封禁
当单个 IP 地址在 1 分钟内发送 300 次失败的认证请求时,GitLab.com 在 15 分钟内返回 HTTP 状态码 403。
这仅适用于 Git 请求和容器注册表 (/jwt/auth) 请求(合计)。
此限制:
- 通过成功认证的请求重置。例如,299 次失败认证请求后跟 1 次成功请求,再跟 299 次失败认证请求,不会触发封禁。
- 不适用于由
gitlab-ci-token认证的 JWT 请求。
不提供响应标头。
https 上的 git 请求总是先发送未认证请求,对于私有仓库会返回 401 错误。然后 git 尝试使用用户名、密码或访问令牌进行认证请求。如果同时发送过多请求,可能导致临时 IP 封禁。要解决此问题,请使用 SSH 密钥与 GitLab 通信。
不可配置的限制
有关 GitLab.com 上使用的不可配置速率限制,请参阅 不可配置限制
分页响应标头
出于性能考虑,如果查询返回超过 10,000 条记录,GitLab 会排除部分标头。
受保护路径限速
如果同一 IP 地址在一分钟内向受保护路径发送超过 10 个 POST 请求,GitLab.com 返回 429 HTTP 状态码。
受保护路径的源码见下文,包括用户创建、用户确认、用户登录和密码重置。
用户和 IP 速率限制 包含对被阻止请求的响应标头列表。
更多详情请参阅 受保护路径。
限速响应
有关限速响应的信息,请参阅:
SSH 最大连接数
GitLab.com 使用 MaxStartups 设置 定义最大并发未认证 SSH 连接数。如果超过允许的最大连接数,连接将被丢弃,用户会收到 一个 ssh_exchange_identification 错误。
可见性设置
项目、组和代码片段的 内部可见性 设置在 GitLab.com 上 被禁用。
Sidekiq
GitLab.com 将 Sidekiq 作为 外部进程 运行,用于 Ruby 作业调度。
当前设置在 GitLab.com Kubernetes Pod 配置 中。
SSH 密钥和认证
与 SSH 认证相关的设置。有关最大连接数的信息,请参阅 SSH 最大连接数。
替代 SSH 端口
GitLab.com 可通过使用 git+ssh 的 不同 SSH 端口 访问。
| 设置 | 值 |
|---|---|
Hostname |
altssh.gitlab.com |
Port |
443 |
示例 ~/.ssh/config 如下:
Host gitlab.com
Hostname altssh.gitlab.com
User git
Port 443
PreferredAuthentications publickey
IdentityFile ~/.ssh/gitlabSSH 主机密钥指纹
查看 GitLab.com 当前实例配置以获取 SSH 主机密钥指纹。
- 登录 GitLab。
- 在左侧边栏,选择 帮助( )> 帮助。
- 在帮助页面,选择 检查当前实例配置。
在实例配置中,您会看到 SSH 主机密钥指纹:
| 算法 | MD5(已弃用) | SHA256 |
|---|---|---|
| ECDSA | f1:d0:fb:46:73:7a:70:92:5a:ab:5d:ef:43:e2:1c:35 |
SHA256:HbW3g8zUjNSksFbqTiUWPWg2Bq1x8xdGUrliXFzSnUw |
| ED25519 | 2e:65:6a:c8:cf:bf:b2:8b:9a:bd:6d:9f:11:5c:12:16 |
SHA256:eUXGGm1YGsMAS7vkcx6JOJdOGHPem5gQp4taiCfCLB8 |
| RSA | b6:03:0e:39:97:9e:d0:e7:24:ce:a3:77:3e:01:42:09 |
SHA256:ROQFvPThGrW4RuWLoL9tq9I9zJ42fK4XywyRtbOz/EQ |
首次连接 GitLab.com 仓库时,输出中会显示这些密钥之一。
SSH 密钥限制
GitLab.com 使用默认的 SSH 密钥限制。
SSH known_hosts 条目
为跳过 SSH 中的手动指纹确认,请将以下内容添加到 .ssh/known_hosts:
gitlab.com ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAfuCHKVTjquxvt6CM6tdG4SLp1Btn/nOeHHE5UOzRdf
gitlab.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCsj2bNKTBSpIYDEGk9KxsGh3mySTRgMtXL583qmBpzeQ+jqCMRgBqB98u3z++J1sKlXHWfM9dyhSevkMwSbhoR8XIq/U0tCNyokEi/ueaBMCvbcTHhO7FcwzY92WK4Yt0aGROY5qX2UKSeOvuP4D6TPqKF1onrSzH9bx9XUf2lEdWT/ia1NEKjunUqu1xOB/StKDHMoX4/OKyIzuS0q/T1zOATthvasJFoPrAjkohTyaDUz2LN5JoH839hViyEG82yB+MjcFV5MU3N1l1QL3cVUCh93xSaua1N85qivl+siMkPGbO5xR/En4iEY6K2XPASUEMaieWVNTRCtJ4S8H+9
gitlab.com ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBFSMqzJeV9rUzU4kWitGjeR4PWSa29SPqJ1fVkhtj3Hw9xjLVXVYrU9QlYWrOLXBpQ6KWjbjTDTdDkoohFzgbEY=Webhook
以下限制适用于 webhook。
速率限制
每个顶级命名空间每分钟 webhook 可被调用的次数。限制取决于您的计划和订阅中的座位数。
| 计划 | GitLab.com 默认值 |
|---|---|
| GitLab 免费版 | 500 |
GitLab 高级版,99 个座位或更少 |
1,600 |
GitLab 高级版,100-399 个座位 |
2,800 |
GitLab 高级版,400 个座位或更多 |
4,000 |
GitLab 旗舰版和开源项目,999 个座位或更少 |
6,000 |
GitLab 旗舰版和开源项目,1,000-4,999 个座位 |
9,000 |
GitLab 旗舰版和开源项目,5,000 个座位或更多 |
13,000 |
安全策略限制
您可添加到安全策略项目的最大策略数量。这些限制分别适用于每种策略类型。例如,您可以在同一个安全策略项目中拥有五个合并请求审批策略和五个扫描执行策略。
| 策略类型 | 默认限制 |
|---|---|
| 合并请求审批策略 | 每个安全策略项目五个策略 |
| 扫描执行策略 | 每个安全策略项目五个策略 |
| 流水线执行策略 | 每个安全策略项目五个策略 |
| 漏洞管理策略 | 每个安全策略项目五个策略 |
其他限制
| 设置 | GitLab.com 默认值 |
|---|---|
| Webhook 数量 | 每个项目 100 个,每个组 50 个(子组 webhook 不计入父组限制) |
| 最大负载大小 | 25 MB |
| 超时 | 10 秒 |
| 并行 Pages 部署 | 高级版:100 个额外部署,旗舰版:500 个额外部署 |
有关 GitLab 自托管实例的限制,请参阅: