Feb 28, 2023 - 极狐GitLab  
15.9

极狐GitLab 15.9发布,新增查看私有存储库的访客角色和许可审批策略

沿袭我们28日发布的传统,今天带来了极狐GitLab 15.9 版本,新功能包括极狐GitLab SaaS Runners 引入了新的规格类型、Guest角色查看私有仓库、许可证审批策略和许可证合规性扫描器、Slack应用内通知、在事件时间线上跟踪重要的事件时间戳等。

沿袭我们28日发布的传统,今天带来了极狐GitLab 15.9 版本,新功能包括极狐GitLab SaaS Runners 引入了新的规格类型、Guest角色查看私有仓库、许可证审批策略和许可证合规性扫描器、Slack应用内通知、在事件时间线上跟踪重要的事件时间戳等。

这些只是本次发布的版本中35+项改进中的几个亮点。请继续阅读,查看所有更新。

极狐GitLab 15.9 主要功能

极狐GitLab SaaS Runners 引入了新的规格类型(JH-only)

在这一次更新中,为了让你可以轻松地为 CI/CD 作业选择和使用正确类型的公共云托管计算资源,我们为私有项目提供了更多规格的runner 类型。你可以在 .gitlab-ci.yml 指定 tags: 关键字,如未指定则默认使用 small Runner 类型。 在中型和大型 Runner 上运行的 CI/CD 作业所消耗的 CI 分钟数会多于小型 Runner 上运行的 CI/CD 作业所消耗的 CI 分钟数。 有关不同类型的 Runner 所使用的消耗参数,请参阅极狐GitLab SaaS Runner 消耗参数


代码拥有者规定的复合审批方式

现在你可以精确地定义哪些文件、文件类型或目录的批准被指定为可选的,需要由一个用户或多个用户批准。后者是 代码所有者 文件的新改进。

到目前为止,如果你需要多个审批人,无论是出于合规性还是其他原因,你只能通过审批规则来实现。然而,与代码所有者的批准不同,批准规则适用于整个分支,不能被细化为适用于代码库的特定部分。因此,对于那些不需要高度审查的修改,也需要多重批准,导致不必要的审查。

代码拥有者规定的复合审批方式

管理许可证审批策略

现在,极狐GitLab支持灵活的许可审批策略,取代已废弃的许可检查功能。许可证审批策略在几个方面比许可证检查功能有着更好的体验。

  • 用户可以选择谁被允许编辑许可证审批策略。
  • 可以创建多个策略规则并将其串联起来。
  • 对于任何希望对许可证审批策略进行的修改,都可以强制执行两步审批程序。
  • 一套许可证策略可以应用于多个开发项目,也可以在组或子组层面上应用,以便于维护单一的、集中的规则集。
  • 策略可用于要求批准任何未被特别允许的许可证。

许可证审批策略可以与现有的许可证检查功能一起使用,因为这两个策略是可以叠加的,不会发生冲突。开始使用前,请确认你的实例已启用 license_scanning_policies 功能标志,然后导航到安全与合规性 > 策略,创建一个新的扫描结果类型策略,并为你的策略规则选择许可证扫描。


拥有 Guest 角色的用户可以查看私有仓库

拥有 Guest 角色和旗舰版许可证的用户现在可以查看私人版本库的内容,如果他们的管理员给予他们许可。管理员必须通过API创建一个新的角色,并将该角色分配给管理员希望有查看版本库权限的用户。以前,拥有Guest角色的用户不能查看私有项目的代码,限制了他们的效用。


Slack应用通知功能

GitLab 中的 Slack app 是一个新家园,用来管理从 GitLab 到 Slack 工作区的通知。你不仅可以使用现有的应用程序功能,如斜线命令,而且现在还可以根据合并请求的变化、推送事件、议题变更及许多其他极狐GitLab事件,指定你想要通知的Slack channel。

对于SaaS客户来说,Slack通知集成即将被废弃,随着我们继续扩大对极狐GitLab 在 Slack应用的支持,现有的集成功能将被删除,以更好地满足你的需求。为了让你的团队与极狐GitLab中发生的事情保持同步,今天就获取新的极狐GitLab Slack应用吧!

Slack应用通知功能

在封闭测试中使用的代码建议

每天都有数以百万的开发者在使用极狐GitLab 进行代码贡献。我们正在开始通过极狐GitLab 代码建议的封闭测试版让开发人员能够更有效的编写代码。

