GitLab 13.10发布:DevOps增强和漏洞管理等

一如既往,Gitlab今天发布了有一个新版本 13.10。本次发布的重点是对整个产品的可伸缩性和可管理性上,以方便用户可以更快地迭代和创新,并具有更高的安全性和更少的麻烦。13.10提供了管理方面的增强功能,可帮助组织中扩展DevOps,GEO包完整性验证以改善灾难恢复,漏洞管理自动化以将效率和一致性应用于安全流程等功能,更多请随虫虫一起学习。

概述

虽然DevOps的不断流行,如何管理DevOps成了挑战。GitLab 13.10引入了一些新功能,可以自动执行日常任务,提高效率并在组织内发展DevOps,而又不会失去控制。GitLab新增加了API用于增强了对DORA指标的支持,以在项目级别跟踪更改的提前期(通过合并请求),并在组级别通过API跟踪了部署频率指标,因此可以在跨级别跟踪和识别阻止者项目组合。

对可能出现问题的问题,新添加了工具来帮助集成和管理来自多个监控解决方案和告警。13.10还通过自动验证已复制Package Registries和复制组Wiki的数据完整性,增强了使用GitLab Geo的客户的灾难恢复(DR)。

在13.10中,安全团队着重于减少管理和共享漏洞的开销。批量状态更新使安全团队可以同时修改多个漏洞的状态。为了帮助您快速识别和分类相关信息,我们在漏洞报告中引入了可点击的文件和行号链接,这些链接可将您直接与相关的漏洞详细信息进行深度链接。漏洞趋势图的交互性还做了增强,使查找和共享信息更加容易。

在GitLab 13.10中发布的主要功能

从标签创建发布

之前版本已经支持新标签创建发行版。在GitLab 13.10中,可以通过选择现有标签来创建发布,这将在计划发布时为提供更大的灵活性。

在.gitlab-ci.yml中定义环境类型

在GitLab 13.10中,新引入了一个.gitlab-ci.yml环境type关键字,该关键字可以用来显式定义环境类型和名称。支持的环境类型可以是:production,staging,testing,development,或other。这是组级环境管理迈进的第一步,这是将职责分离以部署到生产环境的能力。这种新配置还将为用户提供传统使用的生产环境命名约定更大的灵活性,该约定用于在GitLab中确定不同的度量标准,例如Dora4度量标准和Value stream Analytics。

将任何IT警报工具与GitLab集成(PREMIUM及以上)

警告集成是事件管理工作流程中的关键部分。管理工具之间的集成非常困难,尤其是当某些监视工具(例如Nagios,Solarwinds等)提醒服务时。

在新版本的GitLab中,可以为每个集成的监控工具创建具有唯一身份验证令牌的多个HTTP端点。为每个监视工具设置具有唯一身份验证令牌的HTTP端点时,团队可以单独管理每个工具,而不会影响其他工具的警报,也可以通过重置单个身份验证令牌来取消所有警报!

对于创建的每个HTTP接口,可以在GitLab用户界面中设置每个外部告警格式,并确保告警发出正确的位置和有关的数据。通过将其粘贴到GitLab中,为工具提交一个示例有效模版,将有效负载中的字段映射到GitLab告警属性,告警将显示一致的信息,无论其来源如何。

基于DORA4的变更提前期(ULTIMATE)

在GitLab 13.9中,添加了对基于DORA4的Deployment Frequency的支持。在此版本中,新增加了API,用于在项目级别进行更改(通过合并请求)的前置时间。更改的提前期可以指示代码提交和部署到生产环境所花费的时间。了解和跟踪这些数据是持续改进DevOps流程的一个很好的起点。

API模糊测试图形配置屏幕(ULTIMATE)

进行API模糊测试非常困难,其配置设置不好记忆,而且无法编码到管道中。为了简化操作,新引入了一个新的用户界面,以方便API模糊测试设。

可以在API模糊测试配置屏幕中输入所需的设置,而不用在管道文件中输入。完成后,该页面将为提供一个片段,可以将其复制到.gitlab-ci.yml文件中,甚至可以根据需要启动合并请求。这有助于指导将正确的配置添加到自己的管道中,从而比以前更快,更有效地开始进行API模糊测试。

在GitLab中查看Jira问题详细信息(PREMIUM及以上)

新版本中Jira问题列表功能的用户可以直接在GitLab内部查看问题的详细信息。该MVC使开发人员可以查看问题的详细信息,标签和评论,使他们能够在处理Jira问题时留在GitLab中。

这个更新的目标是使开发人员在一天的大部分时间内都可以停留GitLab中,无需去Jira才能了解到信息。

GitLab 13.10中,如果启用功能标记,则此功能可用。在GitLab 13.11中将默认启用此功能。

对Jira Cloud应用程序的改进

现在,可以使用Atlassian Marketplace上的GitLab for Jira Cloud应用程序,将的Jira Cloud项目数据与GitLab同步。该插件在“Jira开发面板”中显示有关分支,提交,合并请求,部署和功能标志的信息。使用它可以查看正在进行的工作的当前状态,然后快速导航回到GitLab内部的那些页面。

对触发器作业使用“并行:矩阵”

可以使用parallel: matrix关键字来并行运行作业多次,为作业的每个实例使用不同的变量值。不幸的是,不能将其与触发器作业一起使用。在新版本中,还扩展了并行矩阵功能以支持触发器作业,因此您可以使用每个下游管道的不同变量值并行运行多个下游管道(子管道或多项目管道)。这使可以配置更快,更灵活的CI/CD管道。

组级API对部署频率的支持(ULTIMATE)

在以前版本中在项目级别添加了对“部署频率”的支持。新版本将API的支持扩展到了组级别。这使用户可以全面了解项目和团队之间的部署频率,从而可以更准确地评估其效率。

管理员模式:重新认证以进行GitLab管理

打不开现在包括管理员模式,它可以帮助管理员从一个帐户安全地工作。当“管理模式”未处于活动状态时,管理员具有与普通用户相同的特权。在运行管理命令之前,管理员用户必须重新验证其凭据。管理员模式通过保护敏感的操作和数据来提高实例安全性。此功能可在功能标志后面使用:user_mode_in_session。

价值流分析的水平导航(PREMIUM及以上)

组级别价值流分析中的垂直价值流阶段已由水平布局取代,以帮助可视化价值流各阶段的工作流程。此更改将在页面上创建更多空间,以便将来添加其他图形和指标。此外,现在,使用一种新的表单就可以更轻松地创建和编辑价值流,该表单允许在一个步骤中创建价值流和所有阶段。在表单中,可以添加预配置的阶段,或创建自定义阶段。

通过评论中的全名进行搜索和自动完成

