Aug 28, 2023 - 极狐GitLab  
16.3

极狐GitLab 16.3 版本发布

沿袭我们月度发版机制,今天,我们很高兴的宣布极狐GitLab 16.3 正式发布。此次发布带来了价值流仪表盘中新的速率指标、针对扫描结果策略的额外过滤选项、使用 SSH 连接工作空间、Flux 同步状态可视化等多项功能。

沿袭我们月度发版机制,今天,我们很高兴的宣布极狐GitLab 16.3 正式发布。此次发布带来了价值流仪表盘中新的速率指标、针对扫描结果策略的额外过滤选项、使用 SSH 连接工作空间、Flux 同步状态可视化等多项功能。

此次发布还有超过 100 项功能改进。以下是此次版本发布的一些重点功能更新详情,请查阅。

极狐GitLab 16.3 主要功能

价值流仪表盘中新增新的速率指标

价值流仪表盘已经变得更强大了,因为新增了一些指标:合并请求(MR)吞吐量和议题关闭总数(速率)。在极狐 GitLab 中,MR 吞吐量是指每月所合并的 MR 总数,议题关闭总数是指在某个时间段内已关闭的流项目数量。

有了这些指标,你就可以识别每个月的生产力是高还是低,而且还能衡量 MR 及代码审核流程的效率。然后,你就可以测量出价值流交付是否真的在加速。

随着时间的推移,能够积累很多 MR 与议题相关的历史数据了。团队可以使用这些数据来确定交付速率是真的加速了还是需要进一步改进,而且能够为他们完成的工作量提供更准的估计和预测。

价值流仪表盘中新增新的速率指标

使用 SSH 连接到工作空间

使用工作空间,你可以创建可复制的、短暂的、基于云的运行时环境。自从 16.0 引入此功能以来,使用工作空间的唯一方法就是直接使用运行在环境中的基于浏览器的 Web IDE。然而,对用户来讲,Web IDE 并非总是最好用的工具。

在极狐 GitLab 16.3 中,你可以从你的桌面端使用 SSH 来很安全地连接到工作空间,然后来使用本地的工具和扩展。第一个迭代支持从 VS Code 或者从命令行编辑器,诸如 Vim 或 Emacs 中来直接进行 SSH 连接。对于其他编辑器的支持,诸如 JetBrains IDE 和 JupyterLab 会在将来的迭代中实现。

使用 SSH 连接到工作空间

Flux 同步状态的可视化

在之前的版本中,或许需要用 kubectl 或者其他第三方工具来检查 Flux 部署的同步状态。但是从极狐 GitLab 16.3 以后,你可以直接在环境的 UI 街面上查看你的部署了。

部署依赖于 Flux KustomizationHelmRelease 资源来收集给定环境的状态,当然,这需要为环境配置命名空间。默认情况下,极狐 GitLab 会在 KustomizationHelmRelease 资源中查找与项目名称相关的字段。

Flux 同步状态的可视化

扫描结果策略中额外的过滤选项

对于安全和合规团队来说,确定扫描结果是来自于哪一个安全或合规扫描流程,是一件非常具有挑战的事情。针对扫描结果策略的细粒度过滤器将能帮助您消除噪音,以确定哪些漏洞或者违规行为是需要您关注的。这些新的过滤器及更新都将无缝集成到工作流中:

  • 状态:状态规则的变更引入了针对“新漏洞”和“既有漏洞”之间的直观对比和执行。新的状态字段 new_needs_triage 将允许您仅筛选需要分类的新漏洞。
  • 年龄:根据漏洞检测到的日期,当漏洞超过 SLA(天、月或年)时,可以创建策略实现强制批准。
  • 可用的修复:缩小策略的重点,以解决具有可用修复策略的依赖。
  • 假阳性:针对 SAST 扫描结果、通过 Rezilion 进行的容器镜像扫描结果以及依赖项扫描结果,可以使用我们的漏洞提取工具来过滤掉已经被发现的假阳性漏洞。
扫描结果策略中额外的过滤选项

在 VS Code 中查看安全漏洞

现在可以在 VS Code 中直接查看安全漏洞了,就像你在合并请求中看到的一样。

您已经可以监控 CI/CD 流水线的状态、查看 CI/CD 作业的日志,并在极狐GitLab 工作流面板上查看整个研发流程。现在,当您为某个分支创建一个合并请求后,您就可以看到一些在之前的默认分支上从未发现过的安全漏洞。

