Aug 28, 2022 - 极狐GitLab  
15.3

极狐GitLab 15.3 发布通过任务管理工作和免费的GitOps功能

沿袭我们28日发布的传统,今天带来了极狐GitLab 15.3 版本,新功能包括议题中的任务、免费的GitOps功能、SAML群组链接的API维护、高级密码复杂度要求等。

沿袭我们28日发布的传统,今天带来了极狐GitLab 15.3 版本,新功能包括议题中的任务、免费的GitOps功能、SAML群组链接的API维护、高级密码复杂度要求等。

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

极狐GitLab 15.3 主要功能

在议题中创建任务

任务提供了一种将问题细化为更小的、独立的工作单元的方式。在先前版本的极狐GitLab中,你可以在议题的描述中使用markdown的任务清单将一个问题分解成更小的部分。但是,这些任务清单在描述区域之外的地方不便于分配、标记或管理。

然后,可以直接在问题内打开任务以快速更新标题、设置权重或添加描述。任务分解了极狐GitLab 社区版项目中的工作,并将极狐GitLab 专业版客户的计划层次结构增加到三个级别(Epic、问题和任务)。在下一次迭代中,预计为每个任务添加标签、里程碑和迭代。

任务代表了我们向议题、史诗、事件、需求和测试用例演变为工作项目迈出的第一步。

在议题中创建任务

GitOps功能现在转为免费

当你使用GitOps更新Kubernetes集群(也称为基于拉取的部署)时,将获得改进的安全模型、更好的可扩展性和稳定性。

Kubernetes的极狐GitLab代理从最初发布时就支持GitOps 工作流,但直到现在,只有当你拥有极狐GitLab专业版或旗舰版订阅时才可用。现在,如果你有一个社区版免费订阅,你也可以得到基于拉取的部署支持。极狐GitLab基础版的功能应该适用于小型、高信任度的团队,或者适合在升级到更高级别订阅之前测试代理。

未来版本计划为高级订阅添加内置的多租户支持。这个功能将类似于CI/CD工作流中已经有的模拟功能。


在合并请求审核中附带总结评论

当你完成审核一个合并请求时,可能会做一些常见的动作,比如为其他人总结审查,或者如果你觉得这些修改不错就批准它们。这些常见任务现在更快更容易:当提交评论时,可以添加摘要评论以及快速操作,例如/approve

在合并请求审核中附带总结评论

为所有受保护的分支添加批准规则

新版本可以创建MR 批准规则并将其仅应用于项目中受保护的分支。这是一个很大的改进,可以更有选择地应用合规控制并提高粒度。

以前,添加MR审批规则会将其应用于所有分支。这是确保在代码投入生产之前执行正确的工作流的好方法,但这也意味着功能分支、短期分支或实验分支的 MR 都必须使用相同的工作流。这可能会减慢那些不打算提交受保护分支并且可能不需要相同级别的工作流执行的开发人员。

为受保护的分支创建 MR 审批规则,可以让你确信所依赖的敏感分支会有适当的工作流程,同时不会减慢不需要相同级别控制的其他分支的开发速度。

为所有受保护的分支添加批准规则

用于流式审计事件的自定义HTTP 标头的用户界面

现在你可以直接在极狐GitLab用户界面上为流式审计事件添加和删除自定义HTTP标头。

这意味着可以使用基于用户界面的工作流程而不是通过API,并且使得与期望存在特定标头值的其他系统交互变得容易。

用于流式审计事件的自定义HTTP 标头的用户界面

定义密码复杂度要求

除了最小密码长度之外,极狐GitLab 管理员现在还可以定义密码复杂度要求。对于新密码,现在可以要求:

  • 数字。
  • 大写字母。
  • 小写字母。
  • 符号。

复杂的密码不太可能被泄露,配置密码复杂性要求的能力有助于管理员执行他们的密码策略。

感谢极狐团队的 Martin Tan, Kun Qian 和 Shuang Zhang 的贡献!

定义密码复杂度要求

用于数据驱动软件开发改进的DORA自定义报告

在最近增加的对DORA指标的支持的基础上,为洞察增加了新的DORA查询参数。通过这种新的可视化,软件负责人可以跟踪指标的改进,了解其指标趋势的模式,并比较组和项目之间的性能。

洞察报告是用YAML文件配置的,可以在整个组织内共享,作为一个单一来源的报告让所有相关人员都能看到相同的指标。除了DORA之外,洞察还允许用户创建自定义报告,以探索诸如创建和关闭的议题、出现的错误、合并请求、回归、错过的最后期限、跟踪标记的问题等数据。