在封闭测试中使用的代码建议

在事件时间线上跟踪重要的事件时间戳

事件指标是一组标准的、可量化的度量,用于跟踪事件响应过程。准确地跟踪这些指标将有助于DevSecOps团队了解他们的表现,对意外中断的响应是越来越好还是越来越差。在这个版本中,可以指定可选的事件标签,以获取相关的事件时间戳。添加的标签会显示在时间戳的旁边。

在事件时间线上跟踪重要的事件时间戳

新的许可证合规性扫描仪

极狐GitLab 现在支持一种检测许可证的新方法,能够解析和识别超过500种不同类型的许可证,并能从具有双重许可证或具有多个不同许可证的包中提取许可证信息。在极狐GitLab的开发测试过程的经验中显示,新的方式大大提高了结果的准确性和完整性。CI流水线由于不再需要处理许可证合规的工作,这大大节约了执行时间。此外,新方法还支持与极狐GitLab依赖性扫描相同的语言和版本。

要使用这个新的扫描器,请删除CI配置中包含的Jobs/License-Scanning.yml模板,改为包含Jobs/Dependency-Scanning.yml模板。在极狐GitLab 16.0之后,将不再支持使用Jobs/License-Scanning.yml模板扫描的旧方法。

目前这项功能对极狐GitLab SaaS用户来说需要启用license_scanning_sbom_scanner和package_metadata_synchronization功能开关。用户可以在极狐GitLab中启用license_scanning_sbom_scanner和package_metadata_synchronization功能开关,以及增加对私有化部署实例和离线实例的支持。

新的许可证合规性扫描仪

用OpenID Connect(OIDC)保护你的CI/CD工作流程

软件供应链应该包括交付和运行软件所需的一切。确保供应链的安全意味着不仅要保护你的软件,还要保护周围的云原生基础设施。

在极狐GitLab 15.9中,我们增加了额外的保护层,使我们的OIDC令牌从Alpha到生产就绪,提高了你的CI/CD工作流的安全性。一个关键的改进是能够配置受众声明(aud:),这是一个保留的声明,它确定了JWT的受众(令牌的目标)。

此外,我们增加了JWT令牌本身的安全性。以前,JSON web token 是预先定义的变量,可以提供给流水线中的所有工作。在这个版本中,你现在可以限制在流水线中任意使用令牌,取而代之的是指定需要令牌的确切作业。因此,被破坏的作业泄露令牌的风险降低了。

用OpenID Connect(OIDC)保护你的CI/CD工作流程

移除未扩展 (raw) 的屏蔽变量中的字符限制

以前不可能屏蔽含有某些特殊字符的变量,例如 $'"。以前包含这些字符之一的钥匙或密码的变量无法用于变量。在这个版本中,我们已经取消了对非扩展(原始)变量的屏蔽限制。请注意,该值仍然有8个字符的最小长度,并且不能使用空格。

移除未扩展 (raw) 的屏蔽变量中的字符限制

极狐GitLab 15.9 其他功能

从外部提供商重新导入项目

以前,无法多次从外部提供商导入项目。现在,你可以使用不同的目标路径多次从外部提供商导入项目。重新导入的项目不会覆盖或合并以前导入的项目。外部提供商包括GitHub,Bitbucket Cloud,Bitbucket Server,FogBugz和Gitea。

在 SCIM API 中添加了 `:active` 属性

SCIM API 现在返回每个用户的 :active 属性。群组所有者现在可以使用此属性来区分活动用户和非活动用户,这非常有用,因为用户可以位于其群组之外,但仍具有 SCIM 标识。

批量用户访问管理的 API 支持

具有群组所有者角色的用户现在可以使用 GraphQL API 更改群组的非继承用户的最大访问级别。此版本为具有 JihuLab.com 上的群组的所有者角色的用户带来了更多管理功能,并为将来的管理批量操作奠定了基础。

群组所有者可以为企业用户禁用 2FA

以前,当用户无法访问其双因素身份验证 (2FA) 时,该用户必须请求 极狐GitLab 支持人员重置其 2FA。现在,群组所有者可以为企业用户禁用2FA。禁用用户的 2FA 后,系统会提示该用户重新设置。

群组所有者可以为企业用户禁用 2FA

通过编程语言来浏览项目的过滤器面板

