沿袭我们28日发布的传统,今天带来了极狐GitLab 15.2 版本,新功能包括 极狐版专享 - 飞书通知机器人,极狐版专享 - 多层史诗调整至专业版,实时 Wiki 图表预览、事件(Incident)的时间线、群组和子群组的扫描执行策略、软件稳定性的变更失败率图表等

这些只是该版本中40多项改进中的几个亮点。请继续阅读,查看所有更新。

极狐版专享 - 飞书通知机器人

SaaS版

标准版    专业版    旗舰版 

自主管理版

标准版    专业版    旗舰版 

(灰色表示该版本不具备此功能,粉色表示该版本具备此功能,下同)

在15.2版本中,使用飞书作为企业沟通工具的用户,可以在飞书中启用极狐GitLab 通知机器人了。在极狐GitLab 中发生的事件,例如议题创建、合并请求创建、审批与合并、流水线更新,都会向飞书的极狐GitLab 通知机器人发出实时消息,使得极狐GitLab 日常开发中的工作进展都能更加具有群体感知,公开透明,也能更贴近移动端用户的使用体验,让对极狐GitLab的使用行为可追溯,帮助团队打造更好的 DevOps 文化。

在15.2版本中,使用飞书作为企业沟通工具的用户,可以在飞书中启用极狐GitLab 通知机器人了。在极狐GitLab 中发生的事件,例如议题创建、合并请求创建、审批与合并、流水线更新,都会向飞书的极狐GitLab 通知机器人发出实时消息,使得极狐GitLab 日常开发中的工作进展都能更加具有群体感知,公开透明,也能更贴近移动端用户的使用体验,让对极狐GitLab 的使用行为可追溯,帮助团队打造更好的 DevOps 文化。

了解更多:

飞书集成和通知 | GitLab

gitlab 合并master 会自动删除分支 gitlab 合并请求_运维

极狐版专享 - 多层史诗调整至专业版

SaaS版

  标准版    专业版    旗舰版 

自主管理版

  标准版    专业版    旗舰版 

多层史诗功能可以帮助企业和开发团队管理和拆解复杂的大型需求,以前极GitLab 在定价策略上和 GitLab.inc 保持一致,列入旗舰版功能中,但是中国企业用户对这个功能有着普遍强烈的使用需求。为了让更多的企业客户以更低的成本使用多层史诗功能,极狐GitLab 决定在 15.2 版本起将该功能降级至专业版中。

这是极狐GitLab 和 GitLab.inc 在功能定价上分叉的第二个功能,极狐会继续不断回馈中国客户,做出更多让中国客户满意获益的更新。

了解更多:管理史诗 | GitLab

实时 Wiki 图表预览

SaaS版

  标准版    专业版    旗舰版 

自主管理版

  标准版    专业版    旗舰版 

极狐GitLab 风格的 Markdown 支持 Mermaid、PlantUML 和 Kroki 图表的扩展,但如果没有实时预览,除了最基本的图表,编写任何其他图表都会很麻烦。你可以在原始源码和静态预览之间进行切换,也有一些外部工具可以用来编写这些图表,但都会让人分心。

极狐GitLab 15.2 在 Wiki 编辑器中引入了图表的实时渲染预览功能。现在,当你在专门的代码块中编写图表时,我们会检测图表的类型并显示一个预览图标。启用后,实时预览将显示在代码块上方,并随着你的输入而更新,以确保你的格式是正确的,而且输出结果将与你的期望完全一致。

全新设计的合并请求报告

SaaS版

  标准版    专业版    旗舰版 

自主管理版

  标准版    专业版    旗舰版 

合并请求报告是代码审查的一个重要部分,它能洞察相关变更的影响,以满足项目标准。

新的合并请求报告遵循了新的布局、层级和内容部分的设计准则,增强一致性、可扫描性和实用性。这些改进使你更容易在每个报告中找到可操作的信息。

通过SSH为 Git 执行 IP 地址限制

