Dec 28, 2023 - 极狐GitLab  
16.7

极狐GitLab 16.7 版本发布

今天我们很高兴的宣布极狐GitLab 16.7 的发版。此次发版带来了关于 CI/CD 目录(beta 版)、在 MR 变更视图中查看 SAST 漏洞、支持对依赖项扫描进行持续漏洞扫描等多项功能更新。

今天我们很高兴的宣布极狐GitLab 16.7 的发版。此次发版带来了关于 CI/CD 目录(beta 版)、在 MR 变更视图中查看 SAST 漏洞、支持对依赖项扫描进行持续漏洞扫描等多项功能更新。

以下是部分重点功能的详情解读。

极狐GitLab 16.7 主要功能

洞察报告图表中新的下拉视图

有了洞察报告,你就可以使用自定义图标的方式来进行分析了。新的下拉选项能力增加了“通过优先级创建的缺陷”及“通过严重等级创建的缺陷”这两个选项。洞察报告允许你通过下拉的方式来对议题分析报告进行深度解析。

我们计划在后期的版本中,将此能力以定制化的选项能力添加到洞察报告中。

洞察报告图表中新的下拉视图

在 MR 变更视图中查看 SAST 结果

现在可以在合并请求变更中视图中看到 SAST 扫描结果了。这能在代码审核过程中就能更容易地看到、理解以及修复发现的潜在风险。

SAST 问题的具体行数会以符号的形式进行展现。选择符号就能看到问题列表,然后选择其中某个议题就能看到详情了。

目前该功能只在 SaaS 上默认开启,对于私有化部署的默认开启支持,预计会在 16.8。


Beta 版的 CI/CD 目录功能

极狐GitLab 16.7 发布了 Beta 版的 CI/CD 目录功能(catalog)。目录是一个你可以查找你想要的 CI/CD 组件的地方,这些组件可能是由你、你的组织或者其他开放社区维护的。这也是一个 DevOps 工程师可以聚集在一起的地方,他们可以创建、贡献以及分享复用一些流水线配置。

和其他复用 CI/CD 配置的方法不同,发布在目录中的 CI/CD 组件有着很好的使用体验,而且能够轻松添加到你的流水线中。我们诚挚地邀请你来测试这一激动人心的功能!你可以来尝试已经发布到目录中的组件,也可以创建属于你自己的组件,然后将其分享给所有人。

当然,这只是个初始的 Beta 版本,我们将继续努力工作来改善该功能的使用体验,争取以后此功能可以成为极狐GitLab CI/CD 部分的核心功能。

极狐GitLab 16.7 其他功能

从左侧导航栏访问管理中心

管理员现在可以从左侧导航栏底部的链接来直接访问管理中心了。在之前的版本中,用户不得不使用查找或前往选项来找到管理中心。此次变更将能够节约用户访问管理中心的时间。

从左侧导航栏访问管理中心

在价值流分析中使用与定义的时间范围进行过滤

现在价值流分析报告中有一系列的过滤选项可以对数据进行过滤,比如过去30、60、90 或者 180 天。这些新的过滤选项简化了日期选择的流程,让效率变得更高,而且用户能够更好的理解在研发周期中的时间都花费在了哪些阶段

在价值流分析中使用与定义的时间范围进行过滤

使用流量出口规则定义网络策略

在极狐GitLab 16.7 中,当你需要通过配置极狐GitLab Kubernetes Agent 来进行远程研发时,你就可以使用流量出口规则来配置网络策略了。将此功能用到私有化部署的实例上,极狐GitLab 实例解析为私有 IP,或者工作区必须访问私有 IP 范围上的云资源。

提高了保留最新作业制品的能力

从极狐GitLab 13.0 开始,就引入了从最近且成功的流水线中保留作业制品的能力。不幸的是,之前的功能依旧会将所有失败的或阻塞的流水线视为最新的流水线,而不管它们是否是最新的。这就导致了在存储中有制品在堆积,而后不得不进行手动删除。

在极狐GitLab 16.7 中解决了此缺陷。如果作业制品是来自失败或阻塞的流水线,而且这些制品是来自最新构建流水线,那么这些制品才会被保留,否则它们将会遵守 expire_in配置的规则。受影响的 JihuLab.com 用户现在可以看到那些不经意间保留的作业制品,会在流水线再次运行之后被删除。

从最近且成功的作业保留制品的设置会对作业的 artifacts:expire_in配置进行覆盖,并且会导致大量制品的存储,而且永不过期。如果你的流水线创建了大量的制品,它们就会很快吃掉你的项目存储配额。因此,如果你不需要这个功能的话,我们建议你禁止此设置。