GitLab用户使用其全名作为用户名并不常见。这使得很难找到要@提及的人,因为自动完成功能在匹配全名或用户名方面做得不好。作为使自动完成变得更智能的第一步,现在可以更轻松地根据用户名或全名搜索人员。

API描述模板:问题和合并请求(PREMIUM及以上)

设置问题和合并请求的默认描述模板对于确保用户在创建这些项目时提供正确的内容非常有用。当有许多项目配置每个模板或在所有项目中更新它们时,该过程可能是手动的,容易出错且耗时的。

使用可用于项目API的新属性issues_template和merge_requests_template属性,可以针对所有项目自动设置并保持这些模板为最新。

在Visual Studio Code中克隆项目

使用Visual Studio Code IDE(VS Code)时,可能需要在本地计算机上没有的代码存储库上工作。之前,克隆项目需要离开编辑器几个步骤:在GitLab中找到该项目,复制其克隆链接,将其克隆到本地计算机中,最后在VS Code中将其打开。

有了GitLab Workflow扩展,现在可以使用Git: Clone VS Code中的命令来完成所有这些操作,而无需离开编辑器。使用此命令在GitLab中搜索项目并克隆它们,以便可以快速开始贡献。

合并请求标记为完成时通知参与者

准备好合并请求后,可以通过将其标记为完成并删除草稿状态来表示已准备好进行审核。但是,将合并请求标记为已准备好并没有通知其他参与者合并请求已准备好供其审核。

现在,将合并请求标记为就绪时,将向合并请求的参与者发送通知。

在列表视图中显示摘要中的文件数

GitLab 13.5引入了创建包含多个文件的代码片段的功能。但是,无法在列表视图中标识这些多文件片段。需要打开每个代码段,以区分名称相似的代码段,或通过包含多少个关联文件来推断所包含的数据类型。

现在,每个摘录中包含的文件数将显示在列表视图中,因此可以在打开该信息之前对其进行访问。

嵌套变量扩展

有时,需要在.gitlab-ci.yml文件中定义一个变量,然后在另一个变量定义中使用它。我们正在引入新的嵌套变量扩展功能。启用后,GitLab会递归排序和扩展作业变量,然后再将最终输出发送到运行程序以执行作业。通过这种特定的排序,可以按正确解析的顺序将变量从GitLab CI/CD发送到运行程序。现在,可以轻松地在.gitlab-ci.yml文件中的其他变量内使用变量。

简化npm软件包的命名约定

在将npm软件包发布到项目的Package Registry时,之前必须使用命名软件包,@scope/package-name以便范围与项目的根工作区(包括案例)完全匹配。例如,如果项目路径为/Acme/project_a,则在发布软件包时,必须将其Acme作为作用域。

由于公共npm注册表不允许范围内使用大写字母,会有问题。无法使用GitLab软件包注册表。未来,将不再为项目级端点强制执行此命名约定。

值得注意的是,使用实例级端点仍然需要使用名称空间的确切(区分大小写)。

将依赖代理与'containerd'和Docker 20+一起使用

GitLab依赖项代理是一个本地代理,可以将其用于Docker Hub中经常访问的上游映像。在CI/CD的情况下,依赖代理接收请求并从注册表中返回上游映像,用作Pull的高速缓存。这有助于减少CI分钟并提高可靠性。

但是,由于无法按摘要提取镜像,而作为摘要的不可变标识符可确保使用的是特定镜像和标签的确切版本。由于containerd Docker 20+和Docker 20+都依赖于摘要,因此许多人都无法使用Dependency Proxy。

在新版本中可以按摘要从Docker Hub提取容器映像。可以通过将URL添加到.gitlab-ci.yml文件,从命令行手动拉取图像或使用Dockerfile来使用依赖代理。

API模糊测试支持OpenAPI v3文件(ULTIMATE)

API模糊测试现在支持OpenAPI v3规范文件。这使可以直接使用项目已拥有的OpenAPI规范,而无需将其降级为OpenAPI v2。提供OpenAPI v3文件的方式与提供OpenAPI v2文件的方式相同,作为文件中FUZZAPI_OPENAPI变量的一部分.gitlab-ci.yml。

合并请求中可折叠环境的可折叠列表

合并请求(MR)是开发人员的唯一事实来源。MR包含开发人员需要的所有内容,以便进行代码更改,协作,完成代码审阅并将代码合并到目标分支。

为了提高可用性,在此版本中,如果的MR现在已部署到四个以上的部署中,则部署列表将被折叠。在拥有众多已部署环境而导致MR页面过长并要求上下滚动页面以查看所有内容的情况下,此功能特别有用。

将Kubernetes代理服务器配置为核心GitLab配置的一部分(PREMIUM及以上)

虽然GitLab管理员可以将Kubernetes Agent Server与他们的GitLab实例一起安装,但截止目前,还缺少许多配置选项。在新版本中,GitLab管理员可以在核心GitLab配置文件(config/gitlab.yaml)中指定代理服务器的外部和内部URL以及它们的操作状态(启用或禁用)。GitLab将在与代理服务器的每次交互中使用这些配置值。

Geo支持复制组Wiki(PREMIUM及以上)

Geo现在支持对组Wiki复制点,从而允许分布式团队从最近的Geo站点访问,从而减少了延迟并改善了整体用户体验。此外,当故障转移到辅助站点时,也可以从辅助站点还原该数据。

Geo验证复制的软件包文件(PREMIUM及以上)

Geo会自动验证复制的Package Registries的数据完整性。这确保了软件包在传输或静止时不会损坏。如果将Geo用作灾难恢复策略的一部分,则可以保护客户免受数据丢失的影响。

Geo的验证功能通常在Geo的复制框架中实现,计划将文件验证应用于所有其他复制的数据类型,例如LFS文件或附件。

自动删除忙碌状态

设置状态是告知伙伴没功夫的好方法,但是当准备进行更多工作时,很容易忘记删除状态。新版本中可以指定一段时间来应用该状态。无论使用表情符号,状态文本还是“忙碌”指示器显示状态,都将在指定时间段结束时自动清除的状态。

在板上查看Epic(MVC)(PREMIUM及以上)

在GitLab中处理Epic,则很难可视化Epic的工作流程状态。通常情况下,起草或写Epic的时候,都需要使用标签(如Open,Doing或Done)来创建项目计划时密切关注的下一个步骤。

在新版版本中,采用了的发行版功能,并对其进行了优化以查看Epic。现在,可以通过在标签上应用标签或作用域标签,在它们上可视化Epic工作流程状态。

13.10中发布的为Epic Boards的早期版本,其后的是MVC 2和MVC 3,这将实现与发行的对等。

自动重新定位合并请求