此功能特性是极狐GitLab VS Code 工作流的一部分。安全扫描结果是通过 API 拉取的,因此此功能对于那些试用 16.1 以后版本的用户是可用的,而且是 SaaS 都私有化部署均可使用的。

在 VS Code 中查看安全漏洞

在并行作业中使用 needs 关键字

needs 关键字被用来定义作业之间的依赖关系。你可以使用关键字对于依赖于前序作业的作业进行配置,而不用遵从 stage 的顺序。当依赖作业完成后,当前作业就会立马执行,这能够加速流水线的执行。

之前的版本中,无法使用 needs 关键字来将 parallel matrix 作业设置为依赖,但在这个版本中,极狐 GitLab 启用了在 parallel matrix 作业中使用 needs 关键字的能力。现在,你可以为 parallel matrix 作业定义更加灵活的依赖关系了,这将帮助您更快的执行流水线。您的作业开始的越早,您的流水线完成的越早。

在并行作业中使用 `needs` 关键字

支持 Azure Key Vault 密钥管理器

现在可以很容易地从 CI/CD Job 中来获取存储在 Azure Key Vault 中的密钥信息了。新的集成简化了极狐 GitLab CI/CD 和 Azure Key Vault 的交互流程,这能够帮助简化构建和部署过程。

支持 Azure Key Vault 密钥管理器

极狐GitLab 16.3 其他功能

从 Bitbutket Server 导入的时候保存 PR 审核人员信息

直到现在,从 Bitbucket Server 导入的时候都不会导入 PR 审核人员信息,而是将他们归类到参与者中。PR 审核人员信息对于审计和合规来讲是非常重要的。

在极狐 GitLab 16.3 中,新增了对于从 Bitbucket 导入的时候导入 PR 审核人员信息的支持。当然,在极狐 GitLab 中,就变成了 MR 审核人员信息。

导航栏有更多的颜色可供选择

如果开启了新的导航栏,就可以选择 5 个不同色系主题中的其中一个,针对每一种都有浅色或者暗黑模式供选择。使用这些主题来区别不同的环境或者选择您最喜欢的颜色。

导航栏有更多的颜色可供选择

通过直接迁移功能进行迁移时无条目导出超时时间限制

直到现在,通过直接迁移来迁移群组和项目时,有一个 90 分钟的导出超时时间。此限制有效的排除了大型项目的迁移,因为只有那些能够在 90 分钟内迁移完毕的项目才被允许直接迁移。

而整体的迁移超时上限是 4 个小时,因此 90 分钟的导出超时就没有存在的必要了。在此次里程碑中,此限制被取消,也就意味着更大的项目也允许被迁移了。

将流水线名称显示为预定义的 CI/CD 变量

使用关键字 workflow:name 定义的流水线名称现在可以通过预定义的环境变量 $CI_PIPELINE_NAME 来访问了。

将流水线名称显示为预定义的 CI/CD 变量

SAST 分析器更新

极狐 GitLab SAST 包含很多由 GitLab 静态分析团队积极维护、更新及支持的分析器。在 16.3 版本中发布了以下更新:

  • 基于 Kics 的分析器已经更新到使用 1.7.5 的 Kics 引擎了。此次更新还包含了多个缺陷修复,还改进了 JSON 和 YAML 中自引用的错误处理。更多详情可查看变更日志
  • 基于 Semgrep 的分析器已经做了更新,增加了对在传递自定义配置期间指定不明确引用的支持。我们还更新了 SARIF 分析器,使其使用名称而非标题,并且不再在 SARIF toolExecutionNotifications 中出现错误级别的日志时就让扫描失败。更多详情可查看变更日志

如果你在极狐 GitLab 16.0 以后引用了极狐 GitLab 管理的 SAST 模版SAST.gitlab-ci.yml),那么你会自动接受到这些更新。为了使用特定版本的分析器并且阻止自动更新,你可以固定分析器的版本

对于之前的变更,请看上个月的更新

在 UI 界面上配置 Runner 标签以实现 DAST 的按需扫描

现在可以使用 Runner 标签来实现让哪一个 Runner 来执行按需的 DAST 扫描。在 16.3 之前,您可以通过 CI 配置文件使用私有部署的 Runner 来配置 DAST。此次发布的基于 UI 界面的配置让通过 UI 配置来管理 DAST 扫描变得更加高效了。

提高 SAST 的漏洞追踪能力