SaaS版

  标准版    专业版    旗舰版 

自主管理版

  标准版    专业版    旗舰版 

限制来自受信任的 IP 地址的访问请求可以提高安全性。之前,我们只有 API 访问 和 UI 操作支持这样的访问限制;SSH 的访问则被完全限制。现在,SSH 的访问也遵守这一限制,只对来自你列表中的 IP 地址请求授予访问权。

展示软件稳定性的变更失败率图

SaaS版

   标准版    专业版    旗舰版 

自主管理版

   标准版    专业版    旗舰版 

在这个版本中,我们为 DORA 变更失败率指标增加了一个新的趋势图。该图表显示了在生产环境中引起事故的部署百分比。极狐GitLab 对变更失败率的测量是用事故数量除以在特定时间段内部署到生产环境中的次数。

这是极狐GitLab 提供的第四张 DORA 图表,它提供了对价值流速度和可靠性趋势的洞察。

群组和子群组的扫描执行策略

SaaS版

   标准版    专业版    旗舰版 

自主管理版

   标准版    专业版    旗舰版 

安全合规团队现在可以在群组和子群组级别设置执行扫描策略,统一应用于所有项目。这个功能对于拥有大量项目的大型组织来说是非常有帮助的。为群组或子群组定义的策略将向下应用到所有子项目。要使用该功能,请群组的所有者在 安全与合规性 > 策略 页面上将安全策略所在的项目链接到该群组。

目前,扫描执行策略是唯一在群组和子群组级别支持的策略类型。可以跟踪在下面的史诗,关注后续在群组和子群组级别的扫描执行策略。

事件(Incident)的时间线

SaaS版

  标准版    专业版    旗舰版 

自主管理版

  标准版    专业版    旗舰版 

捕捉事件中发生的情况是很重要的,有利于学习和改进。但是,要求事件的响应人在忙于灭火时承担额外的管理任务,或在事件发生后试图回溯事件的时间线,有可能导致信息不全或不太准确。

极狐GitLab 的事件时间线功能旨在使事件中或事件后的信息采集变得简单而高效。在事件时间线的 MVC 版本中,我们可以手动新增、删除时间线事件,并在专门标签页中查看某次事件的时间线。

在流水线配置里设置镜像拉取策略

SaaS版

  标准版    专业版    旗舰版 

自主管理版

  标准版    专业版    旗舰版 

你可以在CI/CD任务中为极狐GitLab Runner 下载 Docker 镜像的方式设置不同的拉取策略。always(默认)设置镜像总是被下载,if-not-present 只在本地版本镜像不存在时才下载镜像,而 never 只使用本地版本镜像(从不下载镜像)。

以前,你只能在 Runner 级别定义拉取策略。在这个版本中,我们增加了在流水线级别定义拉取策略的能力。在你的 .gitlab-ci.yml 中使用 pull_policy 来定义任务或流水线级别的不同拉取策略。共享 Runner 不支持此功能。

组级合并请求设置的审计事件

SaaS版

  标准版    专业版    旗舰版 

自主管理版

  标准版    专业版    旗舰版 

当对群组级合并请求的设置进行更改时,极狐GitLab 会记录为审计事件。这是对项目级审计事件的补充,它记录了对项目中相同设置的更改。具体来说,当以下群组设置被修改时,会创建审计事件:

  • 禁止作者审批
  • 禁止提交代码的用户进行审批
  • 禁止在项目和合并请求中编辑审批规则。
  • 要求用户密码来审批
  • 当代码提交到源分支时,删除所有审批

这些审计事件可以帮助你知道,群组级合并请求设置和默认设置已经正确设置,没有被改变。这一点很重要,因为这些群组级的设置会逐级下传到子项目。对这些变化的管理和可视性将帮助你加强职责分工,并进一步简化审计工作。

流式审计事件可自定义 HTTP header

SaaS版

   标准版    专业版    旗舰版 

自主管理版

   标准版    专业版    旗舰版 