可能需要创建链式合并请求,其中第一个合并请求针对一个功能分支,而该功能分支又已经具有一个合并请求targeting main。这是一种常见的工作流程,有助于将合并请求的大小保持较小,以供查看并指示合并顺序。但是,如果合并链中的合并请求并删除其分支,则任何后续合并请求将不再可合并,因为缺少了目标。

新版本中,如果原始目标分支已被删除,GitLab会自动更新合并请求的目标。这样可以确保合并请求可以继续进行审阅和合并,并且合并请求作者或审阅者不需要手动操作。

直接链接到代码行

当可以共享指向特定代码行的链接时,在长文件上进行协作更容易。以前,只能在查看存储库中的文件时链接到行号,新版本中支持在编辑文件的上下文中链接到特定的代码行。

要获取到特定行的链接,请单击装订线中行号旁边的图标,或在行号后附加#L到编辑URL。该链接将打开编辑器,滚动到该行,然后为突出高亮显示它。在单文件编辑器,Web IDE和管道编辑器中尝试一下!

提示:即使UI不支持创建这些链接,还可以通过将一个范围附加到链接上来创建多行链接。

在Visual Studio Code中打开项目

第一次处理项目时,通常会在本地克隆该项目,以开始通过本地编辑器进行贡献。此过程涉及几个步骤:首先获取克隆路径,在系统上找到克隆项目的位置,然后在选择的编辑器中打开该项目。

单击项目的“克隆”下拉列表时,现在可以选择在Visual Studio代码(VS代码)中打开项目。

在VS code中克隆现在是一键式体验:克隆项目,然后开始工作。

在snippets上查看您的代码片段

现在,可以访问snippets.gitlab以访问的代码片段仪表板。这个易于记忆的URL是查看创建的所有代码片段并发现其他公共代码片段的最快方法。

合并请求测试摘要可用性改进

管道中测试或自定义指标的数量增加提供了更多的信心和信息。但是,将它们增加到大量还会降低“合并请求”页面的视觉体验。合并请求测试摘要小部件已得到改进,因此可以更好地区分小部件中的不同测试作业,从而更容易识别哪个作业包含失败的测试。

可以在“测试摘要”小部件中以及在“单元测试”报告中看到解析错误,以识别和解决结构问题并在GitLab中查看测试结果。

用于作业启动和管道创建时间戳的预定义CI/CD变量

以前,如果要引用作业开始或创建管道的确切日期和时间,则需要在脚本中检索这些时间戳。现在,通过使用CI_JOB_STARTED_AT和CI_PIPELINE_CREATED_AT,它们可以很容易地用作预定义的CI/CD变量,并且以ISO 8601格式和UTC时区提供。

轻松访问Gradle设置和安装命令

使用GitLab软件包注册表通过Maven或Gradle发布Java依赖项。发布后,可以导航到Package Registry UI,以查看软件包及其相关的元数据。查看特定的软件包时,可以访问代码片段,以使用Maven配置和安装该软件包。但是目前没有为Gradle用户提供相关的命令。

在新版本中,可以同时复制Maven和Gradle命令,从而提高效率。只需导航到的项目或组的程序包注册表,单击特定的Java程序包,然后复制代码段即可。

API模糊测试参数覆盖(ULTIMATE)

执行API模糊测试时,常见的问题是需要更新或添加API请求中的各个字段以使API请求成功。需要进行此类更改以支持API身份验证,特定于环境的数据等。

该版本扩展了我们现有的覆盖支持,允许更改标题,cookie,查询参数,表单数据,JSON主体数据和XML主体数据。可以使用在运行时提供的静态值来进行更改,也可以通过提供一个脚本来动态地进行更改,在运行扫描时调用该脚本以提供值。使用脚本进行的动态更改允许更新快速过期的身份验证令牌。

定制这些属性既可以提高测试质量,又可以确保测试成功完成。

通知设置“管道成功时合并”

“管道成功时合并(MWPS)”设置为“开”时,合并请求中的所有参与用户都会收到有关此事件的通知。使用GitLab 13.10,现在可以选择使用新的自定义设置退订MWPS通知事件,从而减少不必要的噪音。

高级搜索中的Elasticsearch集群大小估计(PREMIUM及以上)

如果计划启用高级搜索,则需要知道索引的估计大小,以便可以在Elasticsearch中准备足够的存储。在13.10之前,这需要几个不同的步骤来确定总的合并大小。

为了使此操作易于访问,添加了一个Rake命令,该命令汇总所有索引内容并乘以.5以提供建议用于Elasticsearch的估计大小。

默认情况下,Geo信任辅助站点(PREMIUM及以上)

Geo辅助站点使用主站点上的OAuth应用程序执行身份验证。设置新的Geo站点时,默认情况下主站点不信任辅助站点。这意味着任何用户在首次连接时都必须分别确认次级服务器是可信任的。

在GitLab 13.10中,默认情况下,主站点信任由GitLab设置的辅助站点,这可以消除了不必要和可能引起混淆的OAuth对话框。

在具有2GB RAM的小型实例上运行GitLab

GitLab可以使用支持数百至数万个用户的部署。但是,许多社区成员选择仅用于个人用途或用于小型团队来运行GitLab。在那些情况下,可能需要在小型云实例上运行GitLab以节省成本,或者例如使用具有2GB RAM的Raspberry PI 4。

新版本中更新了文档,最少的环境中运行GitLab的详细说明,该环境至少需要2GB的RAM和1GB的交换空间。此配置为减少内存消耗做出了一些明智的选择,例如以单模式运行Puma(节省约300-400MB)并禁用监视堆栈(另外节省200MB)。另外,还对Gitaly以及GitLab处理内存分配的其他设置进行了调整。该配置允许GitLab最多支持5个开发人员,单个Git项目不超过100MB。对于较大的团队规模或如果这些设置不可接受,仍然建议至少4GB的RAM(最多500个用户)以获得最佳性能。

GitLab Runner 13.10

今天还将发布GitLab Runner 13.10。GitLab Runner是一种轻量级,高度可扩展的代理,可运行构建作业并将结果发送回GitLab实例。GitLab Runner与GitLab CI/CD结合使用,GitLab CI/CD是GitLab附带的开源持续集成服务。新版本中:

在Windows上支持通过使用FF_USE_WINDOWS_LEGACY_PROCESS_STRATEGY功能标记启用的正常进程终止。

更新作业日志输出限制超出警告。

Red Hat OpenShift GA的GitLab Runner

GitLab Runner操作员通常可在Red Hat OpenShift容器平台中使用。要在OpenShift上安装GitLab Runner,可以使用GitLab Runner Operator,可从OperatorHub的稳定通道中获得它。Container Platform是一个Web控制台,供OpenShift群集管理员发现并选择要在其群集上安装的操作员。