对于 OpenTofu 的支持已经到了 Beta 版

如果你正在从 Terraform 切换到 OpenTofu,那么此版本正好增加了对于 OpenTofu 的支持。因为 OpenTofu 是 Terraform 的一个 fork,因此 MR 权重的集成、模块化仓库以及 GitLab 管理的 Terraform 状态默认是可用的。我们在 gitlab-terraformhelper 镜像中增加了对于 OpenTofu 的支持,以便简化极狐GitLab IaC 功能的使用。

极狐GitLab 将持续支持 Terrform,诸如 MR 权重的集成、模块化仓库以及 GitLab 管理的 Terraform 状态。

支持对依赖项扫描进行持续漏洞扫描

持续漏洞扫描现在已经可用了。开启 CVS 后,当 advisory 添加到极狐GitLab Advisory 数据库后,项目就可以被自动扫描了。如果识别了与依赖相关的漏洞,那么漏洞会被自动创建。

SAST 属性语法支持微软 SAML 属性格式

现在 SAML 属性语法支持微软 SAML 属性格式了,也就是 URL 格式。之前私有化部署实例管理员不得不手动配置属性语法,而 SaaS 群组拥有者不得不为他们的 SAML 响应添加自定义的属性。有了此变更,不管是私有化部署还是 SaaS 用户,都能够在无需任何手动操作的前提下来很好的使用微软的产品。

群组描述扩展到 500 字符

群组描述现在可以最多包含 500 个字符。如果你尝试保存一个超过 500 字符的群组描述,就会出现告警,提示你描述过长。感谢来自社区的共享。

通过直接迁移进行项目导入时的综合结果展现

了解项目的导入结果对用户来说是至关重要的,在此里程碑中,我们进一步改进了通过直接迁移进行项目导入时的信息展示效果。我们在靠近群组及项目的地方显示了导入状态徽章:

  • 在页面上你可以选择要导入的群组或项目。
  • 在页面上列取已经导入的群组或项目。

导入状态的徽章有:

  • 未开始
  • 等待
  • 正在导入
  • 失败
  • 超时
  • 取消
  • 完成
  • 部分完成

此次版本增加了部分完成徽章,用来识别那些有部分条目(比如合并请求和议题)未完成导入的项目。

有导入流程在进行的群组,会有一个查看详情的链接来查看导入的子群组和项目。在这里面,你就可以通过点击查看失败来看到那些未能成功导入的条目(如果有的话)。查看失败上个版本才发布的

改进了富文本编辑器的使用

在极狐GitLab 16.2 中,我们发布了富文本编辑器,将其作为对既有 Markdown 编辑体验的一个补充。富文本编辑器提供了一种“所见即所得”的编辑体验,而且也是一个扩展基础,以便我们来构建定制化化的编辑界面,诸如图标、文本内嵌、媒体管理等。

在 极狐GitLab 16.7 中,我们更改了富文本编辑器,使其行为与我们的 Markdown 编辑体验相匹配,并修复了报告的错误。

我们更改了标签自动完成模式中的排序顺序,以便在 Markdown 和富文本编辑器之间保持一致修复了富文本编辑器中取消分配快速操作中返回的选项中的缺陷添加了对自定义表情符号的支持以及更新了快速操作选择下拉列表的外观和感觉,使其在两种编辑体验中保持一致,以及其他改进。

当有任意合并请求需要批准的时候通知我

当某一个合并请求需要你的批准时,你需要被通知然后采取行动。某些用户仅想在需要他们的批准时才被通知,这通常是通过添加审核变更人员的名称来实现的。但是,有些用户想要的是,任何与他们有关的合并请求在需要审批的时候都能够通知他们,即使他们不是这些合并请求的审核人员。

开启添加为审核者自定义消息通知功能,就能够触发通知邮件,每一个与你相关的合并请求在需要批准的时候都会发通知。这能够帮助你在此过程中更快地了解合并请求,并采取措施来加快合并。

当有任意合并请求需要批准的时候通知我

CI/CD 关键词 `artifacts:public` 现在已正式可用

之前,artifact:public 关键词只是针对私有化部署实例可用,而且还是默认关闭的。在此版本中,所有用户都可以使用此关键字了。你可以在 CI/CD 配置文件中通过使用 artifacts:public 关键字来控制作业制品是否需要对外可访问。

当外部参与者注释时,重新打开服务桌面议题

当外部参与者通过邮件对议题添加了新的注释,则可以通过配置极狐GitLab 来将此议题重新打开。这可以让你全面了解正在进行的会话,即使议题已经处于已解决状态。

此外还添加了一条内部评论,提及问题的指派人并为他们创建待办事项。这样你就可以确保不会再错过后续电子邮件。

