按照惯例,22号gitlab官方博客宣布有一个新的月度版本GitLab 15.5 的发布,新版本带来了GitLab Cloud Seed、内容编辑器自动补全建议、错误跟踪 Open Beta、操作容器扫描等。更多功能请和虫虫一起学习。
概述
新版本立足于提高开发者体验、增强安全和增强集成:
开发者体验
让开发人员和用户更轻松
GitLab 和 Google Cloud 客户现在可以使用单一平台迁移到云端。内容编辑器中的自动补全建议提供了方便的快捷方式,并且现在可以在带有错误跟踪(Beta)的同一仪表板中轻松访问错误和其他可观察性数据。GitLab Runner 15.5是一个轻量级、高度可扩展的 ,将 CI/CD 作业结果发送回GitLab 实例。
加强安全
设计安全
漏洞报告通过Operational Container Scanning更加强大,当双因素OTP 尝试错误时,用户现在将立即收到电子邮件通知。依赖项扫描提高了Go 依赖项的准确性,以获得更准确的软件材料清单 (SBOM),而符合 FIPS 的Kubernetes 集成确保了美国 机构和供应商的合规软件。
增强的集成
打造更好的体验
GitHub 项目导入器现在可以导入拉取请求事件并将它们添加到合并请求的元数据中,并从发布说明和评论中导入GitHub 项目镜像资源和其他附件。此外,还可以将GitLab 实例配置为使用带有OAuth 2.0 客户端凭据流的Microsoft Graph API发送电子邮件。
GitLab 15.5 中的主要改进
使用 GitLab Cloud Seed 将应用部署到 Google Cloud
Cloud Seed 允许 GitLab 和 Google Cloud 客户使用单一平台迁移到云,在不减慢云采用过程的情况下整合他们的技术堆栈。
Cloud Seed 内置于 GitLab Web UI 并利用 CI/CD 管道功能。它专门为使用 Google Cloud 服务、支持服务帐户、Cloud Run和Cloud SQL提供顺畅的开发人员体验而定制。
为了开发此功能,GitLab 与 Google Cloud 合作构建一流的体验,以简化、自动化并因此加速云资源配置、部署自动化和配置。Google Cloud 和 GitLab 在一个开源模型中合作,使 Cloud Seed 可供付费和免费用户使用。
Cloud Seed 易于使用且易于访问的格式推动了用户对云的有机采用。由于它是一种无摩擦的开源工具,因此开发人员和产品团队可以使用 Google Cloud 服务来补充其领导层的云采用工作,从而实现公司范围内的有机转变。因此,GitLab 看到越来越多的自下而上地采用云服务。
内容编辑器中自动补全
GitLab Flavored Markdown 为引用 GitLab 特定项目(如内容中的用户、问题、史诗甚至表情符号)提供了方便的快捷方式。例如,可以键入#35266链接到该问题或:thumb查看拇指表情符号列表。现在,当使用内容编辑器时,可以访问同样强大的自动完成建议
错误跟踪公开测试版
在 GitLab 15.5 中,Open Beta为 GitLab SaaS重新启用了 GitLab集成错误跟踪。新版本中重新设计了架构,使其使用新的 Observability 后端,利用ClickHouse 数据库作为统一的数据存储。这种改进将为用户提供扩展和更高性能的系统。
此外,这为在与其他可观察性数据(如指标、跟踪和日志)相同的数据库中存在错误奠定了基础。允许用户在与其他可观察性数据相同的仪表板上查看错误,并使它们能够嵌入到问题和事件中。
在环境概览页面中按环境名称搜索
现在可以按名称搜索环境页面中的环境列表。以前,没有搜索功能。这有时需要滚动浏览许多页面才能找到特定环境及其最新部署。现在,可以通过在搜索栏中输入名称轻松找到环境。请注意,可以搜索环境名称的完全匹配或部分匹配。尚不支持通配符。
用于获取项目转移位置的 API接口
新添加了一个新的 Projects API 接口,该接口 返回可以将指定项目转移到的组列表。以前,可以从下拉列表中选择要将项目传输到哪个组,其中不包括通过组共享提供的组。现在,新接口 确保这些组也包括在内。
使用带有客户端凭据流的 Microsoft Graph API 传递电子邮件
如果在 Azure AD 中启用了安全默认值,则 TP 的旧身份验证协议将被阻止。
现在可以将 GitLab 实例配置为使用带有OAuth 2.0 客户端凭据流的Microsoft Graph API发送电子邮件。
从 GitHub 导入项目时导入更多关系
在从 GitHub 导入项目期间导入所有支持的关系可能需要很长时间,并且默认情况下处于禁用状态。具体来说:
镜像资源和其他附件类型。发布事件。拉取请求事件。所有拉取请求和问题评论(在 GitLab 14.2 中提供。)现在,可以在需要时将这些附加关系包含在导入中,这会减慢导入速度,但会包含更多信息。要导入其他关系,请转到 GitHub 导入页面并选择Advanced import settings下的相应复选框。
通过用户 API 修改用户的提交电子邮件
以前,只能在 UI 中修改用户的提交电子邮件。现在,管理员可以使用用户 API 修改提交电子邮件并将其作为批量操作执行。
extern_uid使用 API更新组成员的 SAML 和 SCIM(2)
以前,如果组成员的 SAML 或 SCIM 标识符(也称为 NameID)发生更改,更新它的唯一 是让用户取消链接并手动重新链接他们的 GitLab 和 SSO 帐户。现在,组所有者可以extern_uid使用组 API 中的新端点更新 GitLab 中 SAML 和 SCIM 身份的字段以匹配 SSO 标识符。
按健康状况过滤问题(ULTIMATE)
想象一下,需要快速查看当前里程碑中存在风险的问题。问题健康状况提升到了一个新的水平,通过这一改进,用户现在可以过滤具有特定健康状况的问题。
在路线图中显示阻塞Epic(ULTIMATE)
自 15.0 发布链接Epic以来,可以显示Epic之间的阻塞关系。通过这项额外的改进,现在可以从路线图视图中查看该阻塞关系。
保留对wiki 页面的未保存更改
当在Web 浏览器中编写长格式内容时,任何事情都可能发生。意外点击可能会关闭选项卡、浏览器可能会崩溃,或者计算机可能会耗尽电池电量。在 GitLab 的许多区域中,尚未发布的内容会保存在本地,以防止数据丢失。在评论问题和合并请求时,可以看到这一点。现在可以更轻松地了解未保存的 wiki 页面更改以相同的方式保存。
显示所有可用的团体Runner
在组runner列表中,现在可以查看所有共享跑步者、来自父组的runner以及管理的runner。以前,只能查看自己管理的runner。此更改提供了对团体跑步者的更全面的概述。
在作业 API 端点中公开 CI/CD 作业令牌范围状态
从 GitLab 14.4 开始,可以限制 CI/CD 作业令牌的访问范围,以实现更安全的CI_JOB_TOKEN工作流程。但是,如果想确定是否在项目中启用了该设置,则唯一的选择是手动进入项目的设置。从 GitLab 15.5 开始,可以检查来自和API 端点的响应/jobs,并以编程方式验证设置的状态。/deployments/environments
将代码质量与经过身份验证的私有镜像注册表一起使用
代码质量扫描器下载并运行容器镜像来扫描的代码。
以前,可以从自定义镜像注册表中提取这些镜像,但不能使用需要身份验证的私有注册表。
现在,可以在包含代码质量 CI/CD 模板时通过设置 CI/CD 变量来提供注册表用户名和密码。
在 Releases 页面中创建带注释的标签
现在可以创建带注释的标签并将它们添加到发布页面中的发布中。可以使用带注释的标签为下游用户和应用程序提供有关发布的附加信息。
使用Release CLI 更新版本
在这个里程碑中,添加了使用 Release CLI 更新版本的功能。可以通过直接从文件更新任何发布属性.gitlab-ci.yml并利用 CI/CD 管道来实现自动发布。
kubectl对 CI/CD 工作流程的更多要求
如果在GitLab SaaS 上使用GitLab Kubernetes 和 GitLab CI/CD,以前无法使用kubectl exec、attach或cp调用。GitLab 现在在 SPDY 协议之上支持这些调用。现在可以在 CI 作业中使用kubectl exec、attach或cp。
不幸的是,一些云提供商不支持 SPDY。GitLab正在与 Kubernetes 社区合作,在 Kubernetes 中提供 Websockets 支持,这将成为许多云托管 GitLab 实例的解决方案。
Geo 现在***事件度量镜像(PREMIUM)
在此版本中,Geo 支持事件度量镜像的***和验证。如果将Geo 用作灾难恢复策略的一部分,这可以防止在故障转移期间丢失此数据。
防止用户创建组的管理区域设置
GitLab 管理员现在可以使用管理区域来禁用用户创建顶级组的权限。以前,有权访问实例文件系统的管理员只能在gitlab.rb文件中更改此设置。
从GitHub 导入时导入和存储附件
现在可以从发行说明和评论中导入GitHub 项目镜像资源和其他附件类型。附件被添加到 GitLab 并且它们的链接被更新到新的GitLab URL。
默认情况下不导入附件,因为它可能是一项耗时的操作。要导入它们,请转到 GitHub 导入页面,并在使用 GitLab UI 导入时选择高级导入设置下的导入 Markdown 附件。
从 GitHub 导入拉取请求和发布事件
通过向迁移的项目添加更多元数据来继续改进 GitHub 项目导入器。通过添加拉取请求事件历史记录,可以从 GitHub 导入以下拉取请求事件并成为合并请求元数据的一部分:
关闭或重新开放。标记或未标记。已请求审核或已删除审核请求。已分配或未分配。已编辑。通过添加问题事件历史记录,可以从 GitHub 导入以下问题事件并成为问题元数据的一部分:
关闭或重新开放。标记或未标记。添加或删除里程碑。交叉引用。已分配或未分配。重命名。因为导入拉取请求和问题事件可能需要很长时间,所以默认情况下不会导入它们。要导入它们,请转到 GitHub 导入页面,然后在使用 GitLab UI 导入时在高级导入设置下选择导入问题和拉取请求事件。
个人访问令牌 API 的新过滤器
在此版本之前,用于检索个人访问令牌 (PAT) 的 API 调用是相对基本的。现在,可以过滤许多属性的结果并将过滤器链接在一起以对参数进行复杂的过滤,例如:
上次使用令牌的时间。如果令牌被撤销。令牌的名称。这些针对 PAT 的新 API 过滤器为用户和管理员提供了来自 PAT API 的更有用的结果。
为任务添加标签和日期
现在可以向任务添加日期和标签,以更好地反映与任务相关的其他上下文。可以在项目、组或仪表板问题列表中按标签筛选任务或按截止日期对任务进行排序。
使用预定义的 DORA 比较报告提高 DevOps 效率(ULTIMATE)
在最近发布新的 DORA Insights 自定义报告之后,在默认的洞察配置文件中添加了一个预定义的报告。新报告可视化了过去 180 天内四个 DORA 指标的表现,按月和日汇总。
该报告可帮助了解 DORA 框架,了解如何使用这些指标,并了解它们在真实数据上的表现如何。
对所有贡献执行开发者原产地证书(PREMIUM)
开发者原产地证书 (DCO) 是由贡献者进行的每次提交签名,表明他们有权向项目提交代码。通过签署提交,贡献者同意在developercertificateorg上发布的条款。
现在,可以通过按项目设置轻松执行此开发人员证书,以防止贡献者贡献违反许可的代码。启用后,所有新提交都必须在提交消息中以一行的形式包含此类原产地证书Signed-off-by:。
在管理区批量删除Runner
当需要可视化或管理大型数据集时,批量编辑是一项强大且有价值的功能。对于管理一组运行器的管理员来说,缺少批量删除选项会消耗生产力并增加维护运行器的运营开销。现在,在管理区域中,可以选择多个跑步者并同时删除它们。还可以一次选择和删除一整页跑步者。
在管理区和组跑步者页面中显示Runer所有者
对于 GitLab 管理员或组所有者,在组或项目级别使用许多运行器的环境中,查找特定运行器的所有者可能非常耗时。如果有问题的跑步者没有接手工作或关键的生产工作运行缓慢,这个问题对客户来说更加严重和影响更大。Admin Area 和 group runners 页面现在包含一个owner列,因此可以快速确定环境中任何 runners 的所有者,一目了然。
从 CI/CD 管道变量中的标签访问发布描述
在过去的版本中,没有简单的 来配置引用版本的管道或与标签关联的版本说明。现在,可以使用两个预定义的环境变量来引用此信息:$CI_COMMIT_TAG_MESSAGE和$CI_RELEASE_DESCRIPTION.
防止过时的部署作业
以前,即使Skip outdated deployment jobs启用了某些过时的作业,也可以手动启动或重试。新版本更新了此设置的逻辑,以便在作业开始时检查部署状态。如果部署作业由于较新的部署而过时,则该作业不会执行。此检查可确保不会意外启动过时的部署作业,从而覆盖生产中最近的代码更改。
符合 FIPS 的 Kubernetes 集成
美国 要求一些 GitLab 客户使用符合 FIPS(联邦信息处理标准)的软件。现在可以在启用了FIPS 的 GitLab 安装上使用Kubernetes 。此版本还添加了agent可安装在集群上的符合 FIPS 标准的镜像。
按环境部署层限制 Kubernetes 的
Kubernetes 管理员现在可以使用 Kubernetes ,通过 RBAC限制对特定环境层的 CI/CD 访问。
在过去的版本中,管理员无法限制对特定层的访问,这给 Kubernetes 集成增加了潜在的安全风险。
Geo 现在***警报指标图(PREMIUM)
如果用作灾难恢复策略的一部分,Geo 现在支持***和验证警报指标图,以防止数据丢失。
改进了高级搜索的代码搜索质量(PREMIUM)
此版本提高了高级搜索的代码搜索质量,使其更接近本地 IDE 体验。现在可以期待完整标记和一些部分标记的更相关结果以及具有特殊字符的搜索词的更好匹配。
如果在GitLab 15.4 及更早版本中创建了索引,则必须更新代码搜索映射。可以使用零停机时间重新索引或从头开始重新创建高级搜索索引。
Omnibus套件
GitLab 15.5 中Omnibus套件包中变化有:
Mattermost 升级到了7.3,具有新的基于角色的 Boards 权限系统以及独立于频道创建板的能力,多个 Playbook 增强功能,包括重新设计的左侧边栏和运行详细信息页面等等。此版本还包括安全更新,建议从早期版本升级。
新建Raspberry Pi OS 11 Bullseye的软件包。
新建了对Ubuntu 22.04的支持软件包。
一些用户需要 SSL 密钥受密码保护的能力。
GitLab 15.5 将nginx['ssl_password_file']配置添加到gitlab.rb文件.
GitLab Runner 15.5
同期发布了,Gitlab CICD客户端GitLab Runner 15.5。
在跟踪日志中屏蔽个人访问令牌
FIPS GitLab Runner 丢失pgrep。
GitLab 图表改进
在 15.4 发布的帖子中,宣布GitLab Logger将默认用于 15.5 中的 GitLab Helm Chart。此实现已延迟到 15.6。对于拥有自定义日志解析器的用户,请注意,这将自动将所有日志从纯文本包装到结构化 ON。
Cloud Native GitLab将用alpine-certificatesgitlab-base.为了防止 Alpine 和 Debian 之间的差异行为,并提高容器间的一致性,我们将在gitlab-base. 这意味着运营服务容器将共享一个公共根层,从而提高 Pod 实例化时间的效率。这对用户的影响是我们将更改使用的镜像名称和标签。我们将在短时间内维护镜像标签。
GitLab Helm Chart 将在下一个主要 GitLab 版本之前发布一个新的主要版本,与整个下一个主要版本分开。我们不确定下一个 Helm chart 主要版本何时发布,但预计不会早于 3 个里程碑,但可能会更长。这个主要的 Helm 图表版本将需要停机,因为我们包含大量更新并且需要手动干预升级路径。
安全和合规性
扫描执行策略的规则模式
Rule Mode除了Yaml Mode以前可用的之外,GitLab 现在还支持通过 UI 编辑扫描执行策略。这个新的可视化编辑器使构建策略变得容易,即使对于非技术用户也是如此。策略可用于要求安全扫描按计划运行或作为项目管道的一部分运行。要开始使用,请让项目所有者在“安全与合规”>“策略”页面上链接关联的安全策略项目。
两因素 OTP 尝试错误时的电子邮件通知
在启用了双重身份验证 (2FA) 的帐户上,输入正确用户名和密码的不良行为者仍必须输入正确的一次性密码 (OTP) 才能访问该帐户。但是,用户不会知道输入了错误的代码。
现在,当输入错误的 OTP 时,用户会立即收到一封电子邮件,通过通知他们他们的帐户可能会受到威胁来提高安全性。
操作容器扫描
GitLab 现在正式支持在操作或生产 Kubernetes 环境中对容器镜像进行漏洞扫描。可以通过GitLab Agent for Kubernetes的配置文件设置扫描,也可以通过创建扫描执行策略来要求扫描以常规节奏运行。
结果显示在项目的“操作漏洞”选项卡下的“漏洞报告”页面上,以及“安全”选项卡下的“基础架构”>“Kubernetes 集群”>“ ”页面上。要开始使用,请确保已安装GitLab Agent for Kubernetes ,并且在 配置文件或扫描执行策略中定义了扫描节奏。
更改 DAST API 和 API Fuzzing 扫描的内部接口(ULTIMATE)
在以前版本的 GitLab 中,DAST API 和 API Fuzzing 扫描使用固定的内部端口在后端组件之间进行通信。在某些用户配置中,这会导致与另一个配置的服务发生冲突。在 GitLab 15.5 中,可以使用DAST_API_API_PORT和FUZZAPI_API_PORT变量来配置扫描仪在冲突时使用的内部端口号。
在合并请求管道中运行安全扫描工具
GitLab 应用程序安全扫描在 CI/CD 管道中运行。默认情况下,扫描作业仅在分支管道中运行。
现在,还可以通过切换到 CI/CD 模板的最新版本而不是稳定版本来在合并请求 (MR) 管道中运行扫描。如果围绕 MR 事件设计 CI/CD 管道,这将更容易使用安全扫描。
计划在 GitLab 16.0 中使用此更改更新稳定模板。
请注意,最新模板可以在任何版本中接收重大更改。要了解有关稳定和最新模板的更多信息,请参阅CI/CD 模板版本控制文档。
依赖扫描提高了 Go 依赖的准确性(ULTIMATE)
GitLab Dependency Scanning 现在使用一种检测 Go 依赖项的新 ,该 比以前的 更准确,并允许用户扫描应用程序实际使用的依赖项的正确版本。
静态分析分析器更新
GitLab 静态分析包括GitLab 静态分析团队积极管理、维护和更新的许多安全分析器。在 15.5 版本里程碑期间发布了以下分析器更新。这些更新带来了额外的覆盖范围、错误修复和改进。
更新了 Brakeman 分析器以修复误报检测中的崩溃。CodeClimate 分析器已更新至版本 0.87.0。更新了 Kics 分析器以添加其他规则、修复错误并更新到 kics 版本 1.6.0。更新了 Node Scan 分析器以修复错误日志处理问题。PMD-Apex 分析器更新到版本 6.49.0。机密分析器已更新至 Gitleaks 版本 8.12.0。安全代码扫描分析器更新到版本 5.6.7。Semgrep 分析器更新到版本 0.115.0。更新 GitLab 管理的规则以删除误报结果:Java SQL 注入C# LDAP 注入C# XPath 注入修复了基于 Semgrep 的 C# 扫描创建重复结果而不是将它们与基于安全代码扫描的扫描结果相结合的问题。SpotBugs 分析器更新到版本 4.7.2。如果包含 GitLab 管理的 SAST 模板(SAST.gitlab-ci.yml),则无需执行任何操作即可接收这些更新。但是,如果覆盖或自定义自己的 CI/CD 模板,则需要更新 CI/CD 配置。
要保留在任何分析器的特定版本上,可以固定到分析器的次要版本。固定到以前的版本会阻止接收自动分析器更新,并要求在 CI/CD 模板中手动调整分析器版本。
Bug修复
15.5 中一些值得注意的错误修复是:
当结果超过 100 个时逐步加载 CI/CD 变量;
Container Registry 仅显示每个镜像 100 个标签;
找不到带有大写字符的 NuGet 包;
组权限不允许项目在命名空间之间移动;
允许登录页面的自定义徽标;
为组启用 2FA 设置时未显示无效的当前密码错误;
如果 createAlert 多次关闭,则修复崩溃;
通过负缓存修复高内存消耗的可能性;
使用 配置修复 KAS CI/CD 隧道以适用于组外的项目/组;
Wiki 富文本编辑器保留列表和表格之间的新行;
设置为项目登录页面的 Wiki 页面正确显示 Asciidoc 链接;
Wiki 源代码和富文本编辑器之间切换时转换 PlantUML 代码块中包含的unicode 字符;
审计事件中缺少开发人员的过滤器栏;
由于导出合并请求时出错,Import/Export 无法导出项目;
GitLab 迁移系统性失败,某些数据未迁移;
如果实体失败,则将 BulkImports::Tracker 设置为跳过;
GitHub 导入:导入状态端点中导入的问题数量不正确;
达到 GitHub API 速率限制时,导入的 GitHub 存储库缺少对象;
GitLab UI 中不正确的“环境”API 端点路径导致“获取环境信息时出错”;
删除帐户所有者会导致组没有所有者;
列出具有批准者的合并请求并按合并日期排序时出现 HTTP 500 内部服务器错误;
在组级别,空的合并请求搜索结果视图不包括按钮、搜索栏和选项卡;
在已批准的 MR 上选择批准合并请求时,完成审核失败;
合并按钮为红色,管道小部件卡在“检查管道状态”,但最后一个管道为绿色;
Sidekiq/StoreSecurityReportsWorker 中的数据库超时;
如果没有为键分配值,则忽略一般的允许列表 CVE;
扫描执行规则模式未针对无效的 cron 语法禁用或 cron 语法规则模式不支持;
扫描执行策略编辑器 UI 在保存之前错误地验证策略;
更改安全策略项目时,策略列表抽屉保持打开状态;
编辑组安全策略未禁用的 DAST 配置文件;
路线图:显示为顶级Epic的子Epic;
将子Epic移出父史诗时,在前父Epic中没有移动的信息;
为已注销的用户加载子问题和史诗时出现Epic错误;
项目自动完成成员/命令 NoMethodError;
当 todo 的 target_type 是 WorkItem 时,TODO API 失败;
按里程碑过滤路线图返回“获取Epic时出现问题”;
GraphQlAstPrinter 不会转义 API 安全字符串值;
API 安全GraphQL Schema 不支持没有路径的 GraphQL 端点;
减少API Security XML 外部实体漏洞误报;
审核员看不到组 CI/CD Runner;
按排除扩展名搜索仅排除之一个扩展名;
防止用户在高级搜索设置中输入负数的副本;
壁球提交消息不遵守正则表达式设置;
500 查看单个大提交时出错;
代码所有者批准者列表未正确显示;
Geo:如果有多个并行 ;Omnibus 备份/恢复进程,就会出现问题;
性能改进
GitLab 15.5 中,在问题、项目、里程碑等提供了性能改进:
将 stylesheets/pages/clusters.scss 转换为特定于页面的 bundle。
在清理策略中使用 Container Registry API 返回的创建时间戳。
冗余漏洞::StateTransition 记录实际上不呈现状态转换。
加载特定Epic非常慢,参与者失败。
将 API 安全分析器迁移到 .NET 6。
可用性改进
GitLab 15.5 中,在问题、项目、里程碑等提供了可用性改进:
改进包设置加载屏幕;
删除最后一个包资产时改进模态副本;
将问题操作与活动提要分开;
改进了活动提要中评论的布局;
从活动源中删除用户状态和可用性;
使用“查看最新项目”从管理仪表板导航时将排序顺序更新为“上次创建”;
增强漏洞报告上的活动菜单;
如果初始个人访问令牌提交不成功,请改进提交按钮的行为;
更容易遍历作业日志中的错误;
Scheduled计划管道的管道详细信息页面中缺少标记;
功能变更和删除
GraphQL 字段机密更改为内部注释;
漏洞发现关闭 GraphQL 突变
关于升级到 GitLab 15.5 的重要说明
Geo 中检测到一个问题,即从具有 的辅助站点克隆的运行器无法找到新的管道 refs。这会影响具有以下配置的 GitLab 14.9、14.10 和 15.0:
启用统一URL。
Runner在辅助站点注册。
一种解决 是将 GitLab Runners 引导到主站点。这可以在 DNS 级别完成。配置流量策略以将来自统一 URL 的运行器位置的所有请求定向到主站点。为了与所有其他数据类型保持一致,Container Registry ***现在利用Geo 自助服务框架。这是一个幕后的变化,它将使未来的支持和维护更容易。无需采取任何行动。
GitLab 15.5 自动迁移停用休眠用户时段应用程序设置为至少90 天。此更改强制实施最少 90 天的不活动限制,然后用户才会被视为处于休眠状态并自动禁用他们的帐户。此最小值可确保良好的用户体验并符合 GitLab 计费策略。最近的一项更改允许此功能设置可配置的限制,但没有设置 0 天的最小阈值。