毕业论文
您现在的位置: 版本控制 >> 版本控制资源 >> 正文 >> 正文

GitLab新版本154发布,支持AI

来源:版本控制 时间:2023/2/27

按照月度发布周期,上周Gitlab官方正式发布了15.4版本。该版本是GitLab的第一个机器学习驱动功能建议的审阅者公开测试版、VSCode中改进的CI/CD

集成、页面管道向导、已验证域的电子邮件验证绕过等。更多功能请和虫虫一起学习。

GitLab15.4版本主要改进

推荐的审阅者公开测试版(ULTIMATE)

确定合适的人来审查您的合并请求并不总是直截了当或显而易见的。选择错误的审阅人可能会导致延迟、低质量的审阅、来回重新分配审阅人,甚至根本没有审阅。

现在,GitLab可以通过建议的审阅者(SuggestedReviewers)推荐审阅人。使用合并请求中的更改和项目的贡献图,机器学习支持的建议会出现在合并请求侧边栏中的审阅者下拉列表中。

该功能目前处于测试阶段,位于功能标志后面。它将在下周向所有UltimateSaas用户将可以使用。

限制每个项目的最大自定义域数

可以使用GitLabPages为网站定义自定义域。但是,过多的自定义域可能会导致PagesAPI的响应时间变慢,影响服务的整体可靠性。现在,可以在实例级别限制每个项目的自定义域的最大数量,并根据需求取得适当的平衡。默认值为0(无限制)。

GitLabPages开始向导

为了让GitLabPages的入门变得更加容易,无需手动创建配置文件,而是使用GitLabUI以交互方式构建。只需回答有关如何构建应用程序的几个基本问题,将构建.gitlab-ci.yml文件以帮助入门。

这是Gilab第一次使用新的PipelineWizard,该工具可以通过在GitLabUI中构建文件来轻松创建.gitlab-ci.yml文件。

改进了VSCode中的CI/CD集成

当构建可能包含include:或extends:关键字的复杂GitLabCI配置时,确保配置有效并且生成的文件附和需求是一项挑战。使用GitLabWorkflowforVisualStudioCode直接在VSCode中预览合并的GitLabCI/CD配置文件。在提交和推送之前,可以在本地查看更改,并确保配置符合预期。

Markdown中可排序、可过滤的数据驱动表

在Markdown中处理表格可能有点麻烦。不仅难于计算出正确的管道数和空单元格数,而且当保存文档时,表格输出也是静态的。如果必须按第三列以升序对表格进行排序,那么最终会重写整个内容。

现在可以使用SON语法插入数据驱动表,如下所示:

以JSON格式编写或导出表。

将JSON包装在以三个反引号开头的代码块中,后跟json:table.

保存问题、提评论或发布页面。

在渲染表中,还可以启用:

使用对特定字段进行排序"sortable":true

使用动态过滤数据"filter":true

使用该功能当必须对行表重新排序时,只需单击一下即可。

将链接资源添加到事件问题(PREMIUM)

在快速处理事件时,协作和效率是关键。用户不想花费宝贵的时间为每个事件设置协作工具。

使用新版本,可以更轻松地显示事件Slack频道、Zoom会议空间或任何相关资源的链接以解决事件。

GitLabSaaSRunner支持更强的Linux机器类型(PREMIUM)

在GitLabSaaSLinux运行器上运行作业时,现在可以访问更强大的机器类型:中型和大型。使用这两种机器类型,可以为GitLabSaaSCI/CD作业提供更多选择。借助临时虚拟机上的%作业隔离,以及由GitLab完全管理的安全性和自动扩展,可以在GitLabSaaS上运行关键CI/CD作业。

用于获取组转移位置的API接口

新添加了一个新的GroupsAPI接口,该接口返回将当前组转移到的组列表。

将受让人添加到任务

任务代表完成一个问题所必需的离散工作单元。现在可以将任务分配给GitLabFree中的单个人或GitLabPremium或Ultimate中的多个人。分配的任务可以从个人问题仪表板访问,并且可以由受让人从项目的问题列表中过滤。

对设计的评论自动保存

当在设计上键入评论时,它现在会自动保存,如果在提交评论之前不小心导航离开,可以防止丢失进度。

按节奏手动创建、命名和安排迭代