更新 SAST 规则以减少假阳性结果

我们已经更新了极狐GitLab SAST 的默认规则集,以便提供更高质量的扫描结果。我们仔细分析了之前默认包含的每一个规则,然后删除了那些不能够提供足够价值的规则。

这些规则更新都包含在基于 Semgrep 的极狐GitLab SAST 分析器中。此更新会自动应用到极狐GitLab 16.0 以后的版本中,除非你已经将 SAST 分析器固定到了一个特定的版本

当你使用更新之后的分析器运行流水线之后,那些之前来自于删除规则中既有扫描结果也会自动标记为已解决。

在 UI 界面上为自定义角色指派用户

现在你可以在 UI 界面上将自定义角色指派给一个新用户了,或者将既有用户的角色改变为自定义的角色。你可以在当前任何能够指派或者更改用户角色的 UI 界面上来执行此操作。之前,只能通过 API 来实现此功能。

在高级搜索中更容易找到有代码的议题

在极狐GitLab 16.7 中,有代码的议题会变得更加容易被发现。在高级搜索中,你可以发现那些在议题描述中包含代码片段和日志的议题了。

自定义时间显示格式

目前为止,极狐GitLab 还只能显示 12 小时格式的时间,而且是不可修改的。

从此版本开始,你可以定制化时间的展示格式了,这样你就可以在议题列表、概览页面或者设置状态页面的时候来显示时间了。比如,你可以对时间做如下显示:

  • 12 小时格式,比如 2:34 PM。
  • 24 小时格式,比如 14:34。

感谢来自社区的贡献。

在接下来的里程碑中,我们将审视极狐GitLab 左右产品中的时间戳展示,以便其能够匹配此变更。

定制化群组表情包

谁不喜欢用好的表情包来表达自己呢?当在极狐GitLab 的某些条目中进行注释时,你只能使用默认的表情包来添加一些响应,但是有时候这些表情包并不足以表达你的情绪。现在可以在群组级别添加自定义表情了,这样就可以在群组下面的所有项目中使用了。定制化表情包允许你能够真实地表达你自己的感情,而且和其他团队更友好的协作。

定制化群组表情包

极狐GitLab Runner 16.7

此次我们发布了极狐GitLab Runner 16.7。极狐GitLab Runner 是一个轻量级、高扩展的代理,用来运行 CI/CD 的作业,然后将结果反馈给极狐GitLab 实例。极狐GitLab Runner 和极狐GitLab CI/CD 一起工作,而极狐GitLab CI/CD 是内置于极狐GitLab 中的开源持续集成服务。

此次发布的新功能:

  • 实现了 Docker 执行器的平滑关闭;
  • 在 Kubernetes 环境下实现 PVC 的动态创建

修复的缺陷:

  • allow_failure退出码无法与自定义执行器一起使用,因为退出码始终是 1
  • 在 Runner helper 中增加了更好的信号处理,以及为 Kubernetes 执行器来构建容器

关于极狐GitLab Runner 的变更可以查看变更日志

使用新的容器镜像仓库 API 来列举仓库标签

之前,极狐GitLab 容器镜像仓库依赖 Docker/OCI 的列举镜像标签的 API 来列举且展示标签。此 API 有着严重的性能问题而且有一些其他限制。

此 API 的性能很慢,是因为针对镜像仓库的网络请求数量与标签列表中的标签数量是成比例的。此外,此 API 还不能对发布时间进行追踪,发布时间戳经常是错误的。而且还有一些其他限制,比如当基于 Docker 清单列表或 OCI 索引来对镜像(比如多架构镜像)进行展示时就会遇到。

为了解决这些限制,我们引入了一个新的镜像仓库列举仓库标签的 API。通过更新用户界面来使用新的 API,针对容器镜像仓库的请求数量减少到仅有一个。发布时间戳也更加精确了,而且对于多架构镜像的支持也更加稳定了。

目前此功能仅在 SaaS 上可用。私有化部署版本的还需要等待一段时间。

DAST 验证现在支持多步骤登录表单了

新的 DAST_AFTER_LOGIN_ACTIONS变量能够给你提供一系列在登录之后可以执行的操作。这就能允许多步骤登录交互了,比如 Azure AD 的“保持登录状态”工作流。

自定义访问令牌轮换的时间周期

现在,当要轮换一个访问令牌时,你可以选择性的输入一个新的参数 expires_at。这将让你能够为令牌创建自定义的过期时间。之前,每次轮换都是将到期日从前一个到期日延长一周。这个新的选项提供了更加灵活的轮换间隔。

备份支持备用的压缩库

