极狐GitLab 17.3 重点功能解读 & 升级指南

沿袭我们的月度发布传统,极狐GitLab 发布了 17.2 版本,该版本带来了从极狐GitLab UI 上删除 Pod、从本地终端轻松连接到集群以及为单个项目添加多个合规框架等几十个重点功能的改进。下面是部分重点功能的详细解读。

关于极狐GitLab 的安装升级,可以查看官方指导文档。

极狐GitLab 是 GitLab 在中国的发行版,对于中国用户使用体验更友好。关于安装&升级指南可以查看官网文档

  • 17.3 容器镜像
registry.gitlab.cn/omnibus/gitlab-jh:17.3.0-jh.0
  • 17.3 Helm Chart
helm search repo gitlab-jh
NAME                       CHART VERSION    APP VERSION    
gitlab-jh/gitlab           8.3.0            v17.3.0        
gitlab-jh/gitlab-runner    0.68.0           17.3.0         

17.3 重要改进

从极狐GitLab UI 上删除 Pod

基础版 专业版 旗舰版
SaaS Y Y Y
私有化部署 Y Y Y

你是否曾经遇到过需要重启或者删除失败的 Kubernetes pod?直到现在,你都不得不离开极狐GitLab,使用其他工具来连接集群,然后停止 pod 并等待新 pod 的生成。现在,极狐GitLab 内置了一个功能,可以用来删除 pod,这样你就可以很丝滑地对 Kubernetes 集群进行故障排查了。

Kubernetes 仪表盘能够列出 Kubernetes 集群或者命名空间下的 pod,然后你可以直接在仪表盘上删除 pod。

从本地终端轻松连接到集群

基础版 专业版 旗舰版
SaaS Y Y Y
私有化部署 Y Y Y

你想使用本地终端或某个 Kubernetes GUI 工具来连接 Kubernetes 集群吗?极狐GitLab 允许你通过使用 Kubernetes agent 中的用户访问功能来连接到本地终端。之前,想要查找命令的时候,就不得不跳出极狐GitLab 去查阅文档。现在,极狐GitLab 在 UI 上提供了连接命令。极狐GitLab 甚至能够帮对用户访问进行配置。

如果要获取连接命令,你可以前往 Kubernetes 仪表盘或者 agent 列表去查看。

为单个项目添加多个合规框架

基础版 专业版 旗舰版
SaaS Y Y
私有化部署 Y Y

你可以创建一个合规框架,以识别你的项目是否具有特定的合规要求或需要额外的监管。合规框架可以对其应用的项目强制执行合规的流水线配置。

之前,单个合规框架只能应用到单个项目上,这就难以将多个合规需求应用到单个项目上。现在,我们为用户提供了可以将多个合规框架应用到单个项目上的能力。这将允许用户在给定时间内将多个不同的合规框架应用到单个项目上。在此版本中,你可以为单个项目应用多个合规框架。该项目随后被设定为满足每个框架的合规要求。

17.3 的其他改进

使用命令面板找到群组设置

基础版 专业版 旗舰版
SaaS Y Y Y
私有化部署 Y Y Y

在极狐GitLab 17.2 中,我们新增了一个功能:通过使用命令面板来查找群组设置。这让找到群组设置变得简单了很多。

在极狐GitLab 17.3 中,你依旧可以从命令面板来查找群组设置。通过访问群组,选择搜索或转到,然后输入命令模式 >,接着输入设置部分的名称,比如合并请求批准。选择某个结果就可以直接跳转到设置本身了。

通过使用 API 对集成的继承设置进行切换

基础版 专业版 旗舰版
SaaS Y Y Y
私有化部署 Y Y Y

直到现在,你都只能通过 UI 来控制一个项目是继承了集成设置,还是使用它自身的设置。

在这个里程碑中,我们为所有的集成 API 新增了一个 user_inherited_settings的参数。这个参数允许你在使用 API 的时候来对项目进行设置,以决定项目是否要继承集成设置。如果不设置的话,默认的行为是 false(也就是使用项目自身的设置)。

将合并请求添加到任务中

基础版 专业版 旗舰版
SaaS Y Y Y
私有化部署 Y Y Y