用于数据驱动软件开发改进的DORA自定义报告

在流水线编辑器中模拟默认分支流水线

流水线编辑器有助于在提交之前防止流水线中的语法错误。但流水线逻辑问题则更难发现。例如,不正确的 rulesneeds 工作依赖可能在提交并尝试运行流水线后才被发现。

在这个版本中,流水线编辑器中带来了模拟流水线的能力。这在以前的CI Lint工具中以有限的形式提供,但现在你可以直接在流水线编辑器中使用它。用它来创建一个新的流水线来模拟默认分支上的修改,并在你实际提交之前检测逻辑问题!

极狐GitLab 15.3 其他功能

SSH指纹的新链接

由于在SSH配置页面和文档中新增了链接,你的极狐GitLab SSH指纹现在更容易找到了。

SSH指纹的新链接

在UI中可见用户SCIM身份

以前,用户的SCIM身份只能通过SCIM API访问。

现在,用户的SCIM身份对于极狐GitLab管理员来说,可以在用户列表的 “身份标识 “标签中看到。这样一来,SCIM相关问题的故障排除就简化了。管理员可以验证特定账户使用的是什么身份(如果有的话),而不需要极狐GitLab支持或API查询。

更改审计事件自定标头的审计事件

现在,当为流式审计事件添加或删除定制的HTTP 标头时,极狐GitLab会记录一个审计事件。

这个审计事件可以帮助确保对流式审计事件的配置是正确的,你可以审计以下内容:

  • 识别审计的变化发生时间。
  • 确定你何时需要采取行动。

迁移群组时迁移多个MR指派人

作为我们努力改进和迭代群组迁移的一部分,我们为被迁移的群组和项目添加更多的元数据,并创造一个更好的迁移体验。我们增加了对迁移多个指派人到一个合并请求的支持。

在这个里程碑之前,只有一个合并请求的指派人可以被迁移。这将有助于实现迁移的自动化,并节省时间,因为它消除了在迁移前分配所有指派人的手工工作。

在WYSIWYG wiki编辑器中可视化目录

在富文本WYSIWYG编辑器中编辑wiki页面时,希望看到内容的准确表示,就像它在发布后出现的那样。有些元素对于纯文本格式来说过于复杂,并且需要在构建页面时生成内容的短代码或宏。wiki 的目录就是一个例子:它从页面的子标题生成一个列表,简化了很长页面的导航。但是,所见即所得页面编辑将目录显示为静态占位符块。

极狐GitLab 15.3 在WYSIWYG wiki 编辑器中显示了目录的可视化表示。要在编辑页面时添加目录,请选择工具栏中的加号(+) 图标,然后选择目录。当在页面上创建和编辑子标题时,目录会实时更新,帮助监控较长 wiki 页面的大纲。

强制对所有媒体文件进行授权检查

如果你知道附在议题、合并请求或评论上的图片的URL,那么不需要认证就可以查看到该图片。在某些情况下,这对注重合规的组织来说是不够安全的。

现在,所有新创建的项目都默认启用了授权检查,并且可以在用户界面中为现有项目进行配置,以满足组织需求。认证检查可能会给电子邮件客户端带来问题,它们无法创建一个有效的极狐GitLab会话来进行认证。

改进了群组Runner的细节和编辑

如果你是群组拥有者,当你查看Runner的详细信息时,重新设计的详细信息页面有一个改进的布局。Runner的元数据显示得更加紧凑,你可以在新的视图中编辑Runner。这些变化有助于使管理Runner的体验更轻松、更高效。

改进了群组Runner的细节和编辑

极狐GitLab Runner 15.3

同期还发布了极狐GitLab Runner 15.3。极狐GitLab Runner 是轻量级、高度可扩展的代理,它运行CI/CD作业并将结果发送回极狐GitLab实例。 Runner与极狐GitLab CI/CD 结合使用,这是极狐GitLab 中包含的开源持续集成服务。

新版本中的功能变化:

  • 在Linux 上使用Podman 作为Docker 执行器

Bug修复:

  • 工件下载因某些CI_JOB_TOKEN值而失败。
  • 适用于Kubernetes的GitLab Runner Operator未安装在离线环境中。

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

查看群组Runner升级的状态

如果必须为团队管理Runner,那么尝试确定有多少Runner以及哪些Runner没有使用最新版本的可能会导致很耗时且效率低下。未能更新版本不仅意味着不能使用最新功能,还可能意味着没有利用安全修复程序。

