Oct 28, 2023 - 极狐GitLab  
16.5

极狐GitLab 16.5 版本发布

沿袭我们月度发版机制,今天,我们很高兴地宣布极狐GitLab 16.5 正式发布。此次发布带来了合规标准的遵从性报告、通过创建规则来对合并请求设置目标分支、将部署审核和审核规则集成到审计事件中等多项功能。

沿袭我们月度发版机制,今天,我们很高兴地宣布极狐GitLab 16.5 正式发布。此次发布带来了合规标准的遵从性报告、通过创建规则来对合并请求设置目标分支、将部署审核和审核规则集成到审计事件中等多项功能。

此次发布了众多功能改进。以下是此次版本发布的一些重点功能更新详情,请查阅。

极狐GitLab 16.5 主要功能

多仓库项目的代码提交与评审

在开发一些包含多个代码仓库的项目时,例如安卓项目(AOSP),开发一个功能往往需要修改多个仓库的代码,这些跨不同代码仓库的代码需要更便捷的工具统一提交到远端仓库,同时进行统一的代码评审和合并等操作。

在这个版本中,极狐GitLab 发布了一款用于支持上述场景的客户端工具 mono ,同时推出了支持跨多仓库的代码评审功能,来为这类研发项目提供更便捷合规的流程与体验。

使用该功能,需要先下载使用 mono 客户端工具,然后参照多仓库的合并请求使用指南,即可完整使用整个流程。

合规标准的遵从性报告

现在,合规中心包含了一个新的选项卡,用来查看合规标准的遵从性报告。此报告最初包含了一些极狐GitLab 的最佳实践标准,当你群组中的项目不满足要求的时候,这能够很好的展现出是标准中的哪些检查不符合要求。初始的三项检查为:

  • 存在审批规则且针对 MR 最少需要 2 个审批人员
  • 存在审批规则且不允许 MR 作者合并 MR
  • 存在审批规则且不允许 MR 提交者合并 MR

该报告包含了每个项目中每一项检查状态的详情。而且还会展示检查最后一次运行的时间,执行了哪些标准检查以及如何修复可能在报告中出现的任何失败或者问题。在将来的迭代中还会添加更多的检查,通过引入更多的法规和标准来扩大标准检查的范围。此外,我们还会对群组和过滤报告这两方面进行改进,以便你能够更加聚焦在项目或者那些你认为对组织非常重要的标准合规上。

合规标准的遵从性报告

通过创建规则来为合并请求设置目标分支

一些项目会使用一些长期存在的分支来进行研发,比如 develop和 qa。在这些项目中,main分支会被保留为默认分支,因为它代表着项目的生产状态。然而,研发人员期望合并请求的默认分支是 develop或 qa。目标分支规则能够确保合并请求中的目标分支是项目研发工作流中所期望的目标分支。

当创建合并请求的时候,规则会检查分支的名称。如果分支名称和规则相匹配,那么合并请求就会将你在规则中设置的分支预选为目标分支。如果分支名称和规则不匹配,则合并请求会将项目的默认分支设定为目标分支。

通过创建规则来为合并请求设置目标分支

解决议题中的主题

具有多个 thread 且长期运行的议题,阅读和追踪内容都会变得极具挑战性。现在,当讨论的话题已经有结论时,你可以解决议题中的某些主题。

解决议题中的主题

具有半线性提交历史的 Fast-forward 合并列车

在极狐GitLab 16.4 中,我们发布了具备 Fast-forward 功能的合并列车,作为继续,我们想确保极狐GitLab 能够支持所有的合并方法。现在,如果你想确保你的代码提交历史是半线性的,你可以使用具有半线性提交历史的 Fast-ward 合并列车进行代码合并。

具有半线性提交历史的 Fast-forward 合并列车

极狐GitLab 16.5 其他功能

更简单的内容修改

针对左侧边栏,我们已经听到了一些反馈的声音,比如很难去找到查找按钮以及在项目和偏好设置之间进行变更。在这个版本中,我们让按钮变得更加突出。这提高了功能的可发现性,而且简化了工作流。

你可以选择点击查找或前往…按钮或者在键盘上输入快捷键 /或 s来尝试这一功能。

更简单的内容修改

将单个 wiki 页面导出为 PDF 文件

