Nov 28, 2023 - 极狐GitLab  
16.6

极狐GitLab 16.6 版本发布

沿袭我们的月度发版机制,今天我们正式发布极狐GitLab 16.6。此次发布带来了关于 CI/CD 组件与目录、只包含默认分支的最小 fork 及安全合规等方面的众多功能更新。

沿袭我们的月度发版机制,今天我们正式发布极狐GitLab 16.6。此次发布带来了关于 CI/CD 组件与目录、只包含默认分支的最小 fork 及安全合规等方面的众多功能更新。

以下是此次版本发布的一些重点功能更新详情,请查阅。

极狐GitLab 16.6 主要功能

自动认证为企业用户

当 JihuLab.com 用户的主邮箱地址和既有且已经验证过的域名相匹配时,此用户就会被自动认证为企业用户。这让群组拥有者能够更好的管控用户,并且增强了用户账号的可见性。当用户成为企业用户以后,他们只能将其主邮箱域名修改为组织拥有且经过验证的域名。

自动认证为企业用户

只包含默认分支的最小 fork

在之前的版本中,fork 一个仓库往往会 fork 该仓库的所有分支。在此版本中,fork 的时候可以仅 fork 默认分支,这减少了复杂度而且节约了存储空间。如果你不想要那些存在于其他分支上的代码变更时,那就直接创建一个最小 fork 就行。

默认的 fork 方法不会发生变化,fork 的时候依旧会包含所有的分支。新增的选项会明确哪一个分支是默认分支,以便明确在新的 fork 中需要包含哪一个分支。

只包含默认分支的最小 fork

允许用户将强制执行 MR 审核设置为合规策略

企业对于代码变更的审核越来越严格,这些变更可能会部署到生产环境上,并且使企业面临合规风险和安全漏洞所带来的潜在风险。使用扫描结果策略,可以确保所有变更代码必须要两人审核之后才能进行合并。

扫描结果策略新增了一个针对任意合并请求的选项,可以和基于角色的审批人员这一功能一起使用,用来确保针对选定分支的合并请求需要至少两个用户审批才能进行合并,且用户需要具备一定的角色(拥有者、维护者或者开发者)。

此功能在 16.6 的 SaaS 上可用。对于私有化部署来说,是通过功能开关 scan_result_any_merge_reuqest来实现的,此功能将在 16.7 中默认开启。

允许用户将强制执行 MR 审核设置为合规策略

CI/CD 组件功能发布 Beta 版

在极狐GitLab 16.1 中,我们发布了一个处于试验阶段的功能,叫做 CI/CD 组件。组件是一种流水线构建块,可以在即将到来的 CI/CD 目录(catalog)中被检索到。

今天,我们很高兴地宣布,CI/CD 组件功能来到了 Beta 版。在此版本中,在初始版的基础上,我们还改进了组件文件夹的结构。如果你已经在使用试验版本的 CI/CD 组件功能,现在可以迁移到新的文件夹结构了。可以在这儿查看更多样例。旧的文件夹结构已被弃用,我们计划在将来的几个版本中陆续移出旧的文件夹结构。

如果你想尝试一下 CI/CD 组件功能,欢迎你同时试用当前处于试验阶段的 CI/CD 目录功能。你可以在全局 CI/CD 目录中查找别人创建且上传的组件来使用。此外,你还可以创建自己的组件,然后将它们上传到 CI/CD 目录中。

CI/CD 组件功能发布 Beta 版

CI/CD 变量管理的 UI 界面改进

CI/CD 变量是极狐GitLab CI/CD 基础功能的一部分,我们认为可以为变量管理提供更好的 UI 体验。因此在这个版本中,我们使用了新的方法对 UI 进行了设计,这种设计布局改进了添加、编辑 CI/CD 变量的流程。

比如,当你想要将 CI/CD 变量保存为隐藏类型的时候,会进行隐藏验证,如果验证失败,你不得不重做一遍。但是现在,你可以得到实时的验证结果,然后根据结果进行调整,而不用重做一遍。

CI/CD 变量管理的 UI 界面改进

Runner 队列仪表板—基础指标(Beta)

对私有化部署 Runner 队列的维护者来说,他们需要更好的可观测性,以便快速回答与 Runner 队列基础设施有关的问题。现在,有了 Runner 队列仪表盘—管理视角(Beta),就可以通过可执行的洞察视角来帮助你快速回答重要的 Runner 队列问题以及与研发人员体验有关的问题。这些问题可能有很多,诸如哪些 Runner 运行出错、CI 作业执行时 Runner 队列的性能问题以及最常用的 Runner 是哪些等等。旗舰版用户可以单独开启此功能。

Runner 队列仪表板—基础指标(Beta)

极狐GitLab 16.6 其他功能

导入失败时的完整列表

