GitLab 13.8发布,新增加管道编辑器和部署仪表盘等

上周五,按照惯例Gitlab官方正式发布了一个新的月度版本13.8。该版本对管道编辑、部署仪表盘等有了很大的改进,还推出了50多项的功能和亮点。请随虫虫一起学习尝鲜。如果想升级版本,请查看本文最后的"升级更新"部分。

GitLab 13.8发布,新增加管道编辑器和部署仪表盘等

概述

本次发布主要加强了对CI/CD方面的易用性,提高管道、部署等的上手难度。

GitLab CI/CD的定义功能一直是通过.gitlab-ci.yml配置文件。将管道配置为代码意味着可以使用与应用程序代码相同的接口对管道进行版本控制和协作。但是,所有这些功能和灵活性都带有相当大的复杂性。。

在新版本中推出了,新的一个功能Pipeline Editor,一个专为CI/CD设计的编辑器,它具有一些增强的功能,例如内置的linting和配置验证。在提交修改之前,管道可视化编辑器就能显示管道的变化。

从GitLab 13.8开始,可以在CI/CD分析中找到部署频率图表。这只是GitLab中第一个DORA 4指标。

这些功能让新用户可以快速上手GitLab CI/CD,并使经验丰富的高级用户更加高效。

GitLab 13.8中主要功能改进

管道编辑器

GitLab CI/CD提供了灵活的选项,用来支持各种高级管道用例。管道语法可能很冗长,有时甚至很复杂,特别是对于那些刚接触GitLab CI/CD的人而言。在新版本中,引入了一个全新的管道编辑器来解决这个难题。

管道编辑器将使新手和高级用户都更容易配置CI配置。管道编辑器是一个单一解决方案,可将所有现有CI创作功能(以及将来的功能)组合在一个位置。管道编辑器是配置管道时的最佳选择。

除了编辑经验外,它还具有其他功能,可帮助编写管道,而无需额外的手动步骤。CI验证会持续检查管道配置,并为提供管道配置有效的指示符。新的Pipeline Visualizer提供管道配置的图形表示。Lint tab验证管道语法并提供有关每个作业的详细信息。

管道编辑器CI lint工具

CI lint工具可验证管道的语法,并提供有关每个作业的一些详细信息。此前,CI lint位于作业页面上,不好找到和访问。在新版本中,该工具已包含在新管道编辑器中。借助此改进,可以在编辑配置时轻松使用CI lint,并在提交更改之前快速验证语法是否符合要求。

GitLab 13.8发布,新增加管道编辑器和部署仪表盘等

管道编辑器CI/CD配置验证

以前,要验证CI/CD配置,必须导航到CI lint页面或提交更改并查找任何错误。在新版本中,在管道编辑器本身中添加了验证。会在写入.gitlab-ci.yml文件之前连续检查管道配置,并为提供配置有效的指示。这样可以节省用户时间和精力,把工作中心放到优化管道上。

GitLab 13.8发布,新增加管道编辑器和部署仪表盘等

管道配置可视化

作为开发人员,可能很难理解复杂的CI配置,尤其是在尝试预测管道的行为时尤其如此。如果没有视觉帮助,就很难对所有工作之间的关系有个感性认识,很难理解它们之间的相互联系。在新版本中,通过管道可视化,用户现在可以看到.gitlab-ci.yml配置的图形表示,以更好地理解和预测管道的性能。

GitLab 13.8发布,新增加管道编辑器和部署仪表盘等

部署频率图(ULTIMATE)

知道和监视部署频率是组织采用DevOps的起点。在项目级别引入部署频率图表,可以方便用户和开发团队随时间监视部署效率,发现瓶颈,必要时进行改进。

GitLab 13.8发布,新增加管道编辑器和部署仪表盘等

通过Email提交问题

为了更有效地将GitLab集成到电子邮件工作流程中,每个问题现在都有一个唯一的电子邮件地址。通过电子邮件发送问题会创建新评论。现在可以告别手动将电子邮件内容和附件复制到GitLab问题中了。

GitLab 13.8发布,新增加管道编辑器和部署仪表盘等

单击并拖动多行合并请求注释

对单行进行注释非常适合简单的代码审查反馈,但注释通常会涉及多行。例如,逻辑块的一部分,代码段落或整个功能。

此前,用户可以在发布评论后通过从原始评论点上下调整行号来选择多行。新版本中,用户可以单击一行的开头,并在合并请求中保留反馈时跨多行拖动注释标记以突出显示和引用多行。

GitLab 13.8发布,新增加管道编辑器和部署仪表盘等

直接从合并请求窗口小部件下载工件

在新版本中,增加了直接从MR小部件下载构建构件的功能。这对于移动开发特别有用。例如,用户要测试在物理设备或仿真器上创建的特定内部版本的Android程序包。现在,可以直接从合并请求窗口小部件访问这些工件,而不必查找隐藏在管道视图中的工件。

GitLab 13.8发布,新增加管道编辑器和部署仪表盘等

重复失败的测试计数器