现在流式审计事件可以添加自定义 HTTP header。这个改进让与第三方系统集成变得更容易,第三方系统的消息要求特定的 header 信息。自定义 header 信息可以用来实现诸如添加验证信息,添加路由信息,或标记事件来自哪个项目。

过去,你必须使用一个代理服务器来添加这些自定义 header 信息到流式审计事件。设置这个代理服务器很耗时,容易出错,而且给你的组织增加了额外的复杂性。直接在极狐GitLab 中设置自定义 header 信息使得与其他工具的集成和自动化变得更加简单,并允许你直接在极狐GitLab 平台上做你需要的事情。

要添加自定义的 HTTP header,要使用我们的 GraphQL APIs 来添加一个新的 header,作为一个键/值对;也可以更新和删除 header。

改进用户个人贡献的贡献日历

SaaS版

  标准版    专业版    旗舰版 

自主管理版

  标准版    专业版    旗舰版 

我们修复了一个问题,即个人贡献没有显示在用户的贡献日历图中。现在,当你在个人资料设置中选择在我的个人资料中包括个人贡献时,即使你从项目中删除,个人贡献仍然可见。

流式审计事件 - 创建合并请求

SaaS版

  标准版    专业版    旗舰版 

自主管理版

  标准版    专业版    旗舰版 

现在,在群组内被创建合并请求时,可以通过审计事件进行监控。审计事件包括以下信息:

  • 合并请求作者的用户
  • 创建时间
  • 新建的合并请求的具体信息

这能帮助查看项目和源代码内的活动,以便及时采取行动。

但这些事件会产生大量的数据,所以它们只能在流式审计事件功能里使用

在 UI 界面显示验证令牌

SaaS版

  标准版    专业版    旗舰版 

自主管理版

  标准版    专业版    旗舰版 

极狐GitLab UI 界面现在能显示每个流目的地的验证令牌,来更方便的查看令牌值,辅助你查看日志进行检查,或将其复制到其他将接收流式审计事件数据的工具。

以前,如果你需要得到这个值,你必须使用 API 来列出一个组中的所有审计目的地并找到这个值。这很复杂,而且是一个额外的步骤,所以我们很高兴通过把这个值直接放在用户界面上,使之变得更容易。

保存上次使用的 Wiki 编辑器

SaaS版

  标准版    专业版    旗舰版 

自主管理版

  标准版    专业版    旗舰版 

新的 Wiki 编辑器是在极狐GitLab 14.0 版本中启用的,让用户使用可视化的格式工具来编写 Markdown,提供了实时预览内容的能力。但是,自该功能发布以来,每次开始编辑 Wiki 页面时,都必须手动切换到新的 Wiki 编辑器。

极狐GitLab 15.2 将在 Wiki 中持久保存你最后使用的编辑器,让你在下次编辑页面时,可以直接进入你喜欢的体验,而不必每次都在编辑器之间切换,从而节省时间。

极狐GitLab Runner 15.2

SaaS版

  标准版    专业版    旗舰版 

自主管理版

  标准版    专业版    旗舰版 

这次还发布了极狐 GitLab Runner 15.2! 极狐GitLab Runner 是一个轻量级、高扩展性的 agent,它可以运行你的 CI/CD 任务并将结果发回给 GitLab 实例。极狐GitLab Runner 搭配极狐GitLab CI/CD 协同工作,为极狐GitLab 带来了开源的持续集成服务。

修复了以下 bug:

  • 在任务里把 DEBUG 设置为变量会导致失败
  • 更新 containerd 版本至 1.4.12

极狐GitLab Runner 所有更新都记录在 CHANGELOG* 中。

*CHANGELOG:

CHANGELOG.md · 15-2-stable · GitLab.org / gitlab-runner · GitLab

程序化删除重复的软件包资产

SaaS版

  标准版    专业版    旗舰版 

自主管理版

  标准版    专业版    旗舰版 