在15.3 中,可以查看两个新的摘要状态标记,这些标记表明有多少Runner的版本已过时。第一个徽章显示有多少Runner推荐升级,第二个徽章显示有多少可选升级可用。通过这些新增功能,管理员可以更轻松地识别需要版本更新的扫描器。

查看群组Runner升级的状态

基于浏览器的DAST被动检查里程碑

基于浏览器的DAST扫描现在从基于浏览器的扫描器运行所有被动漏洞检查。虽然基于浏览器的DAST仍处于可选测试状态,但一直在定期发布新的漏洞检查。一旦这些都在基于浏览器的扫描器中完成并启用,它们在旧的基于代理的扫描器中同时被禁用。任何尚未移植到新扫描器的检查仍会在旧扫描器中运行,以确保所有测试的完整漏洞覆盖率。从15.3开始,所有被动检查完全切换到新的扫描器。这标志新分析仪开发的一个重要里程碑。

未来,将致力于积极的漏洞检查开发。DAST_BROWSER_SCAN与被动检查一样,对于DAST环境变量设置为true的任何扫描,单个主动检查将在发布时启用。

对密钥检测的IaC扫描规则现已被禁用

我们更新了极狐GitLab IaC扫描,以禁用检测密钥令牌和值的内置规则。这些规则是在支持IaC扫描的上游项目(kics)中添加的。

如果你以前有 “密码和密钥 “系列的IaC扫描发现,在分析器更新后,它们将显示为 “不再检测”。

这一变化防止了在同一项目中同时运行极狐GitLab密钥检测和极狐GitLab IaC扫描时出现重复的发现。我们希望这一变化能够通过消除昂贵的模式匹配来提高扫描性能。

我们正在跟踪工作,以确保删除的规则都被极狐GitLab Secret Detection的内置规则所覆盖。

许可证合规分析更新

极狐GitLab 许可证合规支持通过运行 license-finder 分析器来收集许可证数据。该分析器已被更新为使用Debian Bullseye基本镜像,而不是之前的Debian Buster基本镜像。

预览即将到来的SAST分析器的整合

现在,可以在流水线中使用极狐GitLab管理的SAST CI/CD模板的最新变体来测试即将发生的更改。这是基于Semgrep的扫描替换特定语言GitLab SAST扫描器的迭代计划的一部分,正如在15.0中宣布的那样。

极狐GitLab 15.3中,修改 最新版 模板,使用Semgrep 扫描器替换已弃用的扫描器 bandit、gosec 和 eslint。建议在合并请求中测试更改,但保留在默认分支管道配置中的稳定模板上。要了解更多关于这一变化的信息,请看关于过渡到基于Semgrep的扫描的文档。

最新模板包含了我们计划在极狐GitLab 15.4中发布的稳定模板。要了解更多关于稳定版和最新版模板的信息,请看关于CI/CD模板版本的文档。

使用发布CLI创建带注释的标签

以前,只能在使用极狐GitLab Release CLI 创建发布时创建轻量级标签。在新版本中,可以添加一个可选tag-message参数以在创建发布时创建带注释的标签。这使能够将相关信息与新标签一起包含在内,以便下游用户和应用程序可以拥有额外的上下文。

发布可用性改进

在15.3 中,进行了多项改进,使极狐GitLab 版本更易于使用。用户现在可以直接在用户界面中删除发布、在用户界面中设置发布日期、在用户界面中编辑 release_at 日期以及轻松识别历史发布。

项目设置页面中的组级保护环境配置

以前在查看项目的配置设置时,无法查看是否有相关的组级保护环境设置。在 15.3 中,现在可以在项目的受保护环境配置设置页面中看到这些设置。

Geo支持项目级别安全文件

Geo 现在支持跨Geo站点复制和验证项目级安全文件。使用项目级安全文件,可以将二进制文件(例如配置文件、证书和密钥库)上传到极狐GitLab中的项目,并在CI/CD作业中使用它们。

删除Praefect数据库记录的安全方法

在某些情况下,Gitaly Cluster 可能会为存储库创建数据库条目,但无法复制磁盘上的数据。现在可以使用该 -db-only 选项手动删除Gitaly集群数据库条目,同时保持磁盘存储库完好无损。这允许管理员在保护磁盘存储库的同时删除孤立的数据库条目。

要重新跟踪存储库,请使用 track-repository 命令。

保护新访问令牌的默认值

当你创建访问令牌时,会显示以下默认值:

  • 过期日期为当前日期后的30天。
  • 对于项目和组的访问令牌,角色是访客。