当查看合并请求的管道执行结果时,可能会有测试失败,无法进一步调查。通常很难验证测试失败是否准确并且需要修复,或者仅仅是一个可以忽略的不稳定测试。重复失败测试计数器的第一个最小可行更改将为提供测试摘要合并请求小部件上先前管道中测试失败的频率的计数。

GitLab 13.8发布,新增加管道编辑器和部署仪表盘等

部署板开放给Core用户

部署板提供了Kubernetes上运行的每个CI环境的当前运行状况和状态的合并视图,显示了部署中Pod的状态。开发人员和其他团队成员可以在已经使用的工作流程中逐个窗格地查看发布的进度和状态,而无需访问Kubernetes。

GitLab承诺将18种功能迁移到CE Core产品中。在该版本的GitLab中,完成了将Deploy Boards迁移到Core的工作。

GitLab 13.8发布,新增加管道编辑器和部署仪表盘等

合并请求的Rebase快速操作

Rebase是一个Git命令,用于在新提交之上重新应用提交。实际上,这意味着在最新版本的目标分支(例如main)之上从功能分支重新应用提交。这样,可以使功能分支保持最新状态并解决任何冲突,而无需使用合并提交,从而可以简化线性Git历史记录。

GitLab 13.8带来了在合并请求中执行rebase快速操作的功能,使用户可以快速调用git rebase。

在合并请求注释上,键入/rebase并单击comment按钮。就这么简单。

GitLab 13.8发布,新增加管道编辑器和部署仪表盘等

Gitaly群集的分布式读取(PREMIUM及以上)

用户希望在高度可用的Gitaly群集中获得尽可能高的容错级别。新版本引入了Gitaly Clusters的分布式读取。这样Gitaly不再总是从主节点读取数据,而是自动将读取请求分配给集群中的任何最新节点。分配请求使用户可以访问群集中配置的所有计算资源,从而最大限度地提高性能和价值主张。用户还希望防止同一节点上的嘈杂邻居存储库导致性能下降。这个问题对于大型繁忙的monorepos尤为重要,因为那里有成千上万的工程师和CI管道同时访问同一个Git存储库。通过水平分布读取请求,Gitaly群集可提高群集中所有存储库的性能。

GitLab 13.8发布,新增加管道编辑器和部署仪表盘等

GitLab Pages现在在Kubernetes部署的GitLab中可用

GitLab Pages是内置在GitLab中的一种流行的静态站点托管服务,新版中可用于在Kubernetes上运行的GitLab实例。与Omnibus部署相比,Pages是最后剩下的功能差距之一。

新版本中支持自定义域,但是访问控制将在将来的版本中提供。

GitLab 13.8发布,新增加管道编辑器和部署仪表盘等

将板的范围调整为当前迭代(STARTER及以上)

许多团队使用董事会来管理迭代期间的问题。在13.6中,在特定的Iteration中增加了对板上过滤问题的支持,但是记住每次上板时都要应用该过滤器是很麻烦的。

在新版本中,增加了将板的作用域扩展到当前活动迭代的功能。

GitLab 13.8发布,新增加管道编辑器和部署仪表盘等

组成员webhook(编辑,删除)(PREMIUM及以上)

在GitLab 13.7中,引入了一个Webhook,当一个新成员被添加到组中时被触发。在GitLab 13.8中,如果用户的访问级别已更改,用户访问的到期日期已更新或用户已从组中删除,则也会触发组成员事件webhook。通过添加这些事件,可以使用组成员事件webhook来知道对组成员所做的所有更改,而无需依赖API调用。


在CI包含部分中支持预定义变量

受监管的客户依靠GitLab的CI/CD功能来定义和自动化其安全性和合规性工作以及将变更部署到敏感环境的流程。确保编写代码的团队与部署该代码的团队之间保持职责分离,并且这些作业始终在敏感环境中运行。

在13.8中,现在可以在文件的部分中使用预定义的项目变量include:.gitlab-ci.yml。此项更改是更大解决方案的一部分,可为GitLab CI/CD管道带来更好的职责分离。

以自动完成方式显示所有可用的快速操作

当输入/描述或注释字段时,所有可用的快速操作现在都显示在可滚动列表中。快速行动是一种有效地更新有关问题,合并请求或Epic数据的好方法,一小小的改进有助于在使用它们的上下文中更容易发现它们。

GitLab 13.8发布,新增加管道编辑器和部署仪表盘等

在迭代报告中按标签对问题进行分组(STARTER及以上)

现在,可以按标签在迭代报告中对问题进行分组。这为团队提供了一种查看迭代过程中进度的方法,该过程按标签经常代表的多个维度进行细分。

GitLab 13.8发布,新增加管道编辑器和部署仪表盘等

在项目上禁用运维功能

GitLab提供了多种工具来帮助监视和操作应用程序,但并非GitLab中的所有项目都是Web应用程序。例如,如果正在处理NPM软件包,托管配置文件或使用仅Wiki项目,则可能会发现项目不需要操作功能。