之前,当通过直接迁移的方式对极狐GitLab 项目和群组进行迁移时,如果迁移完成但是有一些条目(比如合并请求或者议题)没有被成功导入时,你可以在被导入群组或项目列表的界面上,通过点击详情按钮来查看具体错误。

然而,错误列表对于了解有多少项以及哪些条目未成功导入来说没有太大的帮助。有了这些信息的帮助就能够很好的理解导入流程的具体结果了。

在此版本中,我们将详情按钮替换成了查看失败的链接点击查看失败链接就会跳转到一个新的页面,这个页面上列出了给定群组或项目中所有导入失败的条目。针对每一个未导入的条目,你可以看到:

  • 条目的类型。比如,合并请求或议题。
  • 发生了什么样的错误。
  • 相关联的 DI,对于调试来讲非常有帮助。
  • 条目在源实例上的 URL,如果有的话(具有 iid的条目)。
  • 条目在源实例上的标题,如果有的话。比如合并请求的标题或议题标题。

阻止上传重复的 NuGet 包

可以使用极狐GitLab 软件包仓库来发布或者下载项目的 NuGet 包。默认情况下,你可以多次发布同名且同版本的软件包。

然而,你可能想要防止这种重复的上传,特别是在发版的时候。在此版本中,极狐GitLab 对软件包仓库的群组设置进行了扩展,因此你可以允许或者拒绝重复软件包的上传。

你可以使用极狐GitLab API 或者在 UI 界面上来对此设置进行调整。

增加了对使用 Java 21 的 SBT 项目的支持

现在,依赖项扫描和许可证扫描支持使用 Java 21 的 SBT 项目了。

允许合规团队阻止将代码推送/强制推送到默认分支

这是其中一个被添加到扫描结果策略中用以助力安全合规策略强制执行的新增功能,这种控制能够限制利用项目级设置来规避策略的能力。

针对每一个既有或新的扫描结果策略,可以通过开启 阻止推送和强制推送来让此功能在定义好的策略中生效,以阻止那些不通过合并请求而是直接将代码推送到某个分支上的用户。

目前仅在 16.6 的 极狐GitLab SaaS 生效。对于私有化部署来说,是通过功能开关 scan_result_policies_block_force_push来实现的,此功能将在 16.7 中默认开启。

允许合规团队阻止将代码推送/强制推送到默认分支

服务账号有了可选的到期日期

极狐GitLab 管理员和群组拥有者可以选择他们是否想为服务账号来设置过期日期。之前的版本中,服务账号令牌必须在一年内过期,这比较符合个人、项目以及群组访问令牌的过期限制。这能够让管理员或者群组拥有者在符合他们预期的前提下,在安全性和易用性之间做出平衡。

使用基本的 HTTP 认证将包上传到 Maven 仓库

现在,极狐GitLab 软件包仓库支持使用基本的 HTTP 认证方式来上传 Maven 包了。之前的版本中,你只能使用基本的 HTTP 认证来下载 Maven 包。这种不一致性很难让开发人员来为项目的认证进行配置和维护。

不支持使用 sbt来发布制品,但是议题 408479 已经在讨论来添加此功能了。

容器扫描:排除不能修复的漏洞

容器扫描结果中可能会包含一些供应商经过评估之后决定不修复的漏洞。为了能够聚焦在可修复的漏洞上,现在可以在扫描结果中排除这些漏洞了。有关配置选项,可以参考极狐GitLab 文档。

关于漏洞报告工具过滤器的更改

在之前的版本中,可以使用极狐GitLab 支持的工具类型列表来对漏洞报告进行过滤,然后按照自定义扫描器的动态列表来筛选。此次版本中,可以按照分析器分组的方式来选择工具类型了。

关于漏洞报告工具过滤器的更改

极狐GitLab 静默模式

当极狐GitLab 静默模式开启后,就会阻止所有的主要出站流量,诸如通知邮件、集成、webhook 以及与其他极狐GitLab 实例的镜像等。这可以让你针对极狐GitLab 站点来做一些测试,而不必去产生针对用户或者其他集成的真实流量。可以使用静默模式来测试恢复备份或升级 Geo DR 站点,整个过程不会影响主极狐GitLab 站点或最终用户。

对未经授权的用户会隐藏掉群组名称

在之前的版本中,当访问项目或群组成员页面的群组选项卡时,所有用户都可以看到私有群组的名称。为了提高安全性,我们现在对非共享群组、共享项目或被邀请群组中的用户隐藏了私有群组的名称和来源。取而代之的是,这些信息将会展示为私有

对未经授权的用户会隐藏掉群组名称

极狐GitLab Runner 16.6

