Sep 28, 2023 - 极狐GitLab  
16.4

极狐GitLab 16.4 版本发布

沿袭我们月度发版机制,今天,我们很高兴的宣布极狐GitLab 16.4 正式发布。此次发布带来了自定义角色、群组/子群组级别的依赖项列举、使用极狐GitLab 用户识别码来通过本地访问集群、为私有项目创建工作空间等多项功能。

沿袭我们月度发版机制,今天,我们很高兴的宣布极狐GitLab 16.4 正式发布。此次发布带来了自定义角色、群组/子群组级别的依赖项列举、使用极狐GitLab 用户识别码来通过本地访问集群、为私有项目创建工作空间等多项功能。

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

极狐GitLab 16.4 主要功能

自定义角色

群组拥有者或管理员现在可以在角色和权限菜单下面创建或移除自定义角色了。为了创建一个自定义角色,你需要在既有的基本角色顶层来添加权限。当前,仅有少量权限能够被添加到基本角色上面,包括细粒度的安全权限、批准合并请求以及查看代码的权限。每一个里程碑,我们都会发布新的权限,这些权限可以被添加到既有的权限里面,用以创建自定义角色。


为私有项目创建工作空间

之前的版本中无法为私有化项目创建工作空间。为了克隆一个私有化项目,你只能在创建工作空间后来验证自己的身份。

在极狐GitLab 16.4 中,你可以为任何公共或私有项目创建工作空间。当你创建工作空间时,你会得到一个在工作空间中使用的个人访问令牌。有了这个令牌,你就可以克隆任何私有项目并且执行 Git 操作,而这些都无需任何额外的配置或者验证。

为私有项目创建工作空间

使用极狐GitLab 用户身份识别从本地访问集群

研发人员在访问Kubernetes集群时,需要提供研发人员的云账号,或者第三方的身份验证工具。这增加了云身份认证和访问管理的复杂性。现在你可以使用研发人员的极狐GitLab 身份识别和 Kubernetes agent 来给研发人员赋予访问 Kubernetes 集群的权限。然后在集群内使用传统的 RBAC 来管理集群内的权限管理。

与极狐GitLab 流水线中的 OIDC 云身份识别一起,这些功能就能允许用户在无需专有云账号的情况下就能访问云资源,而且也不会危及安全性和合规性。

在此功能的第一个迭代中,你必须手动管理你的 Kubernetes 配置Epic 11455 提议通过扩展极狐GitLab CLI 相关的命令来简化这一设置。


群组/子群组级别的软件组件依赖列表

当查看软件组件依赖项列表时,有一个整体概览是非常重要的。对于大型组织或企业来讲,管理项目级别的软件组件依赖是困难重重的,因为大型组织或企业通常想对组织内所有项目的软件组件依赖进行审计。在这个版本中,你可以看到项目级别、群组级别(包括子群组)的所有组件依赖。此功能现在是默认可用的。

群组/子群组级别的软件组件依赖列表

漏洞批量状态更新

一些漏洞需要批量来处理。不管它们是假阳性还是不再需要被检测的,最小化噪音及对漏洞分类管理是非常重要的。此次发版中,你可以从群组或项目的漏洞报告中对多个漏洞进行批量处理,比如状态变更或添加注释。

漏洞批量状态更新

细粒度的安全权限管理

有些企业或组织希望为其安全团队给予最少的必要的访问权限,以便他们能够遵守最小权限原则。安全团队不应该有编写代码更新的权限,但是他们必须要有审批合并请求、查看漏洞以及更新漏洞状态的权限。