以前,在“项目”仪表板的“浏览项目”选项卡中,可以按名称筛选项目。现在,你还可以按编程语言进行筛选。通过应用此筛选器,可以将搜索结果范围缩小到仅使用你感兴趣的编程语言的项目。通过这种方式,你可以找到自己喜欢的编程语言的开源项目来做出贡献。

史诗可以包含来自不同群组层次结构的子史诗

到目前为止,史诗只能包含来自同一群组的子史诗。对于尝试管理、组织和交流大型项目的用户来说,这是限制和不方便的,这些项目在其他组中具有不同的子计划。

作为改进跨功能工作流的延续,你现在可以将不相关群组中的子史诗添加到父史诗。

将Markdown清单项转换为任务

团队经常使用 Markdown 清单项来概述任务或完成情况的标准,但跟踪与清单项相关的更深入的信息一直有限且繁琐。在 15.9 版本中,你可以将议题中的 Markdown 清单项无缝转换为任务,使团队能够通过将任务与问题分开分配和估计来跟踪和管理问题的依赖关系,从而获得更强大的体验。

将Markdown清单项转换为任务

编辑任务描述时使用快速操作

快速操作有助于有效地更新议题、合并请求和史诗。在此版本中,你现在可以在编辑任务描述时使用快速操作的子集。未来的迭代将引入其他快速操作以及在任务的注释中使用它们的功能。

编辑任务描述时使用快速操作

控制哪些项目可以使用 CI/CD 作业令牌访问你的项目

存储在 CI_JOB_TOKEN CI/CD 变量中的 CI/CD 作业令牌使作业中的 API 调用身份验证更加直观,从而实现高级自动化。例如,令牌可用于在其他项目中运行流水线的机器人自动化项目。令牌的生存期很短,但与触发流水线的用户具有相同的权限。

为了使其使用更加安全,我们添加了一个设置,允许你定义允许使用作业令牌访问项目的受信任项目列表。这一额外的安全层意味着只有这些项目才能使用作业令牌访问项目的 API。在机器人自动化示例中,它允许你控制哪些机器人项目可以与你自己的项目交互。

此设置目前在现有项目中默认处于禁用状态,以避免影响流水线,但我们强烈建议在所有项目中启用此设置。默认情况下,它为所有新项目启用。

群组runners页面中的作业选项卡

为了在管理员、群组和项目视图中创建一致的runner体验,群组runner详细信息视图现在包含runner运行过去和当前作业的列表。

除其他详细信息外,你还可以查看作业持续时间,以及每个作业在被runner拾取之前在队列中的时间。拥有排队持续时间的概览可以帮助你进一步分析runner的队列性能。

群组runners页面中的作业选项卡

密钥检测扫描合并请求中的所有提交

由于技术限制,极狐GitLab 密钥检测以前仅扫描分支流水线上的最新提交。

现在,当密钥检测在合并请求 (MR) 流水线中运行时,它会扫描 MR 的所有提交,以便可以捕获早期提交中发生的泄漏。

此改进基于最近在 MR 流水线中添加的对安全扫描的支持,因此它仅在最新版本的密钥检测 CI/CD 模板中可用,而不是稳定版本。

现在可以通过切换到最新版本的密钥检测 CI/CD 模板来启用此新功能。我们计划在极狐Gitlab 16.0 中将此标记为稳定功能。

请注意,最新模板可以在任何版本中接收中断性更改。若要了解有关稳定模板和最新模板的详细信息,请参阅 CI/CD 模板版本控制的文档.

自动撤销泄露的个人访问令牌

极狐GitLab 密钥检测现在会自动撤销极狐GitLab 个人访问令牌,前提是在公共项目的默认分支上找到这些令牌。

若要激活此保护,需要在项目中使用 极狐GitLab 机密检测,并使用前缀为 glpat- 的令牌。

我们之前在 Beta 版中提供了此功能,并在 2023-01-23 的 JihuLab.com 上默认启用此功能。

功能标志已被删除,因此该功能在从极狐GitLab 15.9 开始的私有化部署版本中也处于可用状态。

泄露的令牌会在发现它们的同一系统上进行处理:在 JihuLab.com 上检测到的令牌保留在 JihuLab.com 上,在私有化部署的实例中检测到的令牌保留在这些实例上。

你可以在我们的博客文章中阅读有关该功能的更多信息。

显示部署相关标记的第一次迭代仅支持已完成的部署。在此版本中,你现在可以在“环境”页面中看到已部署提交的标记,这些标记也处于待审批状态的部署。此信息有助于为参与执行和批准部署的人员提供有关正在部署的内容的更多上下文。