GitLab Helm chart改进

新增加对GitLab Kubernetes代理服务器(KAS)的支持。

支持将Web服务标签应用于部署创建的所有对象。

在Web服务上设置每次部署blackoutSeconds,以自定义大型实例的关闭

Omnibus的改进

Omnibus集成环境的更新有:

集成的Mattermost升级到了5.32.1,它是开源的Slack替代品,其最新版本包括自定义可折叠通道类别,一些重大更改和其他改进。此版本还包括安全更新,建议从早期版本进行升级。

Debian 10安装部署包中支持ARM64。

GitLab RPM软件包开始使用强度更大,更安全的使SHA256算法取代摘MD5进行签名。此更改提高了签名强度,并允许将软件包安装在支持FIPS的系统上。

GitLab的官方AWS AMI和Omnibus Docker镜像现在基于Ubuntu 20.04。

GitLab接受的主机头的允许列表支持配置的。默认情况下,所有内容都是允许。

可以配置捆绑的Grafana服务的SMTP配置,将电子邮件发送给用户。

registry已升级到v3.1.0,已升级openssl到1.1.1j。

安全和合规性审计

SSH密钥到期的可选实施(ULTIMATE)

GitLab 12.9中,SSH密钥有一个可选的到期日期,但是,没有办法强制执行该日期。

管理员现在可以在其GitLab实例上强制执行SSH密钥到期日期。强制SSH密钥过期会立所有过期的SSH密钥立即不可用。

静态分析分析器更新

GitLab静态分析由一组许多安全分析器组成,GitLab静态分析团队积极管理,维护和更新。在13.10中分析仪做了很多更新:

ESLint更新为7.21.0版本;

MobSF更新到3.3.3版本:MobSF将跳过超过25MB的文件,macOS BigSur支持以及其他改进。

njsscan更新到0.2.3版本: njsscan将跳过超过25MB的文件

GitLeaks升级到了7.3.0版本;

spotbugs更新到4.2.2版本;

PMD更新为6.32.0版本;

下文更新至版本0.11.1;

gosec更新到2.7.0版本.

如果使用GitLab自带的SAST模板,则无需执行任何操作即可接收这些更新。但是,如果覆盖或自定义自己的CI模板,则需要手动更新CI配置。

漏洞批量状态更新(ULTIMATE)

当前可以从漏洞报告中批量选择和消除多个漏洞。这有助于快速消除重复出现或误报。但是,您仍然必须打开单个漏洞详细信息,才能将状态更改为“已解除”以外的任何状态。这对于执行常规活动(例如解决不再由安全扫描仪检测到的所有漏洞)的效率低下。

此批量操作增强功能解决了此限制。现在,从“漏洞报告”中选择一个或多个漏洞将显示用于设置任何状态的选项。如果需要进一步的分类评估,您甚至可以将漏洞移回“检测到”。与过滤功能相结合,比以往更容易地一次隔离所有特定漏洞并采取措施。

将图标添加到漏洞趋势图(ULTIMATE)

在13.6中,发布了带有漏洞趋势图的新项目安全仪表板。图表提供了过去365天内按严重性列出的漏洞计数的历史视图。

新版本中对该图表进行了增强,使其包括新的交互元素,以使其更加有效和高效地使用。现在,可以放大图表的选定部分,并缩小到默认视图。还可以导出图表的SVG图像,以在外部文档中使用。

漏洞报告上的可点击文件和行号链接(ULTIMATE)

GitLab的许多安全扫描器都会输出文件和行号,以检测到潜在的漏洞。当查看漏洞的详细信息时,用户可以单击链接的形式查看此信息。该链接会将用户直接带到默认分支的存储库中的文件和行号。漏洞报告中也会显示相同的信息。但是,文件名不可单击,要求打开漏洞的详细信息页面才能访问链接。

新版本中,增加将链接文件名的便利性添加到漏洞报告中。从项目,组或安全中心漏洞报告中,可以直接从输出此信息的扫描程序报告的任何漏洞中转到受影响的文件和行号。由于不再需要先打开每个漏洞记录,因此可以更快地执行操作,例如在单独的选项卡中打开多个引用的代码行以进行快速分类。

支持Java 15进行依赖项扫描(ULTIMATE)

“依赖关系扫描”分析器新增加对Java 15支持。请设置DS_JAVA_VERSION环境变量15以利用此增强功能。

可用性改进

在每个版本中,在提高产品的整体有效性和实用性方面都将继续取得重大进展。

新版中,启动了一个一个UI Polish来跟踪界面的重要更新。它提供了问题,项目,里程碑等提供了可用性改进:

Web IDE中增加光线对比度。

对没有提交权限的用户禁用Web IDE中的提交按钮。

当Markdown快速动作失败时,改善消息和视觉设计。

改进合并请求的空状态文本,以提高可读性。

过滤里程碑下拉列表时,隐藏“无里程碑”选项可加快选择速度。

通过更新许可证合规性和相关性列表空状态页面来提高一致性。

从服务台问题中删除用户电子邮件地址。

在板上,让任何许可证隐藏积压/关闭列表。

允许用户在面板的边栏中编辑迭代。

允许用户创建过去的迭代。

Bug修复

新版本中一些值得注意的Bug修复有:

变量环境范围中缺少环境列表。

Gitlab“里程碑”页面抛出500错误。

更新maven-metdata.xml删除程序包的时间。

执行组级别搜索时,项目选项卡计数不正确。

合并MR后,针对漏洞创建的问题未显示为已链接。

漏洞状态下拉操作不应滚动。

不要用问题URL呈现测试用例。

Geo:程序包文件同步无法遵循重定向进行直接下载对象存储。

Geo Framework:持续性故障会阻止/减慢暂态故障的重试。

Geo设置复制密码不适用于Patroni。

数据库中的孤立池对象导致备份还原错误。

gitlab-rake db:migrate由于allow_proxy_whitelist重命名,零停机时间升级步骤在13.9.3中失败。

性能提升

在GitLab 13.10中,在问题,项目,里程碑等方面提高性能,一些改进包括:

在Redis中设置Shard Elasticsearch排序集队列以减少Redis的负载。

在浏览器中缓存“高级搜索”计数请求。

对于具有许多分支或标签的项目,提高“运行管道”页面的性能。

批量加载Epic问题元数据信息.

减少具有许多引用的存储库的Git索引考迭代工作量。

功能变更和删除

API模糊测试配置文件移至.gitlab文件夹

变更日期:2021年5月22日

在GitLab 14.0中,API模糊测试配置文件(例如.gitlab-api-fuzzing.yml)应放置在存储库的.gitlab目录中。这有助于存储库的整洁。不建议将这些文件存储在存储库的根目录中。