在GitLab 13.8中,可以逐个项目禁用"运维"功能,这将删除对功能的访问并在左侧边栏中隐藏菜单项。可以在"设置">"常规"下的"可见性,项目功能,权限"部分下找到新配置。以这种方式配置项目可确保只有使用的功能以及项目支持的功能才可用,并且在GitLab界面中可见。

管道规则的支持变量

以前,rules关键字的范围是有限的,只能确定是否应将作业包括在管道中或从管道中排除。在此版本中,可以决定是否满足某些条件,并随后覆盖作业中的变量,从而为配置管道提供了更大的灵活性。

GitLab 13.8发布,新增加管道编辑器和部署仪表盘等

组或子组安装NuGet软件包

可以使用项目的程序包注册表来发布和安装NuGet程序包。只需使用NuGet CLI,Visual Studio或.NET CLI将项目添加为源即可。例如,使用NuGet CLI,可以运行:

nuget source Add -Name  -Source "gitlab /api/v4/projects//packages/nuget/index.json" -UserName  -Password 


如果项目数量很少,则效果很好。但是,如果一个组中嵌套了多个项目,则可能会很快发现自己添加了数十甚至数百个不同的资源。对于拥有许多团队的大型组织,团队通常会将软件包与源代码和管道一起发布到其项目的Package Registry。但是,还需要能够轻松安装组织中其他项目的依赖关系。

以从小组中安装软件包,这样不必记住哪个软件包位于哪个项目中。只需将组添加为NuGet软件包的源即可,可以安装该组的任何软件包。

nuget source Add -Name  -Source " gitlab /api/v4/projects//packages/nuget/index.json" -UserName  -Password 

改进了管道状态电子邮件主题行

当管道成功,失败或修复时,GitLab会发送电子邮件通知。在以前的版本中,这些电子邮件看起来很相似。这使得很难在不阅读电子邮件正文的情况下告诉管道状态。此版本更新了这些电子邮件通知的主题行,因此可以快速确定管道状态。

GitLab 13.8发布,新增加管道编辑器和部署仪表盘等

通过UI管理Terraform状态文件

使用Terraform管理基础结构时,可以创建多个状态文件,例如每个分支的状态文件。要调试问题,需要概述项目中附加的状态文件,以及可以对每个状态文件执行的各种操作。在早期版本的GitLab中,管理Terraform状态文件需要用于执行诸如释放状态锁之类的任务的API。新版中引入一个UI来列出现有状态文件。它使项目维护人员可以锁定或解锁状态文件,删除状态JSON或完全删除状态文件。

GitLab 13.8发布,新增加管道编辑器和部署仪表盘等

比较存储库并验证它们是否相同

通过校验每个存储库的所有引用,可以将一个Git存储库与另一个存储库进行比较。如果两个存储库都具有相同的引用,并且两个存储库都通过了完整性检查,那么可以确信两个存储库是相同的。例如,这可用于将存储库的备份与源存储库进行比较。

新增加的gitlab:git:checksum_projects rake任务可以让系统管理员可以按ID选择项目的子集或遍历所有项目,并输出可以与同一项目的副本进行比较的Git引用的校验和。

对Alpha中PostgreSQL高可用性的GEO(PREMIUM及以上)

Patroni是PostgreSQL高可用性的解决方案,它还允许在GEO辅助数据库上配置高可用性PostgreSQL备用群集。当将辅助节点用作灾难恢复策略的一部分时,此配置很重要,因为它允许系统管理员镜像主节点和辅助节点上的数据库节点数。这意味着在故障转移之后,无需调配其他数据库节点即可恢复高可用性。

现在,Geo使用Patroni为高可用性PostgreSQL配置提供了alpha级支持。Gitlab已经将Patroni升级到2.0.1,添加了故障转移文档,并修复了许多错误。

改进了高级搜索中的文件搜索(STARTER及以上)

在高级搜索中,搜索文件是最常见的用例。在此版本之前,搜索文件通常需要一些特定的语法,而且不是很直观。

在GitLab 13.8中,高级搜索现在支持全路径搜索,文件语法搜索也更加灵活。

GitLab 13.8发布,新增加管道编辑器和部署仪表盘等

默认单节点实例将升级到PostgreSQL 12

在GitLab 14.0中,计划要求PostgreSQL 12。PostgreSQL 12提供了显著的索引编制和分区优势,并提高了性能。

为了准备,使用Omnigres打包的Postgres版本的单节点实例现在将默认自动升级到版本12。如果愿意,可以设置不自动升级。

在使用Patroni进行升级之前,多节点实例以及所有Geo辅助数据库都需要从repmgr切换到Patroni。然后可以更新GEO辅助数据库并重新同步。

忙状态指示灯

通过状态更新,用户当前可以与他们的团队共享个性化状态消息和表情符号。通过将自己标记为忙,其他伙伴可以轻松地看到何时无法进行代码审查和其他任务。在整个GitLab用户界面中,"忙碌"状态将显示在姓名旁边。

GitLab 13.8发布,新增加管道编辑器和部署仪表盘等

在实例之间直接迁移组