清理陈旧的环境

现在,你可以更轻松地停止和清理项目中的陈旧环境。使用 API 或 UI,你可以停止自指定日期以来未修改的所有环境,但受保护环境除外。你可以使用它来管理项目中的环境数量,并仅保留项目中的相关环境。

清理陈旧的环境

Elasticsearch 高级搜索角色权限要求的文档

Elasticsearch 高级搜索文档现在列出了与 Elasticsearch 集成所需的最低角色权限。

你的工作侧边栏

在使用 极狐GitLab 时,你可能已经注意到某些页面没有左侧边栏。这些页面主要是面向用户的页面,例如分配的项目(议题、合并请求和待办事项)以及与工作环境相关的页面,例如群组、项目和活动。在这些页面上没有左侧边栏会在 极狐GitLab 中造成一些不一致和布局偏移。

在此版本中,我们添加了一个新的“你的工作”侧边栏,以增加一致性,并在导航中为你正在处理的事情提供专用位置。

这个新的侧边栏为我们的导航重新设计铺平了道路,其中顶部导航将移动到左侧边栏。

你的工作侧边栏

在一个位置查看和过滤你的活动

在极狐GitLab 中回放你自己的活动可能具有挑战性。你可以查看你的贡献日历或项目的“活动”页面,但它不会仅筛选为你的贡献。

在此版本的极狐GitLab 中,我们在“你的工作”部分中的“活动”页面添加了一个名为“你的活动”的新默认选项卡。这提供了一个集中的位置,可以在一个地方查看你的贡献并按活动类型进行筛选。你可以查看推送事件、合并事件、议题事件、评论、Wiki、设计和团队。这样可以更轻松地在 极狐GitLab 中跟踪你的工作。

在一个位置查看和过滤你的活动

极狐GitLab 用户资料中的Discord用户ID

用户现在可以将指向其 Discord 用户 ID 的链接添加到他们的 极狐GitLab 个人资料中。此链接也通过用户 API 返回。

极狐GitLab 用户资料中的Discord用户ID

自定义用户停用的电子邮件消息

现在,你可以在用户停用时将自定义文本添加到发送给用户的电子邮件中。你可以在管理应用程序设置中自定义此文本。此前,你无法更改此电子邮件中的文本。

自定义用户停用的电子邮件消息

允许在史诗列表和路线图中按群组进行筛选

你现在可以筛选史诗列表和路线图,以显示来自特定群组的史诗。这使得定位所需信息变得更加高效和灵活。

在路线图上显示标签

在路线图视图中,我们提供了有关所显示史诗的有限上下文,这使得用户很难在不离开路线图视图的情况下识别信息。此功能将在侧边栏的史诗列表中显示分配的标签,无需离开页面即可轻松访问和查看。此外,关闭该功能的功能将在路线图设置中提供。

在路线图上显示标签

查看过去 180 天内 DORA 指标的表现

以前,你可以查看过去一周、一个月和 90 天内 DORA 指标的表现。现在,你也可以查看过去 180 天的情况。这种新的 180 天可视化使软件领导者能够跟踪季度指标改进,并确定其 DevOps 性能的历史趋势。

查看过去 180 天内 DORA 指标的表现

使用 `gitlab-sshd` 更好地控制你的 SSH 连接

gitlab-sshd 是一个独立的 SSH 服务器,用 Go 编写,相比于OpenSSH提供更多洞察和控制。它是轻量级的,包含最少的外部依赖项。

如果你托管一个私有化部署实例,从 OpenSSH 切换到 gitlab-sshd 会给你带来关于 SSH 连接的指标收集、详细日志记录和正常关闭信息。

与OpenSSH不同,它支持代理协议,在代理后面操作时可以传递原始IP地址。这使你能够按 IP 地址限制 SSH 访问。

JihuLab.com 从 15.2 开始使用 gitlab-sshd,100%的SSH流量通过gitlab-sshd。要了解如何启用它,请参阅文档。

极狐GitLab Runner 15.9

我们今天还将发布 极狐GitLab Runner 15.9!极狐GitLab Runner 是轻量级、高度可扩展的代理,可运行 CI/CD 作业并将结果发送回 极狐GitLab 实例。极狐GitLab Runner 与 极狐GitLab CI/CD 结合使用,极狐GitLab CI/CD 是 极狐GitLab 附带的开源持续集成服务。