极狐 GitLab SAST 高级漏洞追踪能力通过在代码移动时追踪安全漏洞,提高了分类效率。在极狐 GitLab 16.3 中做了两点改进:

  1. 扩展了支持的语言:除了之前支持的语言外,我们启用了高级漏洞追踪能力来追踪:
  • C/C++,基于 Flawfinder 的分析器。
  • Java,基于 mobSF 的分析器。
  • JavaScript,基于 NodeJS-Scan 的分析器
  1. 更好的追踪能力:我们改进了追踪算法来处理 JavaScript 中的匿名函数。

这些都建立在极狐 GitLab 16.2 中发布的扩展和改进之上。我们还在做进一步的改进,包括对于更多语言的支持、对更多语言结构的更好处理以及对于 Python 和 Ruby 追踪能力的改进,详情可看史诗故事 5144

这些变更都包含在了极狐 GitLab SAST 分析器的更新版本中。使用更新的分析器扫描项目后,您项目的漏洞发现能力也会随着新的追踪签名而获得更新。您无需做任何改动即可获得这些更新,除非您已经将分析器固定到了一个特定的版本

Omnibus 改进

  • 极狐 GitLab 16.3 包含 Mattermost 8.0。此版本包含了安全更新,建议进行版本升级。
  • 我们的 Amazone Linux 构建现在已经在 Amazon Linux 2023 上了。Amazon Linux 2022 从未正式地官方表示可用,取而代之的是 Amazon Linux 2023,因为我们进行了调整。

功能特性开关进行换行而非截取

在之前的版本中,如果您使用了功能开关,您可能会注意到,较长的功能开关名称被截断了。这使得很难快速区分类似的功能开关名称。

在极狐 GitLab 16.3 中,会显示完整的功能特性开关名称。如果需要的话,较长的名称会进行换行。

安全机器人触发扫描执行策略流水线

安全机器人将会被创建用来支持对后台任务的管理,且对新创建或更新的安全策略项目链接强制执行安全策略。这对于安全和合规团队来讲,配置和执行策略将变得更加容易了,特别是消除了安全策略维护人员在开发项目中对维护开发人员访问权限的需要。当代表安全策略执行流水线时,安全策略机器人用户也会让强制项目中的用户更清楚,此机器人将作为流水线的作者。

当将安全策略项目链接到群组或子群组时,此群组或子群组下的每一个项目都会创建一个安全策略机器人。当链接是针对某个群组、子群组或者单个的项目时,将会为给定项目或者群组、子群组中的任何项目创建安全机器人用户。任何已经链接到安全策略项目的群组、子群组或者项目将不受此影响,但是用户可以重新建立链接以利用这个新特性。在极狐 GitLab 16.4 中,我们将计划为 JiHuLab.com 上所有已经有安全策略项目链接的项目开启安全机器人功能。

安全机器人触发扫描执行策略流水线

审计事件流名称

之前,审计事件流目的地是由目的地的 URL 来分配的。当您为某个群组或者实例设置多个流时,可能会感到困惑,因为您不得不在 UI 上点开流目的地来查看对应的过滤器及定制化的 Header 都是什么。

在极狐 GitLab 16.3 中,可以通过给审计事件流目的地命名,当您定义了多个流目的地时,这能够帮助您对它们进行区分和识别。

支持 Kubernetes 1.27 版本

此次版本增加了对发布于 2023 年 4 月份的 Kubernetes 1.27 版本支持。如果您在使用 Kubernetes,现在就可以将您的集群升级到最近的版本以便充分利用它的所有功能特性。

您可以阅读更多关于我们支持 Kubernetes 的策略以及支持的其他 Kubernetes 版本。

在应用程序设置配置导入限制

不管是通过直接迁移还是导入导出文件进行迁移时都存在硬编码的限制。

在此版本中,我们已经让这些变更变成了在应用程序设置中可配置,以便私有化部署的管理员根据自身需求来进行调整:

  • 在直接迁移中可以从源实例下载的最大关联大小。之前是硬编码的 5GB。在 JiHuLab.com 上,我们已经将其设置为了 5GB。
  • 最小的可以从远端对象存储(比如 AWS S3)导入的文件大小。之前是硬编码的 10GB。在 JiHuLab.com 上,我们已经将其设置为了 10GB。

我们还为导入的归档应用程序设置新增了一个新的最大解压缩文件大小限制,以取代 validate_import_decompressed_archive_size 功能标志。此设置为 10GB。在 JiHuLab.com 上,我们已经将其设置为了 25GB。

应用程序设置变更的审计事件记录

现在,对实例、群组及项目级别的应用程序设置变更也会被记录到审计日志中,并记录执行变更的用户信息。对于私有化部署和 SaaS 来讲,这提高了应用程序设置的审计能力。