在15.0中,弃用手动迭代管理。大量反馈,指出在某些情况下,自动迭代节奏管理不够灵活。

在15.4中,我重新引入了手动创建迭代的能力,并提供了改进的控制以管理节奏中的自动化设置。现在可以随时禁用或重新启用自动调度或更改持续时间和即将到来的迭代。

合并请求和批准设置的专用页面

合并请求和批准是GitLab中最常用和最有用的两个功能。不过,在以前的版本中,可能很难找到这些功能的项目设置。其在SettingsGeneral位置太不显眼。

现在,可以通过直接导航到SettingsMergerequests更轻松地找到合并请求和批准的项目设置。

GraphQLSchema支持DASTAPI和APIFuzzing(ULTIMATE)

从GitLab15.4开始,DASTAPI和APIFuzzing支持GraphQL模式来定义测试涵盖的内容。在以前的GitLab版本中,DASTAPI和APIFuzzing支持测试GraphQLAPI,但测试需要Postman集合或HAR文件来定义测试参数。通过支持已经成为API一部分的GraphQL模式,现在可以轻松测试GraphQLAPI,而无需单独定义。根据配置的测试类型,将DAST_API_GRAPHQL或FUZZAPI_GRAPHQL环境变量设置为指向GraphQL端点。对于启用了自省的应用程序,这会将测试配置为使用模式作为测试参数的定义运行。对于禁用自省的应用程序,还需要设置DAST_API_GRAPHQL_SCHEMA变量将测试指向模式文件。

在UI中显示部署批准注释(PREMIUM)

现在可以查看和跟踪用户在查看部署时留下的评论和批准,从而提供有关手动作业被批准或拒绝的原因的更多上下文。该功能对于需要审核发布事件的高度监管行业的组织也很有用。

使用Kubernetes代理部署Helm图表

新版本中可以使用Kubernetes代理将Helm图表部署到Kubernetes集群。到目前为止,Kubernetes的代理仅在其GitOps工作流程中支持原生Kubernetes清单文件。为了从GitOps工作流程中受益,Helm用户必须使用CI/CD作业来呈现和提交资源。

当前版本附带了对Helm的Alpha支持。由于Helm是一款成熟的产品,认为该解决方案是高性能的。

使用快速操作添加事件时间线事件

当用户正在努力解决事件时,每一秒都很重要。在此版本中,可以使用快速操作将一个或多个事件添加到事件时间线。

自动禁用失败的webhook

为了保护GitLab和整个系统的用户免受少数人的潜在滥用或误用,实施了一项功能来禁用持续失败的webhook。

返回该范围内的响应代码的Webhook5xx被理解为间歇性失败并被暂时禁用。这些webhook最初禁用10分钟,每次重试时会延长最多24小时。

因错误而失败的Webhook将4xx被永久禁用。

所有项目所有者和维护者都会在应用程序中收到警报,并且可以调查并重新启用任何失败的webhook。

将群组推送规则移至设置存储库(PREMIUM)

左侧边栏中组的预定义推送规则已被移动,现在将显示在下方SettingsRepository,这反映了项目中推送规则的位置。组维护者仍然可以访问此页面。

支持GoogleChat中的线程消息

对GoogleChat集成,与单个问题或合并请求相关的通知现在被组织一起。

API支持立即删除组(PREMIUM)

现在可以使用API立即删除各个子组。在此版本之前,只能从UI的组设置中删除单个子组。

通过主题合并改进了管理员的主题管理

管理员现在可以将源主题合并到目标主题中。此操作会删除源主题并将所有分配的项目移动到目标主题。这样,可以消除可能只是拼写不同的重复主题,并保持项目整洁。

安排何时从用户个人资料页面清除状态

现在可以使用个人资料页面中的状态设置来安排何时自动清除您的状态。以前,只能从设置状态模式执行此操作。

简化的登录页面

GitLab登录页面已经过重新设计,以降低视觉复杂性并使登录体验更加流畅。

面板:在发行卡上显示健康状态(ULTIMATE)

现在可以在看板中查看问题的健康状况。每张问题卡都会显示健康状况,让团队可以一目了然地了解团队工作的健康状况。

用于从项目中删除附件的GraphQLAPI接口(PREMIUM)

项目维护者和所有者现在可以通过GraphQLAPI删除项目中的附件。如果敏感数据意外上传到镜像中或用于管理GitLab实例的磁盘使用情况。