错误修复:

  • 作业失败 - 系统故障:发生内部错误 – Runner 15.8.0 上的 Kubernetes 执行器
  • Kaniko 构建不适用于极狐gitlab-runner 版本 >=15.8.0
  • 字符在Windows+docker + powershell上的CI脚本中随机消失
  • Runner 15.7.0 DOCKER_AUTH_CONFIG另存为文件变量时停止工作
  • 保管库掩码:运行时错误:索引超出范围 [0],长度为 0
  • 升级到 极狐GitLab 12.9 后项目上传中断:致命:参数无效

所有更改的列表位于 极狐GitLab Runner CHANGELOG 中。

使用 CI/CD 流水线导入 NPM 包

你是否考虑过将你的 NPM 仓库迁移到极狐GitLab 但是还未来得及做更多的调研来完成迁移?极狐GitLab 很高兴的宣布 NPM 包导入的 MVC 已经启动了。你可以创建一个 config.yaml 文件来定义那些你想要从任何 npm 合规仓库导入到极狐GitLab 的 npm 包,诸如制品库。然后,你只需要在 .gitlab-ci.yml 流水线配置文件中添加一个导入器即可,剩下的就交给导入器吧。它会在流水线中运行,动态的生成一个可以将所有包导入到你极狐GitLab NPM 包仓库中的 Job。

新的 SAST 规则

我们为极狐GitLab SAST 添加了适用于 Go、Java、JavaScript/TypeScript 和 Python 的新规则。

新规则增加了对潜在 SQL 注入、资源耗尽和目录遍历漏洞的更好保护,并识别常见库中的不安全配置。

更新的规则包含在最新版本的基于 Semgrep 的 SAST 分析器中。

如果在 极狐GitLab 15.0 或更高版本上对 SAST 使用默认的 极狐GitLab 托管 CI/CD 模板,则流水线会自动更新基于 Semgrep 的 SAST 分析器以使用新规则。

在更新后的第一次扫描中,可能会为这些新规则创建新的结果。

静态分析器更新

极狐GitLab 静态分析包括许多安全分析器,极狐GitLab 静态分析团队会主动管理、维护和更新这些分析器。以下分析器更新是在 15.9 版本里程碑期间发布的。这些更新带来了额外的覆盖范围、错误修复和改进。

  • 基于 KICS 的分析器已更新至 1.6.7 版。有关更多详细信息,请参阅更新日志。此版本包括新规则、错误修复和改进。
  • 基于 Kubesec 的分析器已更新到 2.12.0 版。有关更多详细信息,请参阅更新日志 for further details。
  • PMD Apex-based分析器已更新到版本 6.53.0。有关更多详细信息,请参阅更新日志 for further details。
  • 密钥分析器已更新到版本 8.15.2。有关更多详细信息,请参阅更新日志。此版本还改进了 Google Cloud 服务帐号密钥的检测规则。
  • 更新了基于 Semgrep 的分析器以改进调试日志记录。有关更多详细信息,请参阅更新日志

如果包含 极狐GitLab 管理的 SAST 模板 (SAST.gitlab-ci.yml),则无需执行任何操作即可接收这些更新。但是,如果替代或自定义自己的 CI/CD 模板,则需要更新 CI/CD 配置。

若要保留在任何分析器的特定版本上,可以固定到分析器的次要版本。固定到以前的版本会阻止你接收自动分析器更新,并要求你在 CI/CD 模板中手动提升分析器版本。

有关以前的更改,请参阅上个月的更新。

允许自行批准部署到受保护环境的设置

现在,你可以允许触发部署流水线的人员也批准部署到受保护的环境。这在紧急情况下或允许用户自行部署到特殊环境(如生产)的团队中非常有用。

在议题中模糊服务台电子邮件地址

极狐GitLab 服务台使与客户互动和提供支持变得容易。为了确保客户电子邮件地址保持私密,你现在需要最少项目或群组中的报告者角色,以查看服务台问题的发件人地址。这适用于公共和私人项目。

在议题中模糊服务台电子邮件地址

在监管链报告中查看所有提交

现在,你可以在监管链报告中查看所有提交。这在以下情况下很有用:

  • 你对特定的非合并提交感兴趣。
  • 你的组织不使用合并提交。

在这之前,你只能为报告选择合并提交。

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

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

企业版试用