你可以使用极狐GitLab 软件包仓库来发布和分享项目里的软件包。一个软件包发布的时候,是包含了一些资产的,例如,每次发布一个 Maven 包,它都包括一个 pom 包和 jar 包。有些格式的软件包,如 Maven、NuGet 和通用包,允许你发布重复的包,导致成百上千的重复包。在以前的极狐GitLab 版本中,你只能通过用户界面或 API 来批量删除这些资产。现在你可以使用清理策略来规定重复资产保留的最大数量。例如,如果清理策略规定最多保留五个重复版本,那么在下一次策略运行时,只有五个最新的资产被保留。

包的清理策略的引入有助于减少项目的存储量,减少杂乱无章的内容,让用户界面更容易浏览。

支持 Gradle implementation 指令的许可证合规

SaaS版

   标准版    专业版    旗舰版 

自主管理版

   标准版    专业版    旗舰版 

Gradle 6 引入了一个新的 implementation 指令来定义依赖关系。从Gradle 7 开始,这个新指令是强制的,取代了之前的 compile 指令。极狐 GitLab 15.2 支持检测使用这个新指令引入的依赖。

在项目设置中编辑受保护环境的批准数量

SaaS版

  标准版    专业版    旗舰版 

自主管理版

  标准版    专业版    旗舰版 

以前,要编辑部署到受保护环境所需的批准数量,你必须使用 API,这可能很麻烦。从 15.2 开始,你可以直接在项目设置中编辑所需的批准数量。

群组级的受保护环境设置界面

SaaS版

  标准版    专业版    旗舰版 

自主管理版

  标准版    专业版    旗舰版 

以前,如果你想配置受保护环境的群组级设置,你必须使用 API。但在这个版本中,可以在用户界面中查看和编辑这些设置。这个功能能更简单地跨项目配置策略,规定哪些用户和群组能有权限部署环境。

升级集群支持的版本,包括Kubernetes 1.23和1.24

SaaS版

  标准版    专业版    旗舰版 

自主管理版

  标准版    专业版    旗舰版 

如果你使用 Kubernetes,极狐GitLab 希望确保你的集群在升级到最新的 Kubernetes 版本时,能拥有完整的功能。虽然许多用户使用极狐GitLab 来部署 Kubernetes 集群,但还没有对 Kubernetes 1.23 和 1.24 的官方支持。这个版本带来了对这些版本的所有 Kubernetes 相关功能的全面支持。

在提供对 Kubernetes 1.23 和 1.24 版本支持的同时,我们正在改变我们的 Kubernetes 支持政策,使其比过去更具有可预测性。在新的支持政策下,我们计划在每一个 Kubernetes 小版本更新首次发布三个月后支持,我们将支持最新的三个 Kubernetes 小版本。

Omnibus 改进

SaaS版

  标准版    专业版    旗舰版 

自主管理版

  标准版    专业版    旗舰版 

极狐GitLab 15.2 包含了 Mattermost 7.0,包括可折叠的回复、语音通话和屏幕共享(测试版)、消息格式工具栏、Playbooks 内置编辑器、使用情况统计,以及在运行中改变触发器和行动的能力。该版本还包括安全更新,建议从早期版本升级。

审计事件 - 禁用双因子认证

SaaS版

  标准版    专业版    旗舰版 

自主管理版

  标准版    专业版    旗舰版 

现在,当用户禁用其双因子认证(2FA)时,极狐GitLab 会记录一个审计事件。

这个审计事件可以帮助你确保实例中的所有用户都正确使用 2FA(并识别用户账户的安全性何时被降低),以便你可以调查并采取行动。

使用 API 来禁用用户的双因子认证

SaaS版

  标准版    专业版    旗舰版 

自主管理版

  标准版    专业版    旗舰版 

管理员可以使用 API 禁用特定用户的双因子认证。当用户丢失或忘记他们的主令牌生成器的备份代码时,这个功能是非常有用的。

在管理员为该用户禁用双因子认证后,用户可以从头开始设置双因子认证。