14.0中.gitlab-api-fuzzing.yml也被重命名为.gitlab-api-fuzzing-config.yml。配置文件中不需要其他更改。可以继续使用现有的配置文件,但是GitLab 14.0将要求将它们移动到.gitlab目录并重命名。从GitLab 14.0开始,GitLab不会检查旧位置的配置文件。

Auto DevOps:稳定的Auto Deploy模板续订

变更日期:2021年5月22日

在GitLab 14.0中,会将Auto Deploy CI模板更新为最新版本。这包括对v2 auto-deploy-image的依赖关系的新功能,错误修复和性能改进。该最新模板已启用。除非在项目中专门自定义Auto DevOps,否则它将使用稳定的模板,该模板依赖于v1 auto-deploy-image。

由于v1和v2版本不向后兼容,如果已经部署的应用程序,则项目可能会遇到意外故障。

GitLab 14.0中的CI/CD管道行为更改

变更日期:2021年5月22日

在GitLab 14.0中,会对CI/CD管道的行为进行一些更改,以提高性能和资源使用率:

频繁运行的预定管道可能会影响实例的性能。在GitLab 14.0中,预定管道的频率将受GitLab应用程序限制。对于自建实例,管理员可以选择更改或禁用这些限制,这可以减少管线时间表中影响性能的cron模式所引起的问题。

在某些情况下,用户意外地同时触发了分支管道和合并请求管道,从而浪费了资源。GitLab 14.0中添加默认值 workflow: rule,以减少发生这种情况的风险。具有配置为依赖此行为的管道的用户可以轻松地使用自己的行为覆盖新的默认值,workflow: rule以重新启用以前的行为。

代码质量Rubocop支持更改

变更日期:2021年5月22日

当前,默认情况下,如果使用Code Quality模板,则Code Quality功能不支持Ruby 2.6+。

为了更好地支持最新版本的Ruby,更改了默认的Rubocop版本以增加对Ruby 2.4到3.0的支持,会放弃对Ruby 2.1、2.2和2.3的支持。可以通过配置启用对较早版本的支持。

容器扫描引擎Clair

变更日期:2021年5月22日

GitLab 14.0将用Trivy替换容器扫描引擎。目前GitLab使用开源Clair引擎进行容器扫描。GitLab 13.9停止Clair。这并不是一项重大突破,因为希望继续使用Clair的客户可以通过将CS_MAJOR_VERSION变量设置为gitlab-ci.yaml文件中的版本3(或更早版本)来实现。但是,不再推荐使用Clair,从14.0版本开始,GitLab将不再更新或维护该扫描引擎。建议客户使用从GitLab 14.0开始的Trivy的新默认值进行常规更新和最新功能。

DAST环境变量重命名和删除

变更日期:2021年6月22日

GitLab 13.8重命名了多个环境变量,以支持它们在不同工作流程中的更广泛使用。

GitLab 14.0中,旧变量将被永久删除,并且将不再起作用。使用这些变量的任何配置都必须更新为新的变量名称。在GitLab 14.0及更高版本中使用这些变量进行的任何扫描都将无法正确配置。这些变量是:

DAST_AUTH_EXCLUDE_URLS变更为DAST_EXCLUDE_URLS。

AUTH_EXCLUDE_URLS变更为DAST_EXCLUDE_URLS。

AUTH_USERNAME变更为DAST_USERNAME。

AUTH_PASSWORD变更为DAST_PASSWORD。

AUTH_USERNAME_FIELD变更为DAST_USERNAME_FIELD。

AUTH_PASSWORD_FIELD变更为DAST_PASSWORD_FIELD。

DAST_ZAP_USE_AJAX_SPIDER变更为DAST_USE_AJAX_SPIDER。

DAST_FULL_SCAN_DOMAIN_VALIDATION_REQUIRED 将被删除,因为该功能已被删除。

默认的浏览器性能测试作业重命名

变更日期:2021年5月22日

当前,浏览器性能测试在performance默认情况下的作业中运行。随着GitLab 13.2中的负载性能测试的引入,这种命名可能会造成混淆。

要清楚其工作运行浏览器性能测试,默认作业名称将更改从performance到browser_performance模板中GitLab 14.0。

GitLab页面的磁盘源配置

变更日期:2021年5月22日

GitLab 13.0中提供了基于GitLab Pages API的配置,用来替换disk源配置,该配置将在GitLab 14.0中删除。建议不要使用disk源配置,而使用gitlab基于API的配置,因为disk将不再支持并且无法选择它。您可以通过gitlab_pages['domain_config_source'] = "gitlab"在gitlab.rb/etc/gitlab/gitlab.rb文件中进行设置来从“磁盘”源配置中迁移。建议在GitLab 14.0之前执行此操作,以便提前发现并解决任何潜在问题。

删除服务模板

变更日期:2021年5月22日

现在停用服务模板,并计划在GitLab 14.0删除。它们曾被用来将相同的设置应用于大量项目,但仅在创建项目时才这样做。

当解决了部分问题时,后来证明更新这些值是一个主要的痛点。Project Integration Management通过能够在组或实例级别创建设置,并在该命名空间中继承这些设置的项目来解决此问题。

在SAST CI模板中弃用全局`SAST_ANALYZER_IMAGE_TAG`

变更日期:2021年5月22日

随着GitLab Secure扫描工具的成熟,需要在发布过程中增加更多的粒度。目前,GitLab共享我们所有分析仪和工具的主要版本号。这要求所有工具共享一个主版本,并禁止使用语义版本编号。从14.0开始,GitLab SAST将停用SAST_ANALYZER_IMAGE_TAG托管SAST.gitlab-ci.yml CI模板中的全局变量,而将分析器作业变量设置为SAST供应商模板中的'major.minor'标签。每个分析器作业都会有一个范围SAST_ANALYZER_IMAGE_TAG变量,该变量将由GitLab主动管理,并设置为相应分析仪的'major.minor'标签。要固定到特定版本,只需将变量值更改为特定版本标签即可。如果您覆盖或维护自定义版本,SAST.gitlab-ci.yml则需要更新CI模板以停止引用全局,SAST_ANALYZER_IMAGE_TAG并将其移至有作用域的分析器作业标签。建议继承和覆盖托管CI模板,以便将来证明CI模板。此更改以替代固定的major.minor版本,以更精细地控制将来的分析仪更新。

GitLab页面的磁盘/NFS存储

变更日期:2021年5月22日

为了使GitLab Pages与云原生兼容,从GitLab 14.0开始,将GitLab Pages使用的基础存储格式更改为GitLab 14.0中的对象存储。迁移到新存储格式的目的是自动进行的,但是,这可能需要一些人为干预。为了简化向对象存储的过渡,gitlab_pages['use_legacy_storage'] = true从GitLab 14.0到14.3可以使用一个临时标志,但在GitLab 14.4中将删除它。在13.11中,将能够更早地迁移到新体系结构,并在14.0之前的环境中对其进行测试。