一种更快,更轻松地迁移GitLab组的方法正在开发中。组迁移是一项新功能,可让直接将GitLab组从一个实例复制到另一个实例,而无需导出和导入任何文件。在该版本中,仅迁移具有基本字段的Group对象。后续计划会增加越来越多的字段和相关对象,直到以这种易于使用的方式迁移组中的所有相关数据。

SAML和SCIM预配置帐户的欢迎电子邮件

在GitLab 13.8中,通过SCIM或SAML创建的用户将收到一封欢迎电子邮件,通知他们其帐户是为在组织的组中使用而创建的。将来的迭代将使组管理员可以更好地控制由其SAML或SCIM集成提供的帐户。

将需求导出到CSV文件(ULTIMATE)

完成开发并验证产品满足所有要求后,可能需要导出要求状态以允许纳入更高级别的要求可追溯性分析中。通过引入需求导出功能,现在可以做到这一点。只需启动需求导出,就会以.CSV格式自动发送。

GitLab 13.8发布,新增加管道编辑器和部署仪表盘等

审阅者的批准规则信息(STARTER及以上)

在努力使合并请求经过审核,批准并最终合并时,选择合适的人员来执行这些任务很重要。要求无法提供批准的人员进行审核,可能会减缓发布的过程。

从GitLab 13.8起,在为合并请求选择审阅者时,可以看到在审阅者名称的正下方显示了用户匹配的批准规则。

GitLab 13.8发布,新增加管道编辑器和部署仪表盘等

链接源合并请求以进行压缩和合并提交

在GitLab中查看提交时,包含提交的合并请求被链接。当尝试查找更改的业务和技术环境时,查找添加了提交的合并请求非常有用。

如果使用压缩或合并提交,则先前不会包含合并请求信息。在GitLab 13.8中,包括所有提交类型的合并请求链接,从而确保用户可以找到引入更改的位置。

快速编辑Wiki的侧边栏

_sidebar在Wiki中创建一个名为Markdown的文件将使用该文件的内容为项目生成自定义边栏导航菜单。但是,编辑该文件非常棘手,因为在界面中无处可再次打开_sidebar。

从GitLab 13.8开始,现在在Wiki页面的右上角有一个Edit侧边栏按钮。单击此按钮将自动创建_sidebar文件(如果尚不存在),然后在页面编辑器中将其打开。通过这种快速访问,可以更直观地创建和维护自定义Wiki导航。

为Jupyter Notebook使用丰富的输出

Jupyter Notebook是包含实时代码,方程式,可视化效果和叙述文本的文档。它们被广泛用于数据清理和转换,数值模拟,统计建模,数据可视化,机器学习等。它们能够使用"丰富的输出"来显示对象的渲染表示形式,例如HTML,JPEG,SVG或LaTeX文件。以前,在Jupyter中打开Notebook是读取具有丰富输出的唯一方法。

GitLab 13.8中,默认情况下将显示Jupyter笔记本内容的丰富输出。这是预览文件更改以及使用Jupyter Notebook而无需离开GitLab的绝佳方法。

GitLab 13.8发布,新增加管道编辑器和部署仪表盘等

使用退出代码控制作业状态

可以使用allow_failure关键字来防止失败的作业导致整个管道失败。之前allow_failure仅接受true或false布尔值,在新版本中进行了改进,因此现在可以使用allow_failure关键字查找特定的脚本退出代码。这提供了更大的灵活性和对管道的控制,从而防止了基于退出代码的故障。

GitLab 13.8发布,新增加管道编辑器和部署仪表盘等

项目配置以控制最新工件的存储

从最新成功的工作中保留最新工件是一个有用的默认行为,但也会导致大量的存储使用。如果有生成大量工件的管道,这可能会导致磁盘空间使用量意外增加。为了改善存储消耗管理,新版本中可以在设置中对任何项目禁用此行为。

GitLab 13.8发布,新增加管道编辑器和部署仪表盘等

使用分支管道和MR管道而不重复

以前,不能预先为分支机构运行管道,然后在创建MR时切换到合并请求管道。因此,在某些配置下,如果分支上的合并请求已打开,则推送到分支可能会导致重复的管道:分支上的一个管道,而另一个用于合并请求的管道。现在,可以$CI_OPEN_MERGE_REQUESTS在CI配置中使用新的预定义环境变量,以在正确的时间从分支管道切换到MR管道,并防止出现冗余管道。

GitLab 13.8发布,新增加管道编辑器和部署仪表盘等

GitLab Terraform Provider 3.4更新

如果使用Terraform设置GitLab, GitLab发布了Terraform Provider的3.4.0版本。在过去的几个月中,除了许多较小的增强功能和一些错误修复之外,还提供了项目镜像,组共享,项目批准规则和实例级CI变量的支持。

指标图直接上传到事件(PREMIUM及以上)

在故障处理过程中处理事件需要响应者跨多种工具进行协调以评估不同的数据源。收集和评估指标,日志和跟踪,并与响应团队共享这些指标既耗时又充满挑战。通过在事件的新"指标"选项卡中为这些屏幕截图提供拖放上传,简化了此工作流程。汇总并集中放置所有指标的屏幕快照,以便团队可以快速访问和参考重要图表。