流式审计事件 - Git操作

SaaS版

  标准版    专业版    旗舰版 

自主管理版

  标准版    专业版    旗舰版 

现在你可以通过新的审计事件来监控群组内的 Git 操作,这些操作事件在用户推送或拉取仓库时被记录下来,包含如用户名、时间戳、拉取或推送的项目信息。

这些事件会产生大量的数据,所以它们只能在流式审计事件使用。

流式审计事件 - 项目分叉

SaaS版

  标准版    专业版    旗舰版 

自主管理版

  标准版    专业版    旗舰版 

现在你可以通过新的审计事件来监控你群组内的项目分叉,每当项目被分叉时都会被记录,包括以下信息:

  • 分叉项目的用户名
  • 项目分叉的时间
  • 被分叉项目的详情

这让你看到项目和源代码被复制到哪里,以及被谁复制,这样你就可以在需要时采取行动。

这些事件有可能产生大量的数据,所以只能在流式审计事件使用。

更好更快的文件浏览和语法高亮功能

SaaS版

  标准版    专业版    旗舰版 

自主管理版

  标准版    专业版    旗舰版 

最近几个月,我们做了多项改变来改善浏览软件库和查看源文件的体验。当从一个文件夹移动到另一个文件夹时,我们现在不是重新加载整个页面,而是用一个 VUE 应用程序显示版本库文件和文件夹。我们的版本库树状视图现在更具有性能和稳定性,而且处理文件的速度更快。我们也从服务器端的文件转换转为客户端的语法高亮。现在大文件的渲染时间最多可以提高66%。

在任务页面上通过状态过滤

SaaS版

  标准版    专业版    旗舰版 

自主管理版

  标准版    专业版    旗舰版 

当你在排查流水线的故障时,你可能想过滤具有特定状态的任务。以前,这需要查看完整的任务列表或使用极狐GitLab API 在极狐GitLab 之外操作数据。

现在,你可以直接在工作页面上按状态过滤任务,这样你就可以看到项目中所有具有相同状态的任务。

预定义的项目描述 CI/CD 变量

SaaS版

  标准版    专业版    旗舰版 

自主管理版

  标准版    专业版    旗舰版 

极狐GitLab CI/CD 提供了许多有用的预定义 CI/CD 变量,但没有一个项目描述的变量。在这个版本中,我们现在有了 CI_PROJECT_DESCRIPTION 预定义变量,它使你可以很容易地从 CI/CD 任务中访问项目描述。

更快的密钥检测

SaaS版

  标准版    专业版    旗舰版 

自主管理版

  标准版    专业版    旗舰版 

我们优化了极狐GitLab 密钥检测,使用了新技术,在不可匹配的情况下跳过一些费时的操作,从而缩短了扫描时间。分析器现在首先扫描精确的字符串,然后再运行完整的匹配规则。

在我们的测试中,这种优化大大减少了扫描时间,在中等规模的代码库中扫描时间减少了50-75%。它适用于有明确前缀或已知标识符的密钥;例如,极狐GitLab 个人访问令牌默认以 glpat- 开头。

我们已经更新了内置的密钥检测规则,以使用这种更快的方法。如果你添加了自定义规则,你可以在你的自定义 GitLeaks TOML 配置文件中为它们设置一个关键字值来优化它们。在正则表达式模式运行之前,关键字中至少有一个字符串必须匹配。

我们希望在交付这个第一次迭代后,使这个优化在未来更容易应用。

静态扫描分析器更新

SaaS版

  标准版    专业版    旗舰版 

自主管理版

  标准版    专业版    旗舰版 