将面板上的卡片移动到列表的顶部或底部

当面板列表中有数十张卡片时,有时很难手动将问题从顶部拖到底部或从底部拖到顶部。已发行卡片和Epic版现在有一个操作菜单,其中包含将卡片移动到卡片当前列表顶部或底部的选项。

将关联的发布链接添加到单个标签页面

在此更新中,现在可以在查看特定标签的信息页面时看到相关的版本。这使可以轻松了解是否已基于该特定标签创建发布并导航到发布。

在环境页面上显示与已部署提交相关的标签

新版本中可以在Environments页面上轻松查看与部署相关的标签,特别是已部署的提交。这使可以更轻松地确定当前或以前已将哪些代码部署到环境中。

支持环境变量:auto_stop_in

新版本中可以在指定环境的生命周期时使用变量。这使可以更灵活和动态地管理临时环境以及何时停止它们。

改进了稳定的Terraform模板以避免破坏性更改

TerraformCI/CD模板为提供了一种将项目与Terraform集成的快速简便的方法。但是,对gl-terraform包装脚本的更改可能会导致对stableTerraform模板的破坏性更改。在此版本中,对包装脚本的更改显着降低了在主要版本之外发生更改的可能性。

从评论中添加时间线事件

事件时间表是事件记录的重要组成部分。事件时间表分解事件期间发生的事情,以及为解决事件而采取的步骤。有时,来自事件的评论是事件时间线中的重要事件。现在可以选择一个按钮将评论添加到事件时间线,而不是手动复制重要评论。

GitLabSlack新应用主页

AppHome为GitLab提供了一个中心位置,用于交流新的Slack功能并使熟悉现有功能。简化和整合GitLabSlack应用程序的斜杠命令和通知等功能。AppHome提供了一种在整个过程中直接互动的方式。确保GitLabSlack应用程序是最新的:

转到的聊天r设置。

在项目旁边,选择Slackapplication。

选择重新安装Slack应用程序或配置新的Slack集成。

想了解更多关于我们的计划并参与进来吗?访问我们的Slack史诗。

Shimo作为wiki替代品

Shimo是一种流行的云生产力套件,包括文档、电子表格、幻灯片和白板。通过这种集成,可直接在GitLab中使用ShimoWiki。

顶部栏中的统一导航元素

当前的顶部栏导航可能会因显示的选项数量而令人困惑和不知所措。为了提高可用性,首先,通过将菜单选项按逻辑分组来减少对菜单选项的混淆。其次,通过消除重复的导航项以及从按钮中删除“菜单”标签来消除不必要的噪音。最后,为了使全局搜索更易于访问,将搜索移至菜单图标旁边。这符合我们将搜索与导航联系起来并帮助用户回到其正在处理的事情上的目标。

Omnibus套件

GitLab15.4包括Mattermost7.2,具有频道的消息转发等等。此版本还包括安全更新,因此建议从旧版本升级。

GitLabRunner15.4

同期还发布了GitLabRunner15.4,包括:

新功能:

连续屏蔽超过4KiB的屏蔽变量

Bug修复:

在GitLab14.8上,注册跑步者因模板配置合并而失败。

GitlabRunner助手镜像不使用alpine3.15。

Runner管理区域列表的设计改进

Runner列表现在使用GitLab更新的列表设计标准。对于自建实例的GitLab管理员或组所有者,则现在可以看到关键的Runner数据。此外,新的界面元素应该有助于减少认知负担并使页面更易于浏览。图标不是文本,而是传达状态,并且标签有自己的列。

GitLab图表改进

GitLab15.4包括通过GitLabHelm图表配置和使用Kerberos身份验证的能力。

安全和合规性

经过验证的域上的用户可以绕过电子邮件验证

使用SAML或SCIM创建的属于已验证域的新GitLab用户不再收到GitLab帐户验证电子邮件。

这减少了帐户激活问题。通过配置过程生成的帐户已经过验证,因此用户无需手动单独验证它们。

使用徽章识别机器人用户

以前,很难直观地识别机器人用户。机器人用户现在在组和成员列表中拥有一个机器人徽章(Bot)。

使用API限制对组的访问(PREMIUM)

以前,IP地址限制只能在GitLabUI中配置。现在,可以使用API添加逗号分隔的IP地址或子网掩码列表。这样可以以代码方式配置P地址限制。