议题(Issue)通常被拆解为工程师能更能容易实现的步骤——任务(Task)。在之前的版本中,是没有办法把合并请求连接到任务实现中的。现在,你可以使用在合并请求描述中引用议题时相同的关闭模式将合并请求与任务关联起来。从任务的角度看,连接到的合并请求可以在侧边栏中看到。如果你的项目开启了自动关闭设置,当关联的合并请求被合并到默认分支以后,该任务就会被自动关闭。

报告任务、目标和关键结果条目的滥用情况

基础版 专业版 旗舰版
SaaS Y Y Y
私有化部署 Y Y Y

现在,你可以更容易地从操作菜单中对工作条目的滥用进行举报了,就像你在传统的议题中使用的那样。这个新功能通过允许你快速标记不适当的内容,帮助你保持工作空间的清洁和安全,确保为你的团队提供更好的协作环境。

为 OKR 和任务设置父项

基础版 专业版 旗舰版
SaaS Y Y Y
私有化部署 Y Y Y

现在,你可以轻松地直接从子记录更新OKR(目标与关键结果)和任务的父项分配,消除了来回导航的需要。这是朝着我们提高工作流程效率目标迈出的重要一步。

改进了对 JetBrains IDE TLS 的支持

基础版 专业版 旗舰版
SaaS Y Y Y
私有化部署 Y Y Y

为了在敏感环境中实现更严格的安全,现在你可以直接在你的 JetBrains IDE 配置中自定义 HTTP 代理选项了,包括客户端证书和证书颁发机构。

在 CI/CD 目录、组件输入详情中增加了描述和类型

基础版 专业版 旗舰版
SaaS Y Y Y
私有化部署 Y Y Y

在 CI/CD 目录中,一个组件的详情页面提供了关于此组件使用的有用信息。在这个版本中,我们在显示可用输入信息的表格中增加了两列。新增的描述和类型列使得理解一个输入用于什么目的以及预期的值的类型变得容易得多。

极狐GitLab Runner 17.3

基础版 专业版 旗舰版
SaaS Y Y Y
私有化部署 Y Y Y

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

修复的缺陷:

  • 在 Kubernetes 运行器中,作业在被取消时似乎被挂起
  • 当未指定时,日志级别不会更新
  • 当使用 Kubernetes 执行器时,Job 日志新增了额外的换行符

对于完整的变更,可查看极狐GitLab Runner 的变更日志。

合并列车的可视化

基础版 专业版 旗舰版
SaaS Y Y Y
私有化部署 Y Y Y

现在,你可以对合并列车进行可视化了,以便更好的获得流水线中合并请求的顺序和状态。有了此功能,你就能更早地发现冲突,然后在合并列车中的合并请求上直接进行操作,最终将阻塞默认分支的风险降到最小。

对于 Kubernetes 1.30 的支持

基础版 专业版 旗舰版
SaaS Y Y Y
私有化部署 Y Y Y

此版本增加了对 Kubernetes 1.30 版本的支持(该版本发布于 2024年4月)。如果你在 Kubernetes 上部署应用,现在你就可以将你连接的集群升级到最新版本了,以便享受所有新的功能。

更多关于 Kubernetes 的支持策略,你可以查阅我们对于 Kubernetes 版本的支持策略。

SAST、IaC 扫描以及密钥检测中规则集的强制使用

基础版 专业版 旗舰版
SaaS Y
私有化部署 Y

你可以通过创建一个提交到仓库中的本地配置文件,或者通过设置一个 CI/CD 变量来在多个项目中通过共享配置的方式实现自定义规则集在 SAST(静态应用程序测试)、IaC(基础设施即代码扫描)和 Secret Detection(密钥检测)中的使用。

之前,即使你设置了共享规则集的引用,但是扫描器依旧倾向于使用本地配置文件。这个优先级顺序很难确保让扫描器去使用一个已知的、更可信的规则集。

现在,我们新增了一个 CI/CD 变量,SECURE_ENABLE_LOCAL_CONFIGURATION用来对是否允许使用本地配置文件进行控制。默认是 true,也就意味着既有的行为是:允许使用本地配置文件,而且顺序在共享配置文件之上。如果你在强制执行扫描时将值设置为 false,就能够确保扫描使用的是共享规则集,或者默认的规则集,即使开发者增加了本地配置文件。

为合并请求外部状态检查添加认证

基础版 专业版 旗舰版
SaaS Y
私有化部署 Y

现在,可以使用 HMAC(基于哈希消息的验证码)认证来对外部状态检查进行配置了。这将提供一种更安全的方式来验证来自极狐GitLab到外部服务的请求的真实性。