GitLab 13.8发布,新增加管道编辑器和部署仪表盘等

在"高级搜索"中更快地搜索问题(STARTER及以上)

高级搜索可以从小型个人实例一直扩展。但是,在某些大的实例上,随着索引大小的增加以及需要检查的权限数量的增加,搜索速度可能会降低。

在GitLab 13.8中,为问题分割了自己的索引,从而使大型实例的"高级搜索"更快。还简化了权限检查的方法,从而进一步提高了性能。

该更新将自动应用,而无需进行手动重新索引。过程不到2个小时,但是在完成对新内容的索引编制时会有所延迟。

GitLab Helm chart改进

GitLab Pages现在可用于Kubernetes部署

Praefect现在支持多个虚拟存储。

registry版本已更新至2.13.1-gitlab

Gitlab Runner 13.8

一同还发布了GitLab Runner 13.8。GitLab Runner是一种轻量级,高度可扩展的代理,可运行构建作业并将结果发送回GitLab实例。GitLab Runner与GitLab CI/CD结合使用,GitLab CI/CD是GitLab附带的开源持续集成服务。GitLab Runner 13.8新功能和改进有:

支持Windows Docker执行器的命名管道。

修复 使用IRSA EKS 1.18上的缓存上载。

修复针对Docker和Kubernetes执行程序失败的作业的缓存推送

修复Kubernetes执行器上的Azure缓存不起作用。

修复FastZip以支持非root用户的工件。

Omnibus的改进

gitlab-exporter中删除了与流程相关的指标。GitLab中现在可以直接将其导出。

添加一个patroni_role,可以轻松地为扩展的GitLab部署配置Patroni节点。

新增回退到postgresql[X]设置,用于更多的patroni设置。

registry组件已更新至2.13.1-gitlab,grafana从7.3.6patroni到2.0.1的版本。

现在可以配置存储加密凭证的路径。

GitLab 13.8包括Mattermost 5.30(一种开源的Slack替代产品),其最新版本包括对Matterpoll插件的改进,PostgreSQL v9.x的弃用等。

安全和合规性审计

代码所有者的可选部分(PREMIUM及以上)

代码所有者部分允许多个团队在同一文件中独立配置自己的代码所有者。通过帮助作者从正确的审阅者那里获得反馈,当多个团队负责代码的公共部分时,这将有所帮助。但是,当需要代码所有者的批准时,这适用于所有部分,这意味着所有团队都需要批准,这可以阻止合并后的更改。

GitLab 13.8引入了在CODEOWNERS文件中指定可选部分的功能。只需在节名称前加上^字符,该节将被视为可选。这样通过合并请求进行的相关更改将不需要指定所有者的批准。通过可选部分,可以继续为代码的各个部分指定负责方,同时为项目的某些部分提供更为宽松的策略,该策略可能会经常更新但不需要严格的审查。

限速空转模式和绕过机制

设置应用程序的速率限制,以允许来自受信任源的请求同时阻止恶意流量,这可能是一个挑战。新版中加入一些改进,以使正确设置速率限制变得更加容易。首先,可以使用新的空运行模式测试速率限制设置,该模式将对照每个速率限制检查请求并记录结果,而不会实际阻止客户端。这样,可以在生产中启用请求速率设置之前对其进行微调。

其次,还可以配置特定的请求,可以更好地支持受信任的服务。

最后,可以配置特定用户以绕过速率限制器。这使可以更好地支持可信任的用户访问GitLab实例。

为Docker执行器配置多个镜像拉取策略

当CI作业从容器注册表中检索容器镜像时,丢失的网络连接可能会导致数小时的开发时间损失,并对时间敏感的产品部署产生负面影响。为了解决该弹性问题,GitLab Runner Docker执行程序现在支持对pull_policy配置使用多个值,该值在GitLab Runnerconfig.toml文件中定义。可以使用这些值或堆叠的镜像拉取策略来配置拉取策略的组合,并减轻由于失去连接而造成的影响。例如,如果配置pull_policy =["always", "if-not-present"],则拉策略将always拉取镜像。但是,如果目标容器注册表不可用,则GitLab Runner Docker执行程序将回退并使用if-not-present 策略,这意味着将在该管道作业中使用镜像的本地副本。

GitLab 13.8发布,新增加管道编辑器和部署仪表盘等

按需DAST扫描仪配置文件中的主动扫描模式(ULTIMATE)

与新的站点验证功能结合使用时,现在可以在按需DAST扫描仪配置文件中配置活动DAST扫描。验证站点的所有权后,可以配置活动扫描仪对该站点扫描。这些扫描包括对该站点的实际,破坏性的恶意攻击。建议用户仅在不关心数据丢失的不包含生产数据的登台和测试站点上使用主动扫描。

改进了SAST严重性数据以解决JavaScript漏洞