极狐GitLab 静态分析包括许多安全分析器,极狐GitLab 静态分析团队积极管理、维护和更新。以下是15.2版本期间发布的分析器更新。这些更新扩大了覆盖范围、修复bug和做出了改进。

  • CodeClimate 分析器更新到0.85.29版本。详见 CHANGELOG
  • 增加对 eslint-8 通道的支持
  • 在准备步骤中不分析文件或允许 LinkLocal 地址
  • 更新 Kics 分析器以更好地处理退出代码。详见 CHANGELOG。
  • Kubesec 分析器已更新,包括 Kubesec 2.11.5 和 Helm 3.9.0,并处理了 Helm 输出的问题。详见 CHANGELOG。
  • PMD-Apex分析器更新至 6.45.0 版本。详见CHANGELOG。
  • Semgrep 分析器引擎更新至 0.98.0 版本。详见 CHANGELOG。

    - 提高性能,修复错误,并在其他方面改进扫描引擎。

    - 如果你定义了自定义规则,可以绕过基于语言的匹配器(决定是否运行扫描程序)。这使你更容易为 GitLab 管理的规则集中未涵盖的语言定义自定义规则。

  • 密钥分析器更新。详见 CHANGELOG。

如果你使用了极狐GitLab 管理的 SAST 模板(SAST.gitlab-ci.yml),你不需要做任何事情来接收这些更新。然而,如果你覆盖或定制自己的 CI/CD 模板,你需要更新你的 CI/CD 配置。

如果要使用分析器的某个特定版本,你可以固定在一个分析器的小版本上,固定到以前的版本可以阻止接收分析器的自动更新,并且需要你在 CI/CD 模板中手动配置到你的分析器版本。

基于部署的层级来获取密钥

SaaS版

  标准版    专业版    旗舰版 

自主管理版

  标准版    专业版    旗舰版 

密钥可以根据某个环境的部署层级来分配。在这个版本中,我们在JSON令牌(CI_JOB_JWT)中引入了deployment_tier,以便用户可以根据特定的部署层级获取密钥。

获取 KAS 元数据的API

SaaS版

  标准版    专业版    旗舰版 

自主管理版

  标准版    专业版    旗舰版 

在我们发布了 Kubernetes Agent 之后,我们收到的第一个需求就是希望能用自动化的方式来设置它。在过去的几个月里,已实现了一个 REST API,并扩展了极狐GitLab Terraform Provider,来支持自动化方式管理Kubernetes Agent。目前的版本通过引入 /metadata REST 端点,即 /version 端点的超集,进一步改善了对代理的管理,以及对 GitLab 的总体管理。

这个 /metadata 端点包含了关于当前极狐GitLab 版本的信息、Kubernetes Agent(KAS)是否启用以及在哪里可以访问它。这改进了以前必须在自动化脚本中手动输入 KAS 地址的问题。

webhook速率限制

SaaS版

  标准版    专业版    旗舰版 

自主管理版

  标准版    专业版    旗舰版 

现在可以对 SaaS 用户进行 Webhook 的速率限制,以保护极狐GitLab 应用程序的性能和可用性。作为回报,该限制可以保护所有 SaaS 租户的性能。限制适用于每个付费计划和每个 namespace,并基于您订阅的用户数量,每个顶层 namespace 下每分钟 500 到 13,000 次调用。

Geo 支持 BuildKit 缓存镜像

SaaS版

  标准版    专业版    旗舰版 

自主管理版

  标准版    专业版    旗舰版 

在极狐GitLab 15.2中,Geo 支持 BuildKit 缓存镜像的复制。随着极狐GitLab 15.2 对 BuildKit 缓存镜像格式的支持,以及极狐GitLab 15.1 增加对 OCI 容器镜像的支持,Geo 现在支持更多的容器类型了。

极狐GitLab chart 改进

SaaS版

  标准版    专业版    旗舰版 

自主管理版

  标准版    专业版    旗舰版 

当使用pod横向自动扩容来自动扩展极狐GitLab 的 Kubernetes 部署中的 pod 数量时,我们注意到,由于观察到的 CPU 配置文件的尖峰特性,扩展行为可能是不稳定的。为了看到更少的快速扩展事件,我们增加了对 v2beta2 和 v2 的支持,这大大增加了对扩展事件的控制。