删除标签API中的版本说明

变更日期:2021年5月22日

GitLab 14.0将在标签API中删除对发行说明的支持。创建新标签时,将不再能够添加发行说明。也将无法再通过标签API创建或更新发行版。需要迁移使用Releases API。

停止依赖项扫描

变更日期:2021年5月22日

以前,要排除DS分析器,需要将其从分析器的默认列表中删除,然后使用它DS_DEFAULT_ANALYZERS在项目的CI模板中设置变量。在不失去新添加的分析仪优势的情况下,避免运行特定的分析仪应该更容易。因此,需要在可用时从迁移DS_DEFAULT_ANALYZERS到DS_EXCLUDED_ANALYZERS。

以前,为了防止Gemnasium分析器在运行时获取咨询数据库,需要设置GEMNASIUM_DB_UPDATE 环境变量。此文件未正确记录,并且其命名与等效BUNDLER_AUDIT_UPDATE_DISABLED变量不一致。因此,要求在可用时从迁移GEMNASIUM_DB_UPDATE到GEMNASIUM_UPDATE_DISABLED。

默认情况下禁用过期的SSH密钥

变更日期:2021年5月22日

从GitLab 14.0开始,默认情况下将禁用已过期的已添加到GitLab的SSH密钥。这是对当前行为的更改,在当前行为中,除非管理员明确禁用,否则仍可以使用过期的SSH密钥。

管理员仍然可以以与可以覆盖个人访问令牌的过期设置相同的方式来允许使用过期密钥。

漏洞,则模糊测试作业将失败并显示allow_failure

变更日期:2021年5月22日

为确保我们的模糊测试作业彼此一致,作为14.0的一部分,如果一个模糊测试作业发现漏洞,则所有模糊测试作业都将开始失败。这些作业将在allow_failure=true设置,因此会收到警告,但如果发现漏洞,整个管道不会失败。

这是一些模糊扫描仪(例如Go和C ++绒毛引擎)的当前行为。

无需采取任何措施即可使用此新行为。如果要在脚本中检查管道模糊测试任务的结果,请考虑这些脚本是否需要任何更新。

Git默认分支名称更改

变更日期:2021年5月22日

每个Git存储库都有一个初始分支。这是创建新存储库时自动创建的第一个分支。默认情况下,此初始分支名为master。未来的Git版本会将Git中的默认分支名称从master更改为main。为了与Git项目和更广泛的社区进行协调,GitLab将更改SaaS和自建实例GitLab 14.0新项目的默认分支名称。但是不会影响现有项目。

GitLab已经引入了更改,允许用户在实例级别(对于自我管理的用户)和组级别都更改默认分支名称。建议用户使用这些功能在新项目上设置默认分支名称。

GitLab OAuth隐式授权弃用

变更日期:2021年5月22日

GitLab不再建议使用OAuth 2隐式授权流,它已被OAuth 2.1删除。

从14.0开始,将无法使用OAuth 2隐式授权流程创建新的应用程序。14.4将不再支持现有的OAuth隐式授权流程。请在版本14.4之前将现有应用程序迁移到其他受支持的OAuth2。

GitLab Runner安装程序忽略skel目录

变更日期:2021年6月22日

在GitLab Runner 14.0中,skel默认情况下,安装过程将在创建用户主目录时

Helm v2支持

变更日期:2021年6月22日

Helm v2已于2020年11月正式停用,此后不久,该stable存储库便从Helm Hub上除名。随着GitLab 14.0的发布(其中包括GitLab Helm图表的5.0版本),将不再支持Helm v2。

用户应升级到Helm v3,以部署GitLab 14.0及更高版本。

旧功能标志停用

变更日期:2021年5月22日

传统功能标志在GitLab 13.4中变为只读。在GitLab 14.0中将删除对旧功能标记的支持。必须将旧版功能标志迁移到新版本。为此,可以先对旧式标志进行截图以进行跟踪,然后通过API或UI删除该标志(无需更改代码),最后创建一个新的功能标志,其名称与删除的旧版标志。另外,请确保策略和环境与已删除标志匹配。

限制在GET/groups:id/中返回的项目

变更日期:2021年5月22日

为了提高性能,将GET /groups/:id/API调用返回的项目数限制为100。仍然可以使用GET /groups /:id /projects API调用来检索项目的完整列表。

新注册的Windows Runner的默认shell变更为pwsh

变更日期:2021年6月22日

在GitLab Runner 13.2中,PowerShell Core支持已添加到Shell执行程序中。在14.0中,pwsh它将是新注册的Windows运行程序的默认外壳程序。WindowsCMD仍可作为Windows运行程序的外壳程序选项使用。

NFS for Git存储库存储已弃用

变更日期:2021年5月22日

随着Gitaly Cluster的发布,将弃用GitLab 14.0中对Git存储库的NFS的支持。

一键式GitLab托管应用程序将在GitLab 14.0中删除

变更日期:2021年5月22日

不建议使用一键安装GitLab托管应用程序。尽管他们使从GitLab部署到Kubernetes的入门变得非常容易,但是社区的总体反馈是,它们对于实际的Kubernetes应用程序不够灵活或无法自定义。未来方向将集中在通过GitLab CI/CD在Kubernetes上安装应用程序,以便在易用性与扩展自定义之间取得更好的平衡。

计划在GitLab 14.0版中完全删除一键式托管应用程序。这不会影响集群中现有托管应用程序的运行方式,但是,将不再能够通过GitLab UI更新修改这些应用程序。建议群集管理员计划通过手动或通过CI/CD重新安装任何现有的托管应用程序来进行迁移。

PostgreSQL 11支持

变更日期:2021年5月22日

PostgreSQL 12将是GitLab 14.0中最低要求的版本。它为索引编制,分区和总体性能优势提供了显著的改进。

从GitLab 13.7开始,所有新安装均默认为版本12。从GitLab 13.8起,单节点实例也将自动升级。如果还没有准备好升级,则可以选择退出自动升级。

在使用Patroni进行升级之前,多节点数据库实例将需要从repmgr切换到Patroni。然后可以更新Geo辅助数据库并重新同步。

DAST报表中删除旧字段

变更日期:2021年6月22日

作为GitLab中所有安全扫描器向通用报告格式迁移的一部分,DAST正在对DAST JSON报告进行更改。某些旧版字段在13.8中已停用,并将在14.0中完全删除。这些字段有@generated,@version,site,和spider。这不会影响任何正常的DAST操作,但会影响以自动方式使用JSON报告并使用这些字段的用户。受这些更改影响的任何人出于业务原因需要这些字段,建议打开新的GitLab问题并解释需求。