安全扫描分析仪可以进行GitLab静态应用程序安全测试,并将识别漏洞的严重性数据。新版中更新了JavaScript分析器ESLint,以增加对严重性和CWE数据的支持。该数据将有助于增加安全批准规则的可用性和准确性,因为更少的漏洞将报告"严重"。此外,此数据显示在漏洞详细信息页面上,该页面提供了更多信息以及指向有关漏洞的相关信息的链接,从而使开发人员更容易理解和修复问题。

GitLab 13.8发布,新增加管道编辑器和部署仪表盘等

API Fuzz测试结果显示在安全仪表板中(ULTIMATE)

在新版本中,API Fuzz测试结果会显示在安全性仪表板中,安全扫描程序将在所有其他位置显示其结果。可以对API模糊测试结果进行分类,为它们创建问题,并像与其他扫描仪一样与团队合作。

这些结果都会从"测试"选项卡到安全仪表盘中,以便可以与其他安全扫描程序集成在一起。

GitLab 13.8发布,新增加管道编辑器和部署仪表盘等

.gitlab-ci.yml模板中添加DAST.latest(ULTIMATE)

GitLab的DAST始终只有一个模板,该模板未进行版本控制,并在需要更改时进行更新。对于模板更新后测试中断的用户,这已证明是困难的。从GitLab 13.8开始,新引入.latest模板的版本。该模板包括主要版本之间进行的所有模板更改,包括重大更改。这向用户发出警告,即将发生更改,并使能够在被迫切换之前自行测试更改。

重大更改被引入下一主要GitLab版本的稳定模板中。对于不间断的更改,可以将它们放在最新版本的几个版本中之后,放入稳定的模板中。将更改合并到稳定模板中的速度取决于许多因素,并且在用户测试最新模板中的更改时会考虑到用户的反馈。

按需扫描的站点验证(ULTIMATE)

从GitLab 13.8开始,用户可以验证自己是否拥有或有权作为站点配置文件添加域。通过将带有项目和站点特定字符串的文本文件添加到其站点,用户可以验证域的所有权。验证过程将释放对站点运行活动DAST扫描的能力。由于主动DAST扫描包括针对站点的实际攻击,因此站点验证可确保用户不会意外对可能造成数据丢失或损坏的站点进行主动扫描。因此,任何使用未经验证的域的站点配置文件都只能使用使用被动扫描模式的扫描器配置文件。

性能改进

在每个版本中,致力于提高每个GitLab实例的速度。在GitLab 13.8中,在问题,项目,里程碑等方面提高性能,其中一些改进包括:

在Container Registry索引页面中减少LCP。

将GraphQL用于漏洞状态下拉菜单。

N+1使用GraphQL解决带有加载组问题的查询。

启用QueryCache了LoadBalancing。

audit_events用分区副本交换基本表。

Bug修复

GitLab 13.8中一些值得注意的错误修复是:

修复容器扫描不再报告分析器的版本。

修复漏洞报告中"管道安全性"选项卡上的长标题未对齐。

内联代码覆盖率未在cobertura报告中加载自闭合源标签。

编辑看板后,应继续进行分组选择。

使用GitLab Geo和可识别位置的Git URL时出现LFS问题。

修复管道间歇性lints失败报错的故障。

功能删除

DAST环境变量重命名和删除

变更日期:2021年6月22日

GitLab 13.8重命名了多个环境变量,以支持它们在不同工作流程中的更广泛使用。在GitLab 14.0中,旧变量的将被永久删除,并且将不再起作用。使用这些变量的任何配置都必须更新为新的变量名称。在GitLab 14.0及更高版本中使用这些变量进行的任何扫描都将无法正确配置。这些变量包括:

DAST_AUTH_EXCLUDE_URLS->DAST_EXCLUDE_URLS。
AUTH_EXCLUDE_URLS->DAST_EXCLUDE_URLS。
AUTH_USERNAME->DAST_USERNAME。
AUTH_PASSWORD->DAST_PASSWORD。
AUTH_USERNAME_FIELD->DAST_USERNAME_FIELD。
AUTH_PASSWORD_FIELD->DAST_PASSWORD_FIELD。
DAST_ZAP_USE_AJAX_SPIDER->DAST_USE_AJAX_SPIDER

DAST_FULL_SCAN_DOMAIN_VALIDATION_REQUIRED将被删除,该功能已被删除。

容器注册表日志格式化程序

变更日期:2021年1月22日

目前,GitLab支持:

应用程序日志的文本,JSON和logstash日志格式。

用于访问日志的文本,JSON和组合日志格式。

将删除logstash和组合格式,仅使用两个选项文本(用于开发)和JSON统一应用程序和访问日志的格式化程序。

删除Container Registry日志Hook

删除日期:2021年1月22日

容器注册表当前支持只能用于电子邮件通知的日志记录Hook。现在,基于日志条目的警报通常由单独的工具处理。

为了简化注册表功能和配置,将删除对日志记录Hook。

删除Container Registry maxidle和maxactive Redis池设置

变更日期:2021年1月22日