流式审核事件自定义验证令牌(ULTIMATE)

现在可以指定一个值作为流审计事件使用的验证令牌。

对于必须用于验证事件的值由第三方系统规定的情况,这是一个很大的改进。例如,如果将流式审计事件发送到第三方系统,并且该系统需要特定值,现在可以直接在GitLab中指定该值,而不必查看GitLab随机生成的值然后更新其他系统。

简化的SAST分析仪覆盖范围

更新GitLabSASTCI/CD模板,将用于JavaScript、TypeScript、React、Go、Python和Java的SAST分析器替换为基于Semgrep的扫描。

每种语言的基于Semgrep的扫描覆盖率使用GitLab管理的检测规则来检测各种安全问题。GitLab的静态分析和漏洞研究团队共同努力将规则从以前的分析器转换为Semgrep格式,保留大多数现有规则。这一变化是我们提供更一致的用户体验、更快的扫描时间和减少CI分钟使用量的长期战略的一部分。

创建API接口以更新受保护的环境(PREMIUM)

在新版本中,为受保护环境API添加了一个新接口,可让更新配置设置。可以使用端点来更改允许部署的人员以及需要多少批准。

在SAST中更快、更轻松的C#扫描

GitLab静态应用程序安全测试(SAST)现在提供基于Semgrep的C#代码扫描。与已过渡到基于Semgrep的扫描的其他语言一样,C#扫描覆盖率使用GitLab管理的检测规则来检测各种安全问题。

新的基于Semgrep的扫描运行速度明显快于基于安全代码扫描的现有分析器。它也不需要在扫描之前编译您的代码,因此使用起来更简单。

GitLab的静态分析和漏洞研究团队合作将规则转换为Semgrep格式,保留大多数现有规则。

如果使用GitLab管理的SAST模板(SAST.gitlab-ci.yml),现在只要找到C#代码,基于Semgrep和安全代码扫描的分析器就会运行。在GitLabUltimate中,安全仪表板结合了来自两个分析器的结果,因此不会看到重复的漏洞报告。

在未来的版本中,更改GitLab管理的SAST模板(SAST.gitlab-ci.yml)以仅运行基于Semgrep的C#代码分析器。基于安全代码扫描的分析器仍将扫描其他.NET语言的代码。

静态分析分析器更新

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

Kics分析器:更新了以添加其他规则、修复错误并更新到kics版本1.5.13。有关详细信息,请参阅变更日志。

NodeJSScan分析器:更新到0.3.3版。

安全代码扫描分析器:更新到版本5.6.5。有关详细信息,请参阅变更日志。

Semgrep分析器:更新到版本0..0:

现在可以--max-memory使用新的SAST_SCANNER_ALLOWED_CLI_OPTSCI/CD变量设置Semgrep标志。该变量接受一组有限的选项并将它们传递给底层扫描器。

秘密分析器:已更新:

修复了一个错误,该错误会导致在SECRET_DETECTION_HISTORIC_SCAN设置CI/CD变量时运行历史扫描,而不管变量的值如何。

添加了一条规则来检测泄露的GitLabPipelineTriggerTokens。

SpotBugs分析器:更新为对Gradle项目使用“组装”任务。

Bug修复

15.4中修复大量Bug:

管道WebHook间歇性地具有不正确的已完成事件(取消/成功);

将链接的管道视图从GitLabFree移动到GitLabCore;

修复内部服务器错误:bsearch使用远程包含时未定义的方法;

如果使用UI创建发布,则未收集Gitlab发布证据;

资源组超时;

在内容编辑器中创建新链接时,工具提示不显示URL或标题;

将内容编辑器的安装时间减少了9倍,以缩短初始加载时间;

当用户没有能力时删除创建项目提示;

使用自定义名称返回OpenIDConnect提供程序的配置;

跳转到下一个未解决的线程按钮应在用户滚动页面时跟踪位置;

/reassign在合并请求中使用时API缓存不会失效;

为项目加星标会导致Gitlab显示有关项目上次更新时间的错误信息;

名称较长的群组中的UI在移动设备上已损坏;

SASTMR小部件显示错误的结果;

从发现或漏洞创建的问题中的位置无效;

在线GC:清单删除时的锁定争用;