从极狐GitLab 16.5 开始,可以将单个 wiki 页面导出为 PDF 文件了。现在,团队知识内容共享变得比以往更容易了。在很多场景下都可以使用此功能。比如,提供保存在 wiki 中的技术文档副本或者在 wiki 中共享包含项目状态的信息。使用工具来将 Markdown 转换为 PDF 文件的历史已经过去了,因为在一些组织中禁止使用此类工具,从而带来了另外一个挑战。感谢极狐GitLab 做的贡献。

将部署审核和审核规则集成到审计事件中

对于监管严格的行业来讲,部署是关乎合规的一个重要话题。在之前的版本中,部署审核不是审计事件的一部分,这就很难讲审核规则是什么时候以及如何被改变的。

针对部署审核及审核规则变更,极狐GitLab 增加了一系列的审计事件。当部署审核规则或针对受保护环境的审核规则发生变化时,就会触发审计事件进行事件记录。

为流审计事件激活或禁用 header

之前,如果你只是想短暂地禁用某个添加到审计事件流目的地的 HTTP header,你能做的只有删除这个 HTTP header。

在极狐GitLab 16.5 中,你可以在极狐GitLab UI 上使用激活复选框来对每一个 HTTP header 进行激活或者禁用。你可以使用此功能:

  • 测试不同的 header。
  • 短暂地禁用某一个 header。
  • 在同一个 header 的两个版本之间进行切换。

新的自定义权限

管理群组成员和项目访问令牌的权限已经被添加到了自定义角色框架中。你可以将这些权限添加到任何基础角色上来创建自定义的角色。通过创建仅有完成特定工作所需权限的自定义角色,你就不必再将更高的特权赋予给用户了,诸如维护者或拥有者。

通过高级搜索查找史诗故事

极狐GitLab 中备受欢迎的史诗故事还在持续改进。在之前,查找史诗故事要比查找其他内容更难一些。在这个版本中,当你使用高级搜索的时候,你就可以很容易地查找并查看史诗故事的搜索结果。

通过高级搜索查找史诗故事

通过快速操作来添加子任务、目标及关键结果

现在你可以使用 /add_child这个快速操作来为任务、目标及关键结果添加一个子项。

可配置的作业 API 速率限制

最近,新增了一个 project/:id/jobsAPI 的速率限制,默认值为每个用户每分钟 600 次请求。在接下来的迭代中,我们会让这个限制变成可配置的,以便能够让实例管理员来根据自身需求设定最佳的速率限制。

使用 API 为当前认证用户创建个人访问令牌

现在你可以用一个新的 REST API user/personal_access_tokens来为当前认证的用户创建新的个人访问令牌。因为安全的原因,此令牌的作用范围仅限制在 k8s_proxy内,因此你只能使用 Kubernetes agents 来执行 Kubernetes API 调用。之前,只有实例级别的管理员才能通过 API 来创建个人访问令牌

使用 API 来删除用户的 SAML 和 SCIM 身份识别

之前的版本中,群组拥有者是无法通过程序去删除 SAML 和 SCIM 身份识别的。这就让用户配置和登录过程中的故障调试变得异常困难。现在群组拥有者可以使用 API 来删除这些身份识别了。

感谢jgao1025的贡献。

在云端备份和恢复仓库数据

极狐GitLab 的备份和恢复功能现在支持在对象存储中存储仓库数据了。此次更新,通过消除用于创建大型 tar 包的中间步骤来改善了性能,而这些 tar 包通常需要手动存储在适当的位置。

有了此次更新,仓库的备份数据会存储在你选择的对象存储服务上(比如 Amazon S3、Google 云存储、Azure 云数据存储以及 MinIO 等)。这种变更省去了将数据从 Gitaly 实例移除的手动操作。

删除版本的时触发 webhook

你可以使用版本事件来监控版本对象的变更,并做出回应。之前,只有创建或更新版本时才会触发 webhook。在监管严格的行业中,删除版本是一个非常重要的事件,必须要进行监控和追踪。在极狐GitLab 16.5 中,当版本被删除时,也会触发 webhook。

通过快速操作为任务、目标或关键结果设置父类选项

现在,你可以使用 /set_parent快速操作来为人物、目标或关键结果设置父类选项。

DAST 分析器更新