当开启状态检查后,就会用一个共享密钥来为每一个请求生成一个独一无二的签名。签名以 SHA256 为哈希算法并在标头中以 X-Gitlab-Signature被发送:

  • 改善了安全性:HMAC 认证能够阻止对于请求的篡改,确保请求来自于合法的源。
  • 合规:此项功能对于极为重视合规的行业来讲是非常有价值的,比如银行业这种安全至上的行业。
  • 向后兼容性:该功能将是可选的,并且向后兼容。用户可以选择为新的或现有的检查启用 HMAC 认证,但现有的外部状态检查将继续无需更改即可运行。

在将来的迭代中,极狐GitLab 计划新增一个选项来验证或者阻止 HTTP 请求。

使用管理员 UI 禁用个人访问令牌

基础版 专业版 旗舰版
SaaS
私有化部署 Y Y Y

现在,管理员可以通过管理员 UI 来禁用或重新启用个人访问令牌。之前,管理员不得不通过使用应用程序配置 API 或者极狐GitLab Rails 控制台来实现这一切。

Omnibus 改进

基础版 专业版 旗舰版
SaaS
私有化部署 Y Y Y

极狐GitLab 17.3 包含了对于树莓派 Raspberry Pi OS 12 安装包的支持。

Debina 10 已经在 2024年 6 月 30 日到了生命周期的结束(EOL)。极狐GitLab将在 17.6 版本中移除对于 Debina 10 的支持。

改进了您的工作中对项目和群组的排序和过滤

基础版 专业版 旗舰版
SaaS Y Y Y
私有化部署 Y Y Y

我们已经在您的工作中更新了对于项目和群组概览的排序和过滤功能。之前,在项目的您的工作页面中,你可以通过名称和语言进行过滤,而且可以使用预定义的排序选项。我们已经对过滤选项进行了标准化,包括名称、常见日期、更新日期以及星星。我们还在导航元素中添加了按升序或降序排序的功能,并将语言过滤器移动到了筛选菜单中。

现在你可以在新的不活跃标签页中找到归档的项目。此外,我们还新增了一个角色过滤器以允许你查找那些你拥有的项目。

在群组的您的工作页面中,我们也已经标准化了排序选项,包括名称、创建日期以及更新日期,且在导航元素中添加了按升序或降序排序的功能。

用 API 获取群组或项目 webhook 事件

基础版 专业版 旗舰版
SaaS Y Y
私有化部署 Y Y

从极狐GitLab 9.3 开始,你可以在 UI 上查看项目 webhook 请求历史,而自极狐GitLab 15.3 以后,你还可以在 UI 上查看群组 webhook 请求历史。

在此版本中,数据以 REST API 的形式暴露,这能够帮助你通过自动化的流程来发现 webhook 错误或者对其做出响应。您可以获取过去7天内特定项目 hook 和群组 hook 的事件列表。

在任务、目标及关键结果中解决主题

基础版 专业版 旗舰版
SaaS Y Y Y
私有化部署 Y Y Y

现在,你可以在任务、目标及关键结果中解决主题,这使得对重要对话的管理和追踪变得更加容易。默认情况下解决的主题会被折叠起来,这能够帮助你聚焦在那些活跃的讨论上,而且能够简化你们的协作工作流。

从仓库中更容易地移除内容

基础版 专业版 旗舰版
SaaS Y Y Y
私有化部署 Y Y Y

当前,从仓库中删除内容的流程是比较复杂的,你不得不通过强制推送到项目中来实现这一切。这很容易出错,而且迫使你不得不短暂地取消对于推送的保护。如果要对那些在仓库中占用大量空间的文件进行删除也是非常困难的。

现在,你可以在项目设置中使用新的仓库维护选项来基于一系列的 object ID 来删除 blob。有了这个新的方法,你就可以在无需强制推送到项目的情况下对选择的内容进行删除了。

如果项目中已经推送了需要被删除的密钥或者其他内容,我们也将引入一个新的选项来对文本进行删除处理。如果想要删除某个字符,极狐GitLab 会将项目文件中的内容替换为REMOVED。在文本删除以后,运行清理操作对旧版本的字符进行删除。

下面这个新的用户界面简化了当你需要删除内容时管理你的代码库的方式。

通过作业名称来过滤作业