使用UBI图像时,GitLab页面无法在GitLabHelm图表中启动;

GitLabOmnibus包中默认未创建传入电子邮件机密文件;

修复VSA完成阶段图表的时间,从显示0值无数据;

Geo:禁用托管对象复制时,辅助节点上的LFS对象删除无效;

地理位置:从辅助到主的LFS重定向可能在会话中不起作用;

Geo:修复文件同步并发限制;

修复了某些分叉的MR上损坏的“运行管道”按钮;

全新安装gitlab时,漏洞管理选项卡为空;

ActiveRecord::RecordInvalid:验证失败:名称已被占用;

组名称未正确呈现在导出的组成员列表中;

未经授权的用户无法加载板;

板边栏链接应继承文本颜色;

CMD+K链接粘贴无法按预期工作;

在组中查看史诗时,按名称排序总是失败;

在设计笔记上实现自动保存机制;

活动源中的工作项引用指向错误的位置;

修复具有项目的子组成员的父组授权;

问题和MR创建页面上未对齐的降价标签;

FOSSmaster在spec/graphql/resolvers/group_issues_resolver_spec.rb中损坏;

spec/lib/gitlab/background_migration/rename_task_system_note_to_checklist_item_spec.rb中的坏主;

Epics路线图的周总是从星期日开始,即使一周的第一天是星期一;

手动创建的漏洞都共享一个共同的位置;

应用过滤器时,史诗列表页面上选项卡中的史诗数量不反映更新的数量;

秘密检测忽略功能分支中的SECRET_DETECTION_HISTORIC_SCAN;

由于行为不一致,在Spotbugs中删除了对基于Ant的项目的支持;

外部状态检查的序列化错误;

提高了子组和项目创建的消息传递清晰度;

板卡位置行中断不正确;

退出时未加载公共问题详细信息;

搜索工具不适用于以俄语创建的任务;

搜索包含非ascii字符的查询时出现问题;

PlantUML不解析ReSTRUCTURED文件;

禁用项目上的“autoclose_referenced_issues”后问题会自动关闭;

Rake任务gitlab:uploads:migrate迁移部分上传失败;

从自建实例中删除过时的wiki注释;

性能改进

在GitLab15.4中,在问题、项目、里程碑等提供了性能改进,包括:

Geo::MetricsUpdateWorker缓慢的总作业工件计数;

将ee/app/assets/stylesheets/pages/requirements.scss转换为特定于页面的包;

导航栏中的自动完成下拉菜单应该加载得更快;

内存看门狗应该重新启动高内存工作人员。

可用性改进

GitLab15.4中,在问题、项目、里程碑等提供了可用性改进:

顶部栏中的统一导航元素;

任何范围的令牌都可以使用自撤销API;

GPG密钥电子邮件页面的本地化;

将未解决的线程操作合并到一个控件中;

为并排布局打包重复设置UI更新;

未进行任何更改时,容器注册表清理策略表单中的保存更改按钮被禁用;

ContainerRegistry清理策略移至单个页面;

在URL中保留作业过滤器;

功能变更和删除

引用Docker的容器扫描变量;

未过期的访问令牌;

用于Kubernetes的GitLab代理的配置中的右舷指令;

在合并请求中切换草稿快速操作的行为;

漏洞置信度字段;

Saas上提供基于证书的Kubernetes集成,到年2月

如果GitLab15.0之前开始在GitLabSaas上使用基于证书的Kubernetes集成,则可以继续使用它直到15.6。将在15.8中删除支持。相关用户必须在年2月之前迁移到Kubernetes代理。

自建GitLab实例上提供基于证书的Kubernetes集成到17.0

当基于证书的Kubernetes集成被弃用时,用户需要在GitLab16.0中将其移除之前迁移到替代解决方案。支持将在17.0中删除。用户必须在年5月之前迁移到Kubernetes代理。在此期间,GitLab计划为代理提供一组更新的功能。

升级更新

Omnibus

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

yumupdata/installgitlab-ce

就能自动完成升级。

Docker

先停止和删除旧的容器:

sudodockerstopgitlab

sudodockerrmgitlab

然后Pull官方最新镜像:

sudodockerpullgitlab/gitlab-ce:latest

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

sudodockerrun--detach\

--hostnamegitlab.example.

转载请注明:http://www.0431gb208.com/sjslczl/3612.html