在极狐GitLab 16.5 这个里程碑中,针对基于浏览器的 DAST,我们开启了如下激活检查:

  • 检查 78.1 取代了 ZAP 检查 90020 并能够识别命令注入,可以通过在目标应用程序服务器上执行任意操作系统命令来利用该命令来利用该漏洞。这是一个严重的漏洞,能够让整个系统遭受损害。
  • 检查 611.1 取代了 ZAP 检查 90023 并能够识别外部 XML 条目注入(XXE),该问题可以通过在应用程序的 XML 解析器包含外部资源来利用该漏洞。。
  • 检查 94.4 取代了 ZAP 检查 90019 并能够识别“服务端代码注入(NodeJS)”,可以通过注入能够在服务器上执行的任意 JavaScript 代码来利用该漏洞。
  • 检查 113.1 取代了 ZAP 40003 并且能够识别“HTTP header 中 CRLF 序列的无效中和(HTTP 响应拆分)”,可以通过在 HTTP header 中包含回车、换行来让 HTTP 做出对应的响应,从而实现该漏洞的利用。

导出合规违规报告

合规违规报告会包含很多信息。之前,你只能在极狐GitLab UI 上查看这类信息。对于单个问题来讲,这是足够有好的,但是当你需要其他信息时,情况就变复杂了,比如:

  • 针对某个版本,创建包含当前合规状态的制品。
  • 将当前数据集与另外一个数据集聚合,然后在另外一个工具中进行处理。

在极狐GitLab 16.5 中,你可以将包含在合规违规报告中的一些列内容都以 CSV 的格式导出来。

Geo 为所有组件添加了批量重新同步和重新验证按钮

你现在可以在极狐GitLab 管理员界面上,通过按钮来为 Geo 管理的任何数据组件触发批量数据重新同步和重新验证。当选择点击某一个按钮时,对应的操作就会应用在与此组件相关的所有数据项上。在之前,只能通过登录到 Rail 控制台来实现这一切。现在,这种操作变得更加容易实现,而且在需要对特定组件进行全量数据重新同步或者重新验证的这种大规模变更发生的情况下,故障调试的体验也提高了很多。

在 Jira 开发面板中查看合并请求的审核人员信息

有了极狐GitLab Jira Cloud app,你就能够将极狐GitLab 和 Jira Cloud 连接起来,以便实时同步开发信息。你可以在 Jira 开发面板中查看这些信息。之前,当合并请求被分配给审核人员时,审核人员的信息是不会显示在 Jira 开发面板中的。在此版本中,当你使用极狐GitLab Jira Cloud app 时,审核人员的姓名、邮箱地址以及审批状态都会显示在 Jira 开发面板中。

在任务、目标及关键结果中增加关联度

在此次发版中,你可以将任务和 OKR 关联起来,比如设置为“有关联的”、“被阻塞的”以及“阻塞”,这为独立或者有关联的工作之间提供了足够的可追踪性。

当我们将史诗和议题迁移到工作项框架中时,你将能够在所有类型之间进行相互关联。

在任务、目标及关键结果中增加关联度

重新设计的服务台议题列表

我们已经重新设计了服务台的议题列表,这让加载变得更快更顺畅。现在它已经和常规的议题列表非常接近了。可用的功能包括:

  • 在议题列表上具有相同的排序及排序选项。
  • 相同的过滤器,包括 OR 操作器以及通过议题 ID 进行过滤。

可配置的锁定用户策略

管理员现在可以通过选择非成功登录尝试的次数以及用户被锁定的时长来配置锁定用户的策略了。比如,5 次非成功登录尝试就会被锁定,并且无法在 60 分钟内进行登录。这能够让管理员制定与企业安全合规相契合的用户锁定策略。之前,登录尝试次数以及被锁时长都是无法配置的。

按照状态和严重程度对漏洞进行分组

作为用户,你需要能够对漏洞进行分类,以便能够更高效地管理漏洞。通过此次发版,你就能够通过严重程度或状态来对漏洞进行分组了。这能够帮助你来更好的回答一些问题,比如群组或项目中有多少已经确认的漏洞,以及还有多少漏洞需要分类管理等。

按照状态和严重程度对漏洞进行分组

Omnibus 改进

  • 极狐GitLab 16.5 .debLinux 安装包已经从 gzip 切换到了 xz 压缩,这让包的大小变得更小。此次变更可能会导致安装过程中解压包的时间变长。
  • 极狐GitLab 16.5 包含了 Mattermost 9.0。这个版本移除了过往已经弃用的一些洞察特性,以及 Mattermost 看板和各种插件已经转变为社区支持。
  • 极狐GitLab 将 SELinux 策略模块从 /opt/gitlab/embedded/selinux/rhel/7/移到了 /opt/gitlab/embedded/selinux,以说明此模块支持的不仅只有 RHEL 7。

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

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

企业版试用