以前,没有设置默认值。通过设置默认的到期日和预先选择最低权限的角色,极狐GitLab提供了一个更安全的基线来创建令牌。

支持通过SSH进行Git的Fortinet推送通知

在以前的极狐GitLab版本中,当使用FortiAuthenticator进行双重认证时,一次性密码(OTP)是唯一的选择。这个选项要求用户在每次呈现时都要输入这个OTP。

现在,用户可以选择接收推送通知而不是OTP,让用户更快速地验证。

用户ID被添加到用户资料页

用户ID 现在可在用户个人资料页面上使用,包括复制ID的功能。这将使自动化等任务更容易。

通过API维护SAML群组链接

到目前为止,SAML群组链接必须在用户界面中进行配置。现在,你可以使用API以编程方式管理SAML群组链接,以便自动化SAML组管理。

如果代码所有者的文件发生了更改,则删除他们的批准

为了确保合并请求的批准是关于最新的修改建议,你可以在有更多新的修改被添加时删除批准。然而,如果你还要求代码拥有者批准特定文件或路径的修改,这种删除可能是不不合理的。即使新的修改不影响代码所有者所负责的文件,他们的批准也会被删除。

现在你可以更有选择性,只在代码所有者的文件发生变化时才删除他们的批准,通过避免不必要的重新批准来提高代码审查的速度。

从用户界面为合并请求变基而不触发流水线

在具有半线性分支的大型繁忙的单库中,你可能需要频繁地为合并请求变基。为了节省资源,你可能不想在每次变基时都运行一个流水线。你可以在使用API变基时跳过流水线,或者通过使用Git推送选项或提交消息中的[ci skip],但在合并请求中从用户界面变基时则不能。

现在我们有了一个选项,可以在从用户界面变基时跳过流水线,所以你可以更好地控制你的合并请求何时运行流水线。

改进新分支上CI/CD `changes` 的表现

通过使用 rules: changes 配置CI/CD作业,以便在某些文件发生变化时在流水线上运行,这对合并请求流水线非常有用。它比较源和目标分支,看有什么变化,并根据需要添加作业。不幸的是,changes 对分支流水线的工作并不理想。例如,如果流水线运行的是一个新的分支,changes 没有什么可以比较的,总是返回true,所以作业可能会意外地运行。

在新版本中,我们为 jobs 和 workflow:rules:changes 增加了 compare_to,以改善分支流水线的行为。现在可以配置作业,以检查新分支和定义的比较分支之间的变化。使用 rules:changes:compare 的作业将以所期望的方式工作,与定义的分支进行比较。这对单仓库很有用,可以根据 repo 中的哪个组件正在工作,配置许多独立的作业来运行。

查看你的Runner升级情况

对于负责操作和维护一组Runner的GitLab管理员来说,尝试确定有多少Runner以及哪些Runner没有使用最新版本的 GitLab Runner 可能既耗时又低效。在 15.1 中,在Runner页面的管理区域中,为各个Runner添加了徽章,以显示升级可用或推荐的时间。在15.2中,可以按升级状态过滤列表。

查看你的Runner升级情况

DAST API和API 模糊测试速度改进

作为DAST API扫描和API 模糊测试提高测试API速度的持续努力的一部分,新增了对多CPU运行器的支持。API 测试与运行应用程序的任何测试一样,可能需要很长时间才能涵盖所有测试用例的所有操作。扫描具有大量操作的API所花费的时间通常会阻止团队将这些测试包含在他们的管道中,尤其是对执行时间敏感的管道,例如功能分支管道。使用多CPU 扫描器允许自动并行执行DAST API 扫描或 API Fuzzing 测试。这显著减少了完成API安全测试所需的时间。

在官方的基准测试中,使用具有3 CPU 的私有扫描器将测试速度提高了约78%。实际数字会因许多因素而异,包括正在测试的API的速度和已启用的测试模块。通常,当使用具有多个 CPU 的扫描器时,与使用共享扫描器或具有单CPU的扫描器相比,可以预期测试时间会显著减少。

安全扫描中使用 “**” 进行路径排除

我们改进了极狐GitLab 安全扫描器中忽略路径的方式。通过忽略测试文件、示例代码或不想扫描的其他代码,忽略路径可以帮助专注于正确的发现。