当前为Redis连接池公开的一些配置设置与基础Redis客户端绑定,并且在替代库中没有等效设置。改进Redis集成(例如增加对Sentinel的支持)后,决定开始着手尝试以功能更丰富的替代方法来替换当前的Redis客户端依赖项,从而更好地为其提供支持。为此,需要替换绑定到当前客户端库的当前Redis池配置设置:

删除redis.pool.maxidle和redis.pool.maxactive设置。

增加redis.pool.size(最大连接数),redis.pool.minidle(最小空闲连接数)和redis.pool.maxlifetime(可以重用连接的最大时间)设置。

停止Bugsnag和NewRelic的Container Registry支持

变更日期:2021年1月22日

Bugsnag和NewRelic是容器注册表支持的错误报告服务之一。在GitLab使用Sentry。为了简化和合并受支持的错误报告服务,打算增加对Sentry的支持,并删除对Bugsnag和NewRelic的支持。

停止对TLS 1.0和1.1格式的Container Registry支持

变更日期:2021年1月22日

出于安全性考虑,由于GitLab不再支持TLS 1.0和TLS 1.1。将对当前支持1.0(默认),1.1、1.2和1.3的GitLab容器注册表进行同样的操作。

将停止对TLS 1.0和TLS 1.1的支持,并在使用它们时显示警告日志消息。这些版本的支持将被删除,并且TLS 1.2将成为默认版本。

Gitaly停止对TLS 1.0和1.1的支持

变更日期:2021年1月22日

出于安全性考虑,将不再支持TLS 1.0和TLS 1.1,并已从GitLab中删除了对它的支持。对于Gitaly,将执行相同的操作。

Gitaly将配置为至少对所有客户端和服务器端连接使用TLS 1.2。

停止对Docker注册表API v1的支持

变更日期:2021年1月22日

GitLab将于2021年1月22日通过Docker注册表v1 API禁用拉取功能.Docker在2019年6月删除了该功能,该功能使GitLab团队可以专注于为提供更多价值并针对当前注册表用例的功能和修补程序。

通过完成以下步骤,GitLab上的v1注册表API的现有用户可以移至v2注册表API:

将的Docker Engine更新到17.12或更高版本,以便与v2注册表API兼容。

如果在GitLab中具有v1格式的内容,则可以使用较新的Docker客户端(比1.12更新的版本)将其移至v2格式,以重建镜像并将其推送到GitLab。

Git默认分支名称更改

变更日期:2021年6月22日

Git存储库都有一个初始分支。这是创建新存储库时自动创建的第一个分支。默认情况下,此初始分支名为master。Git版本2.31.0(计划于2021年3月15日发布)会将Git中的默认分支名称从master更改为main。为了与Git项目和更广泛的社区协调, GitLab 14.0开始的自建实例上新项目的默认分支名称。该变更不会影响现有项目。

GitLab Runner安装程序忽略skel目录

变更日期:2021年6月22日

在GitLab Runner 14.0中,skel默认情况下,安装过程将在创建用户主目录时忽略该目录。

Windows Runner的默认shell改为pwsh

变更日期:2021年6月22日


在GitLab Runner 13.2中,PowerShell Core支持已添加到Shell执行程序中。在14.0中,pwsh它将是新注册的Windows运行程序的默认外壳程序。Windows CMD仍可作为Windows运行程序的外壳程序选项使用。

停止PostgreSQL 11支持

变更日期:2021年6月22日

PostgreSQL 12将是GitLab 14.0中最低要求的版本。它为索引编制,分区和一般性能优势提供了重大改进。

从GitLab 13.7开始,所有新安装的默认版本均为12。在GitLab 13.8中,单节点实例也将自动升级。如果还没有准备好升级,则可以选择退出自动升级。

在使用Patroni进行升级之前,多节点数据库实例将需要从repmgr切换到Patroni。然后可以更新GEO辅助数据库并重新同步。

从DAST报表中删除旧字段

变更日期:2021年6月22日

作为迁移到GitLab中所有安全扫描器的通用报告格式的一部分,DAST正在对DAST JSON报告进行更改。某些旧版字段在13.8中已弃用,并将在14.0中完全删除。这些字段包括:@generated,@version,site,和spider。该变化不会影响任何正常的DAST操作,但会影响以自动方式使用JSON报告并使用这些字段的用户。

删除/usr/lib /gitlab-runner符号链接

变更日期:2021年6月22日

在GitLab转轮13.3,一个符号链接从加入/user/lib/gitlab-runner/gitlab-runner到/usr/bin/gitlab-runner。在14.0中,将删除此符号链接,并将运行器安装在中/usr/bin/gitlab-runner。

删除DAST默认模板阶段

变更日期:2021年6月22日

在GitLab 14.0中,DAST .gitlab-ci.yml将删除当前模板中定义的阶段,以避免模板覆盖DAST用户进行的手动更改的情况。该更改是为了响应客户的问题,其中模板的阶段与自定义DAST配置一起使用时会引起问题。变化后,gitlab-ci.yml未指定dast阶段的配置必须更新为包括此阶段。

在GitLab 13.8中,不建议使用这些阶段,并将其从模板中删除的更改也包括在DAST.latest.gitlab-ci.yml模板中。任何人都可以测试并查看他们的配置文件中是否需要任何更改。