基础版 专业版 旗舰版
SaaS Y Y Y
私有化部署 Y Y Y

现在,你可以通过搜索作业名来快速找到特定的作业。

之前,你只能通过状态来过滤作业列表或者手动滚动的方式来找到特定的作业。在此版本中,你只需要输入作业名即可找到对应的作业。当然,结果将只会包含极狐GitLab 17.3 版本发布后运行的流水线中的作业。

对 macOS 上安装的 Runner 进行了性能改进

基础版 专业版 旗舰版
SaaS Y Y
私有化部署

我们在最近升级到 macOS 14.5 和 Xcode 15.4 时进行了性能改进。有了这个变化,Xcode 构建作业与之前的作业执行相比显著加快。

当创建和删除 Kubernetes agent 时会产生审计事件

基础版 专业版 旗舰版
SaaS Y Y
私有化部署 Y Y

因为 Kubernetes agent 允许数据在极狐GitLab 和 Kubernets 集群之间进行双向流动,因此,知道那些能够访问系统的组件是何时增加或删除的是非常重要的。在过去的版本中,合规团队不得不使用自定义的工具或者直接在极狐GitLab 上查找数据来实现这一切。现在,极狐GitLab 新增了以下审计事件:

  • cluster_agent_created记录了是谁注册了一个新的 Kubernetes agent。
  • cluster_agent_create_failed记录了是谁在尝试注册新的 Kubernetes agent 但是却失败了。
  • cluster_agent_deleted记录了是谁移除了 Kubernetes agent 的注册。
  • cluster_agent_delete_failed记录了是谁在尝试一处 Kubernetes agent 但是却失败了。

这些审计事件对 cluster_agent_token_createdcluster_agent_token_revoked这两类审计事件进行了扩展,进一步提升了你对极狐GitLab 实例本身的审计能力。

在极狐GitLab UI 上显示 SBOM 提取错误

基础版 专业版 旗舰版
SaaS Y
私有化部署 Y

极狐GitLab 15.3 增加了对于 CycloneDX SBOM 的支持。在 SBOM 报告针对 CycloneDX 结构进行验证的同时,任何告警和错误(作为验证的一部分)都不会展示给用户看。

在GitLab 17.3版本中,这些验证消息会出现在项目级别的漏洞报告和依赖列表页面的极狐GitLab UI 上。

用户将能够在极狐GitLab UI 的以下区域查看 SBOM 的提取报告:项目级别的漏洞报告和依赖列表页面,以及流水线页面的许可证和安全标签中。

依赖项和许可证扫描增加了对 Rust 的支持

基础版 专业版 旗舰版
SaaS Y
私有化部署 Y

组成成分分析提供了依赖项和许可证扫描中对 Rust 语言的支持。Rust 扫描支持 Cargo.lock文件类型。

为了在你的项目中开启 Rust 扫描,你可以在依赖项扫描 CI/CD 组件中直接使用 cargo模板。

在用户资料中增加 Bluesky 身份识别

基础版 专业版 旗舰版
SaaS Y Y Y
私有化部署 Y Y Y

现在你可以在你的极狐GitLab 资料中添加 Bluesky did:plc 身份识别了。

基础版 专业版 旗舰版
SaaS Y Y Y
私有化部署 Y Y Y

我们对极狐GitLab 的注销流程做了改进,来自子域名的 cookie 在注销时不会被删除。之前,这些 cookie 会被删除,这就容易导致那些和极狐GitLab 使用相同顶级域名的服务被迫退出。比如,一个用户将 Kibana 服务的域名设置为 kibana.example.com,而极狐GitLab 的域名设置为 gitlab.example.com,那么当用户从极狐GitLab 注销后,用户也将不能再登录 Kibana 服务。

高级搜索中的端到端实例索引

基础版 专业版 旗舰版
SaaS Y Y
私有化部署 Y Y

当你在极狐GitLab 中开启高级搜索时,现在,你可以选择索引实例来执行初始化索引或者重新新建索引。此项设置通过将所有支持的数据类型索引到 Elasticsearch 或者 OpenSearch 集群中,实现了和执行 gitlab:elastic:index rake 任务时的同等功能。

索引实例取代了仅在初始索引时索引所有项目的设置。

本文由博客群发一文多发等运营工具平台 OpenWrite 发布

posted @ 2024-09-09 11:33  极狐GitLab  阅读(11)  评论(0编辑  收藏  举报