从软件包中删除/usr/lib/gitlab-runner符号链接

变更日期:2021年6月22日

在GitLab转轮13.3,一个符号链接从加入/user/lib/gitlab-runner/gitlab-runner到/usr/bin/gitlab-runner。在14.0中,将删除此符号链接,并将运行器安装在中/usr/bin/gitlab-runner。

删除AUTHORIZED_KEYS集成以进行SSH密钥查找

变更日期:2021年5月22日

当前GitLab具有三种不同的机制,通过它们可以在登录时查找连接到SSH密钥的用户。这些机制有:

通过整合authorized_keys

快速查找SSH密钥

通过SSH证书查找

第一种机制(通过集成authorized keys)容易受到竞争条件和乱序执行问题的影响,因此很难扩展。为此将在GitLab 14.0中删除。

删除DAST默认模板阶段

变更日期:2021年6月22日

在GitLab 14.0中,DAST.gitlab-ci.yml将删除当前模板中定义的阶段,以避免模板覆盖DAST用户进行的手动更改的情况。进行此更改是为了响应客户的问题,其中模板的阶段与自定义DAST配置一起使用时会引起问题。由于此删除,gitlab-ci.yml未指定dast阶段的配置必须更新为包括该阶段。

在GitLab 13.8中,不建议使用这些阶段,并将其从模板中删除的更改也包括在DAST.latest.gitlab-ci.yml模板中。

删除FF_SHELL_EXECUTOR_USE_LEGACY_PROCESS_KILL功能标记

变更日期:2021年6月22日

在GitLab Runner 13.1介绍了Shell执行器sigterm,然后介绍sigkill了该过程。还引入了一个新的功能标志,FF_SHELL_EXECUTOR_USE_LEGACY_PROCESS_KILL因此可以使用以前的过程终止序列。在GitLab Runner 14.0中,将删除功能标记。

删除FF_USE_GO_CLOUD_WITH_CACHE_ARCHIVER功能标志

变更日期:2021年6月22日

在GitLab Runner 14.0中,将删除FF_USE_GO_CLOUD_WITH_CACHE_ARCHIVER功能标记。

删除GLOBAL_DEFAULT_BRANCH_NAME功能标记

变更日期:2021年5月22日

在GitLab版本14.0中,将删除GLOBAL_DEFAULT_BRANCH_NAME功能标记。。

删除PUSH_RULES_SUPERSEDE_CODE_OWNERS功能标志

变更日期:2021年5月22日

在GitLab版本14.0中,我们将删除PUSH_RULES_SUPERSEDE_CODE_OWNERS 功能标记。

删除Ubuntu 19.10(Eoan Ermine)软件包

变更日期:2021年6月22日

Ubuntu 19.10(Eoan Ermine)已于2020年7月17日星期五终止使用寿命。在GitLab Runner 14.0中,不再对其软件包分发软件包。

删除旧版DAST域验证

变更日期:2021年6月22日

从GitLab 13.8开始,不推荐使用用于CI / CD扫描的DAST域验证的当前方法。在GitLab 14.0中,旧的DAST验证方法将被删除。域验证此方法仅如果不允许扫描DAST_FULL_SCAN_DOMAIN_VALIDATION_REQUIRED环境变量设置为true中gitlab-ci.yml文件和Gitlab-DAST-Permission的标题未设置为allow。这种分两步的方法造成了一种情况,用户必须选择退出使用该变量,然后才能退出使用标题。对于担心保护网站免受全面,主动扫描的用户而言,仍然可以通过在任何上添加Gitlab-DAST-Permission值为的标头来撤消对GitLab DAST扫描的许可deny。这将继续阻止对包含此HTTP标头的任何网站进行的GitLab DAST扫描。

删除峰值时间模式配置以进行Docker Machine自动缩放

变更日期:2021年6月22日

在GitLab Runner 13.0,为GitLab Docker Machine执行程序引入了新的计时选项。在GitLab Runner 14.0中,计划非高峰时间模式下的旧配置选项。

删除成功和失败以完成构建度量标准转换

变更日期:2021年6月22日

在GitLab Runner 13.5中,介绍了failed并success声明了一项工作。为了支持普罗米修斯规则,我们选择了转换success/failure到finished度量标准。在14.0中,我们将删除转换。

在自定义执行程序中删除从step_script到build_script的翻译

变更日期:2021年6月22日

在GitLab Runner 13.2翻译step_script到build_script被添加到自定义执行。在14.0中,“ build_script”阶段将替换为“ step_script”。

调用Sidekiq的默认方法是`sidekiq-cluster`

变更日期:2021年5月22日

在GitLab 13.0中,停止了启动Sidekiq的替代方法,转而支持Sidekiq集群。Sidekiq群集提供了用于管理Sidekiq队列和扩展的其他选项。

这样可以运行多个Sidekiq进程。多个Sidekiq进程允许GitLab实例继续垂直扩展,并且通常是添加其他节点之前的第一步。此外,这将简化对GitLab.com的支持并提高可维护性。

从GitLab 14.0开始,不再支持直接调用Sidekiq。

对于Omnibus安装,这应该是完全自动的。

Ubuntu 16.04支持

变更日期:2021年5月22日

Ubuntu 16.04将于2021年4月到期,并且不再接收维护更新。强烈建议用户升级到较新的版本,例如20.04。

GitLab 13.11是支持Ubuntu 16.04的最后版本。

对于GitLab自建实例,将删除Unicorn

变更日期:2021年5月22日

不建议使用Unicorn支持,它将在GitLab 14.0中删除。必须先迁移到Puma,然后再升级到GitLab 14.0。

更新CI/CD模板停用硬编码的master模版

变更日期:2021年5月22日

CI/CD模板将被更新,以使它们不再使用对master分支的硬编码引用。在14.0中,都将更改为使用CI/CD变量,而该变量指向项目配置的默认分支。如果的CI/CD管道依赖于内置模板,则可能需要验证此更改是否适用于当前的配置。例如,如果有一个master分支和一个不同的默认分支,则对模板的更新可能会导致管道行为发生更改。

Web应用程序防火墙(WAF)

变更日期:2021年11月22日

在GitLab 13.6中不再推荐使用GitLab的Web应用程序防火墙(WAF)。由于这是一项重大更改,因此将于2021年5月22日在GitLab 14.0中从产品中删除WAF。GitLab的WAF具有架构设计上固有的局限性,因此很难满足WAF的传统要求。通过停用和删除WAF,GitLab将能够集中精力进一步开发产品中可以为用户提供更多价值的其他领域。当前依赖GitLab WAF的用户可以继续使用独立于GitLab的免费和开源modsecurity项目。