删除FF_SHELL_EXECUTOR_USE_LEGACY_PROCESS_KILL功能标记

变更日期:2021年6月22日

在GitLab Runner 13.1(版本3376)中,介绍了Shell执行器sigterm,然后介绍sigkill了该过程。还引入了一个新的功能标志,FF_SHELL_EXECUTOR_USE_LEGACY_PROCESS_KILL因此可以使用以前的过程终止序列。在GitLab Runner 14.0中,将删除功能标记。

删除FF_USE_GO_CLOUD_WITH_CACHE_ARCHIVER功能标志

变更日期:2021年6月22日

在GitLab Runner 14.0中,将删除FF_USE_GO_CLOUD_WITH_CACHE_ARCHIVER功能标记。

删除Ubuntu 19.10(Eoan Ermine)软件包

变更日期:2021年6月22日

Ubuntu 19.10(Eoan Ermine)已于2020年7月17日到期,在GitLab Runner 14.0中,将从软件包分发中删除Ubuntu 19.10(Eoan Ermine)。

删除旧版DAST域验证

变更日期:2021年6月22日

从GitLab 13.8开始,不建议使用CI/CD扫描的DAST域验证的当前方法。

在GitLab 14.0中,旧的DAST验证方法将被删除。这种域验证方法仅在DAST_FULL_SCAN_DOMAIN_VALIDATION_REQUIRED环境变量true在gitlab-ci.yml文件中设置为且Gitlab-DAST-Permission站点上的标头未设置为的情况下才禁止扫描allow。这种分两步的方法造成了一种情况,用户必须选择退出使用该变量,然后才能退出使用标题。对于担心保护网站免受全面,主动扫描的用户而言,仍然可以通过在任何网站上添加Gitlab-DAST-Permission值为的标头来撤销对GitLab DAST扫描的许可deny。这将继续阻止对包含此HTTP标头的任何网站进行的GitLab DAST扫描。

删除非高峰时间模式配置以进行Docker Machine自动缩放

变更日期:2021年6月22日

在GitLab Runner 13.0,为GitLab Docker Machine执行程序引入了新的计时选项。在GitLab Runner 14.0中,计划删除旧的配置选项非高峰时间模式。

删除成功和失败以完成构建度量标准转换

变更日期:2021年6月22日

在GitLab Runner 13.5中,介绍了failed并success声明了一项工作。为了支持普罗米修斯规则,选择了转换success/failure到finished度量标准。在14.0中,该将删除转换。

自定义执行程序中删除从step_script到build_script翻译

变更日期:2021年6月22日

在GitLab Runner 13.2中翻译step_script到build_script被添加到自定义执行。在14.0中," build_script"阶段将替换为" step_script"

默认DAST Spider从目标URL开始进行抓取

变更日期:2021年6月22日

在GitLab 14.0中,DAST将删除在开始使用Spider时将扫描重置为主机名的当前方法。在GitLab 14.0之前的版本中,爬虫不会从URL的指定目标路径开始,而是会重置URL以从主机根开始爬网。

在GitLab 14.0中,DAST_SPIDER_START_AT_HOST将更改新变量的默认值,false以更好地支持用户意图在指定的目标URL(而不是主机根URL)开始爬网和扫描。除了开始对指定的URL进行爬网外,如果指定的路径不包含指向整个站点的链接,则扫描的时间也将更少,也将带来额外的好处。这将使更轻松地扫描应用程序的较小部分,而不是每次扫描都对整个应用程序进行爬网。

删除了与Opsgenie的直接链接

变更日期:2021年1月22日

已经通过HTTP接口集成与Opsgenie和其他警报工具进行了更深入的集成,因此可以在GitLab界面中查看警报。新版本中版本中已经删除了警报列表中指向Opsgenie的先前链接。

升级更新

Omnibus版本升级

Omnibus安装的自建实例可直接使用Linux包管理器可以升级。例如对CentOS:

yum install gitlab-ce

就能自动完成升级:

GitLab 13.8发布,新增加管道编辑器和部署仪表盘等

docker安装的实例

先停止和删除旧的容器:

sudo docker stop gitlab
sudo docker rm gitlab

然后Pull官方最新镜像:

sudo docker pull gitlab/gitlab-ce:latest

重新启动容器(启动参数和以前保持一致)即可,比如:

sudo docker run --detach 
--hostname gitlab.example.com 
--publish 443:443 --publish 80:80 --publish 22:22 
--name gitlab 
--restart always 
--volume /srv/gitlab/config:/etc/gitlab 
--volume /srv/gitlab/logs:/var/log/gitlab 
--volume /srv/gitlab/data:/var/opt/gitlab 
gitlab/gitlab-ce:latest

Docker compose安装版本

通过:

docker-compose pull
docker-compose up -d
展开阅读全文

页面更新:2024-03-26

标签:管道   作业   节点   编辑器   注册表   分支   实例   仪表盘   状态   日期   版本   代码   功能   文件   测试   项目   用户   科技

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top