此次我们还发布了极狐GitLab Runner 16.6 版本。极狐GitLab Runner 是一个轻量级、高扩展的代理,用来运行你的 CI/CD 作业并且将结果发送回极狐GitLab 实例。极狐GitLab Runner 和极狐GitLab CI/CD 绑定在一起,而极狐GitLab CI/CD 是一个开源且内置在极狐GitLab 里面的服务。

新的变更:

  • 实现了对 Docker 执行器的优雅关闭。
  • 在云原生环境下动态创建 PVC。
  • 在 Kubernetex 执行器中,使用 image.entrypoint覆盖容器的 entrypoint。

修复的缺陷:

  • 升级到 16.5 之后,Pod 由于存活探针失败错误导致持续重启。
  • 调试终端—变量包含文件内容而不是文件路径。
  • 在 Kubernetes 中,作业执行 Pod 无法处理信号。
  • 使用 Podman 的极狐GitLab Runner Docker 执行器中的服务无法启动。

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

使用极狐GitLab CLI 来连接 Kubernetes 集群

从极狐GitLab 16.4 开始,你就可以通过 Kubernetes agent 和个人访问令牌来从本地命令行终端连接 Kubernetes 集群。初始版本中,设置本地集群配置需要执行多个命令,而且需要一个长期有效的访问令牌。在过去几个月中,我们通过扩展极狐GitLab CLI 来简化设置流程,并且提高了设置的安全性。

DAST 分析器更新

在极狐GitLab 16.6 的发版里程碑中,对基于浏览器的 DAST 来讲,默认情况下,我们开启了如下的激活检查:

  • 检查 94.1 取代了 ZAP 检查 90019,这能够识别服务侧的代码注入(PHP)。
  • 检查 94.2 取代了 ZAP 检查 90019,这能够识别服务侧的代码注入(Ruby)。
  • 检查 94.3 取代了 ZAP 检查 90019,这能够识别服务侧的代码注入(Python)。
  • 检查 943.1 取代了 ZAP 检查 40033,这能够识别数据查询逻辑中的特殊元素。
  • 检查 74.1 取代了 ZAP 检查 90017,这能够识别 XSLT 注入。

将群组级别的审计事件流发送到 AWS S3

通过和外部日志记录或数据聚合工具的集成,现在可以将 AWS S3 作为群组级别的审计事件流的目的地了。此功能提供了一些相关的信息,以便能够更轻松、更顺利地完成集成。

之前的版本中,你不得不通过定制化 HTTP header 来构建出 AWS S3 能够接受的请求。这种方法很容易出错并且很难进行故障排查。

为所有用户提供一致的导航栏体验

极狐GitLab 16.0 发布了全新的导航栏体验,而且从 2023 年 6 月 2 日成为了所有用户的默认体验。在后续的里程碑中,基于用户的一些有价值的反馈,我们做了很多改进。退回到旧导航栏的功能已经被删除。计划对导航栏进行更多令人兴奋的更改,但目前所有用户的体验都是一致的。

我们来回顾一下,使用极狐GitLab 新的导航栏体验,你可以:

  • 固定菜单栏选项以便将你最常用的项目或者群组条目保存到最顶端
  • 隐藏和“查找”导航栏以显示更宽的屏幕
  • 通过使用快捷键来快速查找菜单选项
  • 继续使用你在之前导航栏中使用的所有主题
  • 使用与 DevOps 工作流保持一致的区域划分

在极狐GitLab UI 界面上实时更新 Kubernetes 状态

在极狐GitLab 16.6 中,你可以使用集成在环境页面上的集群 UI 来查看当前运行应用程序的集群状态,而这无需离开极狐GitLab 然后在其他平台上来完成。之前的版本中,当 UI 页面加载的时候会有一个一次性的请求来获取集群的状态,这让状态的追踪显得很笨重。16.6 中,极狐GitLab 升级了底层连接,使用 Kubernetes watch API 来获取 Flux 调谐状态和 Pod 状态,以便能够在极狐GitLab UI 上提供近乎实时的集群状态更新。

在导出的漏洞报告中包含 CVSS 矢量

在此版本中,当从漏洞报告中导出信息时,就会包含 CVSS 矢量信息了。这些额外的数据能够帮助你在极狐GitLab 之外对漏洞进行分析和分类。

改进了对无响应的外部状态检查的处理

在之前的版本中,针对合并请求的外部状态检查会对外部 URL 进行轮询,直到收到成功或者失败的响应。这可能会导致某些状态检查始终处于无响应的状态。

现在,设置了一个 2 分钟超时,以便你可以重试那些没有从外部系统获得任何响应的状态检查。

在查找结果中默认隐藏掉归档项目

在之前的版本中,用户会在项目的查找结果中看到很多已经归档的项目。这是有问题的,特别是当归档项目占据查找结果的前几名时。现在,我们默认会过滤掉归档的项目,当然,用户可以通过选择包含归档项目来查看所有的项目。

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

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

企业版试用