现在,当你在备份的时候,你可以使用 COMPRESS_CMD命令覆盖默认的 single-threaded gzip 压缩库,从而换成你想要的压缩库。这将能让你通过使用现代化多核处理器的强大能力来进行并行压缩,从而加速备份过程中的压缩。此命令支持将选项传递给压缩库,并且允许你调整压缩级别和压缩速率等参数。

在搜索结果页面上突出搜索栏

现在,搜索栏在搜索页面上变得更加突出了。为了增加搜索栏的可见性,群组及项目过滤器已经被移到了左侧边栏。

在搜索结果页面上突出搜索栏

删除完成迁移的硬编码时间限制

通过直接迁移对极狐GitLab 群组或项目进行迁移时,可能会因为多种原因而陷入困境。在之前,为了避免让这些迁移无限期地置于不完整的状态,极狐GitLab 通过定期执行一个任务来识别 8 小时内未完成的迁移。极狐GitLab 会将这些迁移标记为超时。

对于大型组织来说,迁移流程可能会超过 8 小时,因此这个时间限制有时候并不能够有效且准确地决定某个迁移是否处于卡顿状态。结果就是,这个迁移任务会被错误地标记为处于卡顿状态。

在此次里程碑中,极狐GitLab 不再使用 8 小时的时间限制,而是仅在子工作进程停止工作 24 小时后,才将迁移标记为卡顿。

支持复杂合并请求依赖链

极狐GitLab 合并请求依赖功能是一个很棒的方法,用来确保那些依赖其他变更的代码变更不会以某种方式进行合并,从而阻塞或者破坏整个代码库。

围绕依赖层级结构及链中一些条目的限制现在已经被删除了。合并请求依赖现在变得更复杂了:单个合并请求可能被 10 个以上的合并请求所阻塞,反过来,就是阻塞了其他 10 个合并请求。更深的依赖链使得通过依赖关系表示更复杂的工作流程成为可能。我们很高兴看到你如何继续扩展此功能的使用。

极狐GitLab Runner 支持 SLSA 1.0 声明

现在 Runner 能够生成满足 SLSA 1.0 要求的治理元数据了。为了开启 SLSA 1.0,需要在 .gitlab-ci.yml文件中设置 SLSA_PROVENANCE_SCHEMA_VERSION=v1这个环境变量。SLSA 1.0 版本将在极狐GitLab 17.0 中变为默认版本。

在 SaaS 上重命名有镜像的项目

之前的版本中,如果一个项目包含有镜像(至少一个),那么在不删除这些镜像的情况下,用户是不能够对项目进行重命名的。

这就遇到了一个很现实的问题,那就是不得不强迫用户通过自定义的脚本去手动删除/移除所有的镜像标签,然后才能用不同的项目名称,但是现在你可以直接在 SaaS 上重命名项目了,即使它们的镜像仓库中包含有镜像。

DAST 漏洞检查更新

在 16.7 版本里程碑中,针对基于浏览器的 DAST,我们默认开启了以下检查:

  • 检查 89.1 代替了 ZAP 检查 40018、40019、40020、40021、40022、40024、40027、40033 及 90018,而且能够识别 SQL 注入。
  • 检查 918.1 代替了 ZAP 检查 40046 以及识别服务端请求伪造。
  • 检查 98.1 代替了 ZAP 检查 7 以及识别 PHP 远程文件包含。
  • 检查 917.1 代替了 ZAP 检查 90025 以及识别表达式语言注入。
  • 检查 1336.1 代替了 ZAP 检查 90035 以及服务端模块注入。

以最高优先级强制执行扫描执行策略中的变量

CI/CD 变量的优先级做了一些调整,定义在扫描执行策略中的变量具有最高优先级。

当组织努力满足合规性要求时,一个常见的需求是确保在关键的业务应用程序中启用安全扫描器。

扫描执行策略允许团队强制执行扫描,并且能够定义默认或者自定义的 CI/CD 变量。有了此强化版的 CI/CD 变量优先级功能,团队就有了足够的信心,不管流水线是如何被触发的,那些根据合规性定义的变量都会保持不变的。

在用户的个人资料中增加了 Mastodon 信息

现在你可以在用户个人资料中看到 Mastodon 信息了。通过这一增强功能,现在极狐GItLab 支持联邦多元化的社交网络,这将有助于推进 GitLab 的 ActivityHub 计划。

其他问题

Issue Board list 无法展开/收缩的修复方法

Issue Board list 无法展开/收缩的修复方法

60天免费试用极狐GitLab专业版

极狐GitLab不仅是源代码管理或CI/CD工具,它是一个覆盖完整软件开发生命周期和DevOps的开放式一体化平台。

企业版试用