CODEOWNERS 语法及文件验证

现在你可以在 UI 上查看你的 CODEOWNERS 文件是否有语法或格式错误了。能够指定代码拥有者带来了巨大的灵活性,这允许用户可以配置多个文件位置、文件部分及对应的规则等。有了新的语法验证功能,在极狐 GitLab UI 界面上就能够发现 CODEOWNERS 文件中的错误,这样修复变得更加容易。能够发现的错误如下:

  • 带有空格的条目。
  • 无法解析的部分。
  • 所有者格式错误。
  • 所有者不可访问。
  • 无所有者。
  • 所需批准少于 1 人。

之前,CODEOWNERS 文件并不验证写入到文件中的条目信息。这容易导致:

  • 规则描述的文件/路径不存在。
  • 创建和规则和既有规则冲突。
  • 因为错误的语法导致规则不生效。

极狐 GitLab Runner 16.3

此次版本还发布了极狐 GitLab Runner 16.3!极狐 GitLab Runner 是一个轻量级、高扩展的代理,可以用来运行 CI/CD 中的作业,然后将结果返回到极狐 GitLab 实例。极狐 GitLab Runner 和 CI/CD 一起使用,而 Ci/CD 是内置于极狐 GitLab 中的开源的持续集成服务。

新的变更:

  • 默认情况下,将项目克隆目录配置为安全

修复的缺陷:

  • Debian/RHEL 不支持 Runner v16.2.0
  • 使用 shell 执行器时,有时候拉取子目录失败

完成的变更列表可以查看极狐 GitLab Runner 变更日志

依赖项和许可证扫描支持 Java v21

现在,极狐 GitLab 依赖项和许可证扫描支持分析 Java v21 Maven lock 文件了。

对于泄露的 Postman API key 进行自动回复

我们已经将密钥扫描集成到了 Postman 中,以便更好的保护那些在极狐 GitLab 项目中使用 Postman 的客户。

密钥扫描能够查找 Postman API key。如果有 key 暴露到了 JiHuLab.com 的公共项目中,极狐 GitLab 会把泄露的 key 发送给极狐 Postman。Postman 会验证这个 key,然后通知 Postman API key 的所有者

这项集成对在 JiHuLab.com 上开启了密钥扫描的项目是默认开启的。密钥扫描对极狐 GitLab 所有付费层级都开放,但是对泄露密钥进行自动回复仅针对旗舰版用户的项目可用。

更多详情可以查看 Postman 关于此项集成发布的博客

Geo 验证群组 Wiki

现在 Geo 能够检测并更正在静止和传输过程中造成群组 Wiki 的数据损坏。如果你将 Geo 作为灾难恢复策略的一部分,这能够帮助您在故障发生时防止数据丢失。

从项目搜索结果中选择包含还是剔除已归档的项目

您现在可以选择在搜索结果中包含还是剔除已归档的项目。默认情况下,归档项目是剔除在外的。此功能现在在极狐 GitLab 的项目搜索中已经可用了。对于全局搜索的支持将会在将来的版本中实现。

从项目搜索结果中选择包含还是剔除已归档的项目

合规报告重命名为合规中心

为了促进合规性相关的功能增长,让其从报告扩展到管理。极狐 GitLab 的合规性报告部分进行了重命名,以反映该领域的功能在不断增多增强。

从极狐 GitLab 16.3 开始。合规报告被称为合规中心。

实例级别的流审计事件过滤器

在极狐 GitLab 16.2 中,新增了实例级别的审计事件流,然而,并没有可用的过滤器来应用到这些流中。

在极狐 GitLab 16.3 中,可以按审计事件类型将过滤器应用到实际级的审计事件流中。通过在 UI 中添加这些过滤器,您可以捕捉想要发送到每个流目的地的审核时间的子集,只关注在那些与您相关的事件上。

提高扫描结果策略的精度

扫描结果策略是一种安全策略,用于在违反特定规则时对于合并请求进行评估和阻断。审核人员可以审核和批准代码变更,或者与他们的研发团队一起来解决问题(比如解决重要的安全漏洞)。

之前,我们通过对最新源分支和目标分支上的漏洞,来检测任何新的违反策略的行为。但是,这可能无法捕获由于各种流水线运行过程中扫描检测到的漏洞。为了提高精确度,我们对每一个流水线源(父/子流水线除外)进行最近完成的流水线对比。这确保了更高的准确性而且减少了意外情况下需要批准的案例发生概率。

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

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

企业版试用