极狐GitLab 现在允许用户基于报告者角色的访问权限来自定义角色,但添加了以下权限:

  • 查看依赖列表(read_dependency)。
  • 查看安全仪表盘和漏洞报告(read_vulnerability) 。
  • 批准合并请求(admin_merge_request)。
  • 修改漏洞状态(admin_vulnerability。

我们计划在 17.0 中为所有层级的用户删除从开发者角色中修改漏洞状态的能力,这已经被记录到了弃用条目中。关于这个提议的任何反馈都可以分享在议题 424688 中。


合并列车支持快进合并(Fast-forward)

快进合并(Fast-forward)是一种常用且流行的合并方法,能够避免合并提交,但是却需要更多的 rebase。合并列车是一个强大的工具,能够帮助解决将代码频繁合并到主分支过程中所遇到的一些重大挑战。很不幸的是,在此版本之前,你是无法同时使用合并列车和快进合并的。

在此版本中,私有化部署的管理员可以在同一个项目中同时开启快进合并和合并列车功能。你可以获取合并列车所带来的所有好处,这能够确保在代码被合并之前,所有的提交都能够很好的工作,并且所有提交都有快进合并所具有的干净整洁的提交历史。

为了开启快进合并的合并列车功能,需要打开 fast_forward_merge_trains_support功能开关,这个默认是关闭的,需要打开它。

合并列车支持快进合并(Fast-forward)

设置全局 id_token 并移除对单个作业的配置

在极狐GitLab 15.9 中,我们宣布了弃用老版本的 JSON web token,取而代之的是 id_token。不幸的是,为了应对这个变更,需要单独对作业进行修改。为了平滑使用 id_token,从极狐GitLab 16.4 开始,可以在 .gitlab-ci.yml文件中为 id_token设置一个默认值。此功能会为每一个作业自动设置 id_token配置。使用 OIDC 进行鉴权的作业将不再需要单独设置 id_token。

通过第三方服务使用id_token和OIDC进行鉴权认证。必要的 aud子关键字被用来进行 JWTaudclaim 配置。

设置全局 `id_token` 并移除对单个作业的配置

极狐GitLab 16.4 其他功能

为提及到的群组触发 Slack 通知

针对特定的极狐GitLab 事件,极狐GitLab 可以发送消息到 Slack 工作空间频道。此次发版,在私有或公共频道中提及到群组相关的以下内容时,你都可以设置发出 Slack 通知:

  • 议题和合并请求描述
  • 议题评论、合并请求及提交

使用 API 来创建自定义角色名称和描述

当创建自定义角色时,现在你可以使用成员角色的 API 来添加名称(必选)和描述(可选)。任何既有的自定义角色都已经有了给定的名称 Custom,你可以使用 API 将自定义角色的名称改成你想要的。

拥有维护者角色的用户可以查看 Runner 详情

拥有群组维护者角色的用户现在可以查看群组 Runner 的详情了。有此角色的用户可以查看群组 Runner 来快速决定哪些 Runenr 是可用的,或者快速验证那些自动创建的 Runenr 被成功注册到了群组命名空间下面。

拥有维护者角色的用户可以查看 Runner 详情

SAST 分析器更新

极狐GitLab SAST 包含众多由 GitLab 静态分析团队日常维护、更新和支持的安全分析器。我们在 16.4 版本这个里程碑中发布了以下更新:

  • 将 KICS 扫描器中基于 KICS 分析器的版本更新至 1.7.7。更多详情可以查看变更日志
  • 将 Sobelow 扫描器中基于 Sobelow 分析器的版本更新至 0.13.0。我们还将分析器的镜像更新到了 Elixir 1.13,以便用 Elixir 近期版本中的功能来改善兼容性。更多详情可以查看变更日志
  • 将 PMD 扫描器中基于 PMD Apex 分析器的版本更新至 6.55.0。更多详情可以查看变更日志
  • 修改基于审计的 PHPCS 安全分析器,以移除 Security.Misc.IncludeMismatch规则。更多详情可以查看变更日志
  • 更新基于 Semgrep 的分析器规则,用来修复规则错误、修复规则描述中的损坏链接以及解决具有相同规则 ID 的 Java 和 Scala 规则之间的冲突。我们还将自定义规则文件的最大值增加到了 10MB。更多详情可以查看变更日志

如果你引用了极狐GitLab 管理的 SAST 模版(SAST.gitlab-ci.yml)并且运行了极狐GitLab 16.0 及以上版本,你将会自动接受到这些更新。为了停留在某个特定版本的分析器上并且阻止自动更新,你可以将分析器的版本固定下来

对于先前的变更,可以查看上个月的更新

提高 SAST 的漏洞追踪能力

极狐GitLab SAST 高级漏洞追踪通过追踪代码变更时的漏洞让漏洞分类变得更加高效。

在极狐GitLab 16.4 中,我们为一些新的语言和分析器开启了高级漏洞追踪。除了既有的语言覆盖,高级追踪还增加了对以下内容的支持:

  • Java,基于 SpotBugs 的 SAST 分析器
  • PHP,基于 PHPCS 安全审计的 SAST 分析器

这些都建立在极狐GitLab 16.3 之前发布的扩展和改进基础上。进一步的改善都在 epic 5144 中。

这些变更都包含在最新版本的极狐GitLab SAST 分析器中。使用最新的分析器扫描项目后,你的项目漏洞发现结果将使用新的跟踪签名进行更新。你不需要做任何操作就能够获得这些更新,除非你已经将 SAST 分析器固定到了某一个特定的版本

私有镜像仓库支持操作容器扫描功能

操作容器扫描现在可以访问并且能够从私有容器镜像仓库来扫描镜像了。OCS 使用镜像拉取密钥(image pull secrets)来访问私有镜像仓库。

为服务台自定义邮箱地址

服务台是企业和客户之间最有意义的连接之一。现在你可以使用你的自定义邮箱地址来为服务台发送和接收邮件。有了此变更,将让品牌维护以及让客户相信他们正在与正确的实体进行沟通而变得更加容易。

此功能尚在 Beta 版。我们鼓励用户来尝试 Beta 版功能并且在反馈议题中提供更多的反馈。

Geo 支持在云原生混合站点上使用统一的 URL

Geo 现在支持在云原生混合站点上使用统一的 URL,这也就意味着云原生混合站点可以与主站点共享一个单一的外部 URL。这为你的远程团队带来了极好的极狐GitLab UI 和 Git 研发体验,他们可以使用单个通用的 URL,然后根据其位置自动将其定向至最优的 Geo 从节点。通过这个更新,所有的极狐GitLab 参考架构现在都支持统一的 URL 了。

在下游流水线中支持 `environment` 关键字

如果你需要从某个 CI/CD 流水线作业中来触发一个下游流水线,那么你可以使用 trigger关键字。为了强化你的部署管理,现在,当你使用 trigger关键字的时候你可以通过 environment关键字来指定一个环境。比如,你可以使用环境名称 dev和指定的环境 URL 来触发 /web-app项目主分支上的下游流水线。

之前,当你为 CI 和 CD 运行单独的流水线的时候,你需要用 trigger关键字来开始 CD 流水线,指定环境详情是不可能的事情。这让从 CI 项目来追踪部署情况变得很困难。增加对于环境的支持简化了跨项目的部署情况追踪。

当访问过期时发送邮件通知

当用户的群组或项目访问过期 7 天之前,用户将收到邮件通知。这只适用于设置了访问过期时间设置的情况下。之前,当访问过期时是没有任何通知的。进一步的通知意味着你可以联系你的极狐GitLab 管理员来确保你的持续访问。

为添加或撤销表情符号反应而添加 webhook

为了能够为自动化和第三方系统集成带来更多可能性,我们已经增加了对于 webhook 创建的支持,这些 webhook 在用户添加或撤销表情符号反应的时候被触发。

比如,你可以使用新的 webhook 在用户对议题或合并请求做出表情反应时发送电子邮件。

在应用程序设置中扩展了可配置的导入限制调整

我们在近期将少量硬编码的导入限制变成了可配置的应用程序设置,这能够让私有化部署的管理员来根据自身的需求进行这些限制的调整。

在此版本中,我们已经将解压归档文件超时添加为可配置的应用程序设置。

此限制的硬编码时间为 210 秒。在 SaaS 和私有化部署版本上的设置均为 210 秒。私有化部署和 SaaS 管理员均可以根据自身需求进行调整。

极狐GitLab Runner 16.4

今天,我们还发布了极狐GitLab Runner 16.4。极狐GitLab Runner 是一个轻量级、高扩展的代理,用来运行你的 CI/CD 作业并且将结果发送回极狐GitLab 实例。

新的改进:

修复的缺陷:

所有变更可以查看极狐GitLab Runner 变更日志

依赖项和许可证扫描支持 pnpm lockfile v6.1

感谢来自 Weyert deBoer 带来的社区贡献,极狐GitLab 依赖项和许可证扫描现在支持使用 v6.1 lockfile 格式来分析 pnpm 项目了。

流水线级别的 CycloneDX SBOM 导出

我们已经新增了一个 API,能够让你下载 CycloneDX 格式的 SBOM,此 SBOM 能够列举出 CI 流水线中检测到的所有组件。它包括应用级别的依赖和系统级别的依赖。

默认开启基于浏览器的 DAST 激活检查 22.1 识别码

基于浏览器的 DAST 激活检查 22.1 现在已经默认开启了。它替代了已经被禁用的 ZAP 检查 6。检查 22.1 识别码意味着“对受限制目录的路径名的不正确限制(路径遍历)”,这可以通过将有效负载插入 URL 端点上的参数来利用该漏洞,从而允许读取任意文件。

Elasticsearch 索引完整性现在已正式可用

在极狐GitLab 16.4 中,Elasticsearch 索引完整性已经对所有 GitLab 用户可用。索引完整性能够帮助检测和修复丢失的仓库数据。

当在群组或项目范围内搜索代码并且未返回结果时,此功能就会被自动使用。

Geo 验证对象存储

当对象存储副本被极狐GitLab 管理时,Geo 新增了对于对象存储验证的能力。为了保护你的对象存储数据免遭损坏,Geo 会对比主从站点上的文件大小。如果你将 Geo 作为灾备策略的一部分,而且你开启了极狐GitLab 自管理的对象存储副本功能,这将能够保护你的数据免遭丢失。此外,这也省去了拷贝那些已经在从节点上存在的数据。比如,当将老的主节点设置为从节点时。

允许用户定义分支例外来强制执行安全策略

安全策略能够强制在极狐GitLab 项目中进行安全扫描,而且能够强制执行 MR 检查/批准,以确保安全和合规。有了分支例外,你可以更精细地实施策略并排除对超出范围的给定分支实施安全策略。如果开发人员创建的开发或测试分支无意中受到极其严格的安全策略影响,那么他们就可以和安全团队一起将该分支排除在安全策略之外。

针对扫描执行策略,你可以为流水线调度规则类型配置例外。对于扫描结果策略,你可以为 scan_finding 或 license_finding 指定分支例外。

允许用户定义分支例外来强制执行安全策略

对过期访问令牌发送通知

在自动化过程中会频繁用到群组或项目的访问令牌。当这些令牌中的其中一个即将要过期时,能够通知管理员或者群组拥有者是非常重要的,因为这能够避免一些中断事件的发生。现在,当令牌距离过期日还有不到 7 天时,管理员和群组拥有者就会收到通知邮件。

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

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

企业版试用