现在你可以使用双星glob模式,如*/_test.go或test/*/fixture来排除路径:

  • 依赖扫描,通过使用DS_EXCLUDED_PATHS变量。
  • SAST,通过使用SAST_EXCLUDED_PATHS变量。
  • 密钥检测,通过使用SECRET_DETECTION_EXCLUDED_PATHS CI/CD变量。

改进了许可证合规性MR部件的设计

许可证合规性合并请求部件具有重新设计的用户体验,带来以下改进:

  • 与其他小部件更好的一致性。
  • 通过缩进提高了可读性。
  • 更干净的整体风格外观和感觉。
改进了许可证合规性MR部件的设计

静态扫描分析器更新

极狐GitLab静态分析包括极狐GitLab 静态分析团队积极管理、维护和更新的许多安全扫描器。在 15.3 版本中主要更新如下:

  • 更新了Kics分析器,增加了额外的规则,修复了错误,并更新到kics 1.5.12版本。
  • 更新了NodeJSScan分析器,修复了扫描包含符号链接的软件库的问题。
  • PMD-Apex分析器更新到6.47.0版本。该更新解决了PMD依赖中的一个安全漏洞。
  • Semgrep 分析器已更新。详情请见 CHANGELOG。
  • 我们更新到了 Semgrep 0.104.0 版本,以提高性能,修复错误,并在其他方面改进扫描引擎。
  • 我们已经可以删除 “代码生成的不当控制(’代码注入’)”规则,该规则很容易产生误报。要从今天的扫描中删除该规则,请设置SAST_EXPERIMENTAL_FEATURES CI/CD变量。在我们从默认扫描工作中删除规则之前,我们正在探索更好地处理规则删除的选项。
  • 密钥分析器已更新,以修复对OpenShift中自定义证书机构(CA)的处理。
  • SpotBugs分析器已更新,以包括SpotBugs、Gradle、Grails、Maven、sbt、Java和其他依赖的新版本,并修复了对OpenShift中自定义证书颁发机构(CA)的处理。

如果包含极狐GitLab管理的SAST模板(SAST.gitlab-ci.yml),无需执行任何操作就能收到这些更新。但是,如果覆盖或定制自己的CI/CD模板,需要更新你的CI/CD配置。

要保持在任何分析器的特定版本上,你可以锁定在一个分析器的次要版本上。锁定到以前的版本可以防止你接收自动的分析器更新,并且需要你在CI/CD模板中手动固定到你的分析器版本。

关于以前的变化,请看上个月的更新。

使用 `release:tag_message` 关键字创建带注释的标记

现在可以在创建发布时创建带注释的标签。在 .gitlab-ci.yaml 文件中,使用 release 关键字包含可选的 tag_message 子键并指定消息。这使能够将相关信息与新标签一起包含在内,因此下游用户和应用程序可以拥有额外的上下文。

使用编辑标签按钮编辑所有发布详细信息

更新了编辑标签工作流程,因此它可以导航到编辑版本。以前,它会导致旧版编辑标签页面。现在,可以更轻松地创建或更新相关的发布信息,包括发布说明,并利用其他受支持的功能,例如新版本的 webhook。

通过API删除部署

现在可以使用API删除部署。新版本中允许管理和清理旧的部署参考。

交互式安全策略编辑器验证

极狐GitLab 的安全策略YAML编辑器现在包括自动内联验证。该验证有助于防止常见的YAML格式错误,并在键入时提供有关策略的实时反馈。

Omnibus改进

  • 极狐GitLab 15.3包括Mattermost 7.1与新的洞察仪表盘等。该版本还包括安全更新,建议从早期版本升级。
  • Gitaly现在正在使用新的cgroup配置。以下配置将被废弃:gitaly[‘cgroups_count’], gitaly[‘cgroups_memory_limit’], gitaly[‘cgroups_memory_enabled], 和gitaly[‘cgroups_cpu_enabled’]。如果使用以前的设置,请确保在16.0主要版本之前删除它们或切换到新设置。
  • 从15.3开始,捆绑的Grafana在新安装时将被默认禁用。与Omnibus捆绑的Grafana版本有安全漏洞,现在已经被删除。

提高仓库大小计算的准确性

极狐Gitlab通过改进计算存储库大小的方式来使显示的存储库大小更加准确。这样做是为了更准确地了解存储库占用的磁盘空间。

过去,在计算中包括了作为池存储库一部分的共享对象。在修改了的计算方法中,不再包含这些共享对象,并提供了更准确的存储库实际存储空间表示。因此,Fork项目的计算存储现在只包括git更改,而不是整个git存储库。

虽然这是对存储库大小计算的改进,但它并不完美。仍然存在计算的存储库大小可能与预期不同的情况。

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

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

企业版试用