project-ref-sha repo存档路径删除

变更日期:2021年5月22日

在GitLab 10.7之前,用于归档存储库的方法返回了一个名为的归档文件project-ref-sha和一个具有相同名称的父目录。这使得打包发布的过程变得更加困难,因为必须同时了解标签和SHA。

GitLab 10.7添加了project-ref一个路由,该路由通过添加一个返回归档文件的路由来简化打包project-ref。

旧版本project-ref-sha将在GitLab 14.0删除。

默认DAST Spider开始在目标URL上进行爬网

变更日期:2021年6月22日

GitLab 14.0中,DAST将删除开始使用Spider时将扫描重置为主机名的当前方法。在GitLab 14.0之前的版本中,抓取工具不会从URL的指定目标路径开始,而是会重置URL以从主机根开始爬网。在GitLab 14.0中,DAST_SPIDER_START_AT_HOST将更改新变量的默认值,false以更好地支持用户在指定的目标URL(而不是主机根URL)开始爬网和扫描。除了开始对指定的URL进行爬网外,如果指定的路径不包含指向整个站点的链接,这将带来额外的好处,即扫描可以花费更少的时间。这将使更轻松地扫描应用程序的较小部分,而不是每次扫描都对整个应用程序进行爬网。

DevOps采用API

变更日期:2021年5月22日

DevOps采用报告的第一个版本具有“段”的概念。细分很快从报表中删除,因为它们在“组”和“项目”的基础上又增加了一层复杂性。DevOps采用报告的后续迭代着重于比较各组而不是细分市场的采用。任何对“段”的引用将从GitLab 14.0中的GraphQL API中删除,并替换为“组”。

14.0中的Geo外部数据包装器设置删除

变更日期:2021年5月22日

GitLab 13.3中申明以下配置设置/etc/gitlab/gitlab.rb已弃用,并将在14.0中删除:

geo_secondary['db_fdw']

geo_postgresql['fdw_external_user']

geo_postgresql['fdw_external_password']

gitlab-_rails['geo_migrated_local_files_clean_up_worker_cron']

GraphQL API instanceStatisticsMeasurements字段

变更日期:2021年5月22日

在GitLab 13.6中,称为“实例统计信息”的功能被重命名为“使用趋势”。为了匹配该更改,instanceStatisticsMeasurements不赞成使用GraphQL API字段usageTrendsMeasurements。

旧版存储在14.0将被的删除

变更日期:2021年5月22日

GitLab 13.0中宣布的,旧的存储已被停用,将在GitLab 14.0删除。

在升级到GitLab 14.0之前,必须完全迁移到哈希存储。

从SAST_DEFAULT_ANALYZERS迁移到SAST_EXCLUDED_ANALYZERS

变更日期:2021年5月22日

在GitLab 13.9之前,如果要避免运行一个特定的GitLab SAST分析仪,则需要将将其从文件中较长的分析仪字符串中SAST.gitlab-ci.yml删除,然后使用它SAST_DEFAULT_ANALYZERS在项目的CI文件中设置变量。如果这样做,则将您排除在以后的新分析器之内,因为此字符串对执行的分析器列表进行了硬编码。通过反转此变量的逻辑以排除而不是选择默认分析器,可以避免此问题。从13.9开始,迁移SAST_EXCLUDED_ANALYZERS到了SAST.gitlab-ci.yml文件中。我们鼓励任何在项目CI文件中使用自定义SAST配置的人迁移到此新变量。如果尚未覆盖SAST_DEFAULT_ANALYZERS,则无需采取任何措施。CI/CD变量SAST_DEFAULT_ANALYZERS 将在2021年5月22日发布的GitLab 14.0中删除。

删除许可证合规性

变更日期:2021年5月22日

在13.0中,停用了许可证管理CI模板,并将其重命名为“许可证扫描”。通过警告用户切换旧模板,一直在提供向后兼容性。现在,在14.0中,将完全删除许可证管理CI模板。

删除SAST分析器SAST_GOSEC_CONFIG变量以支持自定义规则集

变更日期:2021年5月22日

随着GitLab 13.5中SAST自定义规则集的发布,为Go分析器(GoSec)的配置选项提供了更大的灵活性。结果,将放弃支持我们较不灵活的分析仪设置。在GitLab 13.10中不推荐使用此变量。如果覆盖或利用SAST_GOSEC_CONFIGCI文件,则需要更新SAST CI配置或将其固定到GoSec分析仪的旧版本。强烈建议继承和覆盖托管CI模板,以便将来证明的CI模板。将SAST_GOSEC_CONFIG variable在GitLab 14.0中删除旧版本。

删除secret_detection_default_branch作业

变更日期:2021年5月22日

为了确保秘密检测同时扫描默认分支和功能分支,在托管Secret-Detection.gitlab-ci.yml模板中引入了两个单独的秘密检测CI作业。这两个CI作业secret_detection_default_branch和secret_detection在CI规则逻辑中造成了混乱和复杂性。作为不赞成使用的一部分,将rule逻辑移到该script部分中,该部分将确定secret_detection作业的运行方式(历史记录,分支上的提交,提交等)。如果重写或维护的自定义版本SAST.gitlab-ci.yml或者Secret-Detection.gitlab-ci.yml,必须更新您的CI模板。强烈继承和覆盖托管CI模板,以便将来对CI模板进行验证。将在GitLab 14.0中停用secret_detection_default_branch。

WIP(进行中的)合并请求术语已弃用

变更日期:2021年5月22日

合并请求的WIP(进行中的工作)重命名为“草稿”,因为它更具包容性且不言自明。不建议使用WIP术语。将在下一个主要的GitLab版本(14.0)中支持它的使用,然后将其删除。

升级更新

Omnibus版本升级

Omnibus安装的自建实例可直接使用Linux包管理器可以升级。例如对CentOS:

yum updata/install gitlab-ce

就能自动完成升级:


docker安装的实例

先停止和删除旧的容器:

sudo docker stop gitlab

sudo docker rm gitlab

然后Pull官方最新镜像:

sudo docker pull gitlab/gitlab-ce:latest

重新启动容器(启动参数和以前保持一致)即可,比如:

sudo docker run --detach \

--hostname gitlab.example.com \

--publish 443:443 --publish 80:80 --publish 22:22 \

--name gitlab \

--restart always \

--volume /srv/gitlab/config:/etc/gitlab \

--volume /srv/gitlab/logs:/var/log/gitlab \

--volume /srv/gitlab/data:/var/opt/gitlab \

gitlab/gitlab-ce:latest

Docker compose安装版本

通过:

docker-compose pull

docker-compose up -d

举报
评论 0