日前按照惯例,Gitlab官方发布了有一个新的月度版本GitLab14.2。该版本中引入了BuildCloudformacOSbeta、Markdown预览、扩展的Gitpod集成、全新的DevOps采纳指标等,更多功能请和虫虫一起学习。
功能介绍
GitLabBuildCloudmacOSbeta版本
GitLabSaaS上的Apple生态系统开发人员需要在自己的macOS系统上安装、管理和运行GitLabRunner来执行CI/CD工作流。
新版本中,可以在适用macOS的全新BuildCloud测试版上构建应用程序,这是一个由GitLabRunner驱动的构建平台,与GitLabSaaSCI/CD集成。
测试版最初仅限内测用户和开源社区计划成员。用该功能用户可以在任何本地Apple环境、MacStadium或AWS上安装macOSRunner。
从合并请求启动预配置的Gitpod工作区
GitLab13.5中引入的Gitpod集成可帮助用户管理复杂的开发环境。在代码中定义项目配置后,只需单击一下即可启动预构建的基于云的开发环境。这种便捷的工作流程使得生成新更改的速度比以往任何时候都快,但是启动Gitpod环境来审查现有合并请求意味着在切换到目标分支并再次构建之前,针对主分支构建一个环境。
在GitLab14.2中,可以直接从合并请求页面启动Gitpod预先配置为使用目标分支,以加快审查速度并减少上下文切换的需要。启用Gitpod集成,合并请求会显示一个分组的Openin按钮,这样就可以在WebIDE或Gitpod中打开合并请求。
编辑时实时预览Markdown
Markdown是一种快速且直观的语法,用于编写丰富的Web内容。可以轻松地从“预览”选项卡预览Markdown的渲染输出以确保标记的准确性。但是在原始源代码和预览之间移动所需的上下文切换可能会很乏味并且会破坏用户流程。
新版本中,在WebIDE和单文件编辑器中,Markdown文件都有一个新的实时预览选项可用。右键单击编辑器并选择预览Markdown或用于Command/Control+Shift+P切换Markdown内容的分屏实时预览。预览会在键入时刷新,因此可以确保标记有效并且按预期呈现。
在include语句中使用CI/CD变量.gitlab-ci.yml
现在可以将变量用作文件中include语句的一部分.gitlab-ci.yml。这些变量可以是实例、组或项目CI/CD变量。
此改进为提供了定义管道的更大灵活性。可以将同一个.gitlab-ci.yml文件复制到多个项目并使用变量来改变其行为。这允许减少.gitlab-ci.yml文件中的重复并减少对复杂的每个项目配置的需求。
无阶段管道
needs在管道配置中使用关键字有助于通过忽略阶段排序和运行作业而不等待其他人完成来缩短周期时间。之前,needs只能在不同阶段的作业之间使用。
在新版本中,删除了该限制,因此可以定义所需的needs任何作业之间的关系。现在可以通过needs在每个作业中包含隐式配置执行顺序来创建完整的CI/CD管道,而无需使用阶段。这使用户可以定义一个不太冗长的管道,它需要更少的时间来创建并且可以更快地运行。
新的GitLabKubernetes代理UI(PREMIUM)
GitLabKubernetes代理允许在GitLab和任何Kubernetes集群之间建立安全的双向连接。到目前为止,注册新的Kubernetes代理需要编写GraphQL查询。
从GitLab14.2开始,GitLab提供了一个用户友好的用户界面和一个注册表单,以帮助用户轻松开始使用Kubernetes代理。
从Jira问题创建GitLab分支
在用户Saas应用程序现在可以直接从JIRA问题的创建GitLab分支开发面板。这使开发人员能够开始处理问题,而无需切换工具和丢失上下文。
从顶级组导出成员资格CSV报告(PREMIUM)
现在可以支持在实例级别导出列出给定组中所有成员的报告。
该报告包含用户、电子邮件地址和权限级别等信息,所有这些信息都描述了有权访问该组的用户。通过该报告,可以快速了解组中的人员以及组和项目可以进行哪些类型的访问,从而使用户能够快速确定所需的更新。
组迁移与组导入/导出实现对等
新的GitLab迁移功能现在可以迁移整个组及其所有子组和相关数据。迁移的数据包括组导出中包含的所有内容,这使得迁移整个组变得更加简单。预先存在的组导入/导出是一个两步过程,需要导出文件,然后将其导入另一个GitLab实例。
现在,用户只需单击一下即可启动组迁移。迁移还包括所有子组及其数据,以前需要对每个子组进行单独的导出和导入过程。
隐藏被禁止用户创建的所有问题
在之前的版本中,添加了一个新的禁止用户状态。在新版本中,还隐藏了被禁止用户创建的所有问题。这可以解决恶意用户用垃圾邮件的问题。
查看历史CI管道分钟使用情况
在GitLab14.2之前UsageQuota页面上的CI管道分钟使用量仅显示当月的使用量。这些数据每个月都会重置,并且无法查看过去几个月的活动来分析历史使用情况。
现在有两个图表可以按月或按项目显示历史CI管道分钟使用情况。
在项目级价值流分析中查看每个阶段的项目数
现在可以更轻松地查看每个阶段的工作量。项目的价值流分析现在显示价值流每个阶段的工作流项目总数。
从问题板编辑问题标题
在问题板中编辑问题目前需要许多步骤,需要离开正在进行的工作流程。新版本中添加了一种简单的方法来在问题板中编辑问题的标题,而无需导航到另一个页面。要编辑标题,请在右侧边栏中选择问题,然后选择“编辑”。
更轻松地格式化维基页面
新的WYSIWYG编辑器使在wiki中编写Markdown变得比以往更容易。然而,工具栏在编辑器中的位置使得在较长页面上格式化文本变得乏味和重复。
在GitLab14.2中,最常用的格式选项(粗体、斜体、删除线和代码)显示在文本选择上方的浮动菜单中。通过限制格式化时必须移动光标的距离,可以更有效地工作,把更多的时间专注于的内容,而非上下滚动页面。
在新的wiki编辑器中上传和附加文件
GitLab14.1引入了将图像上传和插入到新的wiki内容编辑器中的功能。
在GitLab14.2,可以上传并附加.zip,.pdf,.txt以及其他二进制文件。使其更接近于与经典Wiki编辑器的功能,并为用户提供更多方式来协作处理Wiki页面中的丰富内容。
在管道页面中显示管道IID
管道IID给出了与触发它的项目相关的管道的内部ID,并且它会随着项目中每个新管道的增加而增加。管道IID的增量比管道ID慢得多,管道ID为整个GitLab实例中的每个管道递增1。这使得管道IID对于用例更有用,例如基于管道的版本控制项目发布、基于管道在项目中的运行顺序跟踪管道、项目管道指标等。
为了帮助改善使用管道IID的体验,在管道页面添加一个选项,将显示从ID更改为内部项目IID。现在,可以轻松查看哪个管道与正在使用的IID匹配。
deployment_tier在管道事件webhook中公开
在GitLab13.10中,引入了部署层的概念。在此版本中,添加deployment_tier了管道事件webhook,以便可以在自动化中使用它。
在UI中查看Terraform状态参数
GitLab管理的Terraform状态可以从GitLabCI/CD访问,无需任何特殊配置。要从本地机器访问相同的状态,必须使用多个参数初始化Terraform。
找到正确的参数可能是一个乏味且容易出错的过程,新版本中在Terraform状态列表页面上提供一个简单的用户界面,显示用于从命令行初始化Terraform状态访问的命令。可以从基础设施Terraform菜单访问该面板。
向升级策略中的特定用户发送电子邮件(PREMIUM)
在为警报创建升级策略时,除on-call用户之外,还向特定用户发送电子邮件很有用。在新版本中,为团队添加了定义要联系的用户的功能,即使该用户不是on-call轮岗人员。
地理验证复制的版本化片段(PREMIUM)
Geo自动验证复制的版本片段的数据完整性。这可确保片段在传输或静止时不会损坏。如果将Geo用作灾难恢复策略的一部分,则可以保护客户免受数据丢失的影响。
在下一次迭代中,一旦检测到验证不匹配,将实现自动修复。
Geo的验证功能一般在Geo的复制框架中实现,计划将验证引入所有其他复制数据类型。
注意:该功能最初是在GitLab13.11发布中错误地宣布的。它在功能标志后面可用,但默认情况下未启用。在GitLab14.2中,删除了功能标志并启用了版本化代码段验证。
Sidekiq的负载均衡默认开启
GitLab使用的作业调度程序Sidekiq创建了许多只读作业。当使用包含一个可读写主节点和一个或多个只读节点的数据库集群时,这些作业不必在主节点上执行。相反,它们可以受益于数据库负载平衡并在只读节点上执行。这可以减少了主数据库节点上的总体负载,并可以提高性能。
Sidekiq负载平衡是在GitLab14.1中引入的,并且在GitLab14.2中默认启用。
全局搜索结果页面的超时状态搜索提示
有时在GitLab中广泛搜索时,可能会发生超时。Gitlab添加了一个搜索超时页面,以在这些情况下帮助用户并利用更强大的搜索条件。
将发音添加到GitLab个人资料页面
现在可以将发音添加到用户配置文件中。在团队成员来自不同国家的分布式团队中,很难确定如何正确说出某人的名字。这将帮助其他人知道如何发音名字。
在用户的个人资料上显示当地时间
当地时间现在显示在用户配置文件上。在以前的版本中,可以设置时区,但它在整个GitLab中不可见。这种改进对于分布式团队非常有帮助,可以帮助其他人了解其他人何时可能有空。
查看项目的所有价值流分析指标
到目前为止,价值流管理中的项目和组级指标显示不同的数据集。
在新版本中,可以根据GitLab订阅在项目和组级别查看相同的指标。项目和组分析现在包括新问题、提交、部署、部署频率、提前期(高级和终极)和周期时间(高级和终极)。
立即删除计划延迟删除的项目(PREMIUM)
延迟项目删除通过将删除的项目置于只读状态来保护用户数据,以便用户可以恢复它们。到目前为止,GitLabSaas上已禁用延迟项目删除,因为无法在必要时立即删除项目。
在新版本中,添加了一个实例设置,以默认为所有新项目启用延迟删除。还可以立即永久删除计划延迟删除的项目,而无需全局禁用该设置。
在GitLabSaas上创建的新组和项目现在默认启用延迟项目删除,并且组所有者可以禁用它。
过滤Jira问题时显示选定的标签(PREMIUM)
用户现在可以查看过滤Jira问题列表的标签。该更改通过允许用户拥有他们正在查看的列表的完整上下文来提高可用性。
查看使用自定义集成设置的项目
在新版本中,使项目集成配置的管理变得更加容易。GitLab管理员现在可以查看未使用默认集成配置的项目列表。此功能可帮助管理员确保项目具有来自集成系统的正确数据。
在迷你管道图中显示链接的管道
管道迷你图向显示管道中每个阶段的状态,并为用户提供一种快速简便的导航到任何作业的方法。将多个管道迷你图链接在一起可为用户提供相关上游和下游管道的相同功能。
在新版本中,可以在GitLabUI的新区域中的迷你图中查看链接的上游和下游管道:管道选项卡、项目管道页面、提交页面和提交页面的管道选项卡。
在不共享源代码的情况下共享容器注册表
在配置项目时,可以控制问题或存储库等特定于功能的权限。例如,在公共项目中,仍然可以将存储库访问权限限制为仅限项目成员。
问题是,尽管控制多个功能,但对于容器注册表,只能打开和关闭该功能。这对于许多希望与存储库分开控制对容器注册表的访问的组织来说是有问题的。
新版本中可以通过将项目配置为定义容器注册表的访问级别来避免该问题,该访问级别独立于存储库的访问级别和其他功能。可以使用项目的API和用户界面执行此操作。
自动创建CI/CD隧道的配置文件(PREMIUM)
截止目前为止,GitLabKubernetes代理CI/CD隧道的用户必须kubeconfig手动将相应的配置文件添加到CI/CD作业。创建kubeconfig文件需要编辑CI/CD管道定义、代理ID的知识以及对kubeconfig结构的理解。它还在CI/CD管道定义中引入了样板代码。
GitLab现在注入一kubeconfig文件,其中包含给定项目的所有可用代理连接。用户只需选择使用权限kubecontext即可。
添加用于更新事件严重性的快速操作
现在可以通过/severity快速操作更新事件问题的严重性。例如,/severity3在事件问题中使用快速操作将严重性设置为3。这个方便的键盘快捷键使事件响应者能够快速更新事件并立即返回解决问题。
为代码搜索结果添加文件路径复制功能
用户通常希望搜索文件,然后在选择的编辑器中打开它们。在GitLab14.2中,在搜索结果的文件路径旁边添加了一个文件路径复制图标。用户可以单击该图标复制文件路径并将其粘贴到他们的编辑器中以打开文件。
GitLabHelmchart改进
GitLab14.2还包括对global.image的重新格式化global.image.x。这简化了不同的全局镜像命令。例如:
global.imagePullPolicy变成global.image.pullPolicy
global.imagePullSecrets变成global.image.pullSecrets.
这将在未来的迭代中继续改进。
GitlabRunner13.6
同期还发布了GitLabRunner14.2。新功能包括:
KubernetesPreStop生命周期钩子。
支持Kubernetes执行程序中的Windows构建pod。
在作业输出中,.gitlab-ci.yml在FF_SCRIPT_SECTIONS启用功能标志时为每个脚本行创建一个部分。
允许CI镜像选项覆盖基本镜像名称(VirtualBoxParallels)。
指定的Git版本升级到2.30.2。
错误修复:
无效的UTF-8会导致管道和作业页面上出现错误。
使用GIT_STRATEGY:fetch.
修复Ubuntu助手镜像构建以使用正确的平台(并非总是如此amd64)。
Omnibus的改进
GitLab14.2包括Mattermost5.37,其最新版本包括一个新的测试版功能,折叠回复线程。用户可能会遇到错误,并且记录了当前的已知问题。此外,v5.37包括对表情符号标准v13.0的支持。如果过去添加了使用新系统名称之一的自定义表情符号,那么它会被系统表情符号覆盖。解决方法是更改自定义表情符号名称。此外,事件协作的部分内容现在可用于所有Mattermost版本。作为此更新的一部分,事件协作将需要v5.37的最低服务器版本。
GitLab14.2支持两个新功能,可实现更安全的Patroni模式。这包括对PatroniAPI的TLS支持,允许用户使用TLS进行更安全的通信。
GitLab14.2还包括支持allowlist和allowlist_include_members和Patroni。这允许用户通过IP地址限制对PatroniRESTAPI的写访问,这是除了身份验证措施之外的进一步保护。
安全和合规性审计
跟踪依赖扫描和模糊测试的使用(ULTIMATE)
跟踪组织中的哪些组启用了依赖项扫描和模糊测试。之前只能通过API跟踪这些GitLab功能的使用情况。
新版本中,可以从UI中的DevOps采纳表比较各个组的采用率,并对表进行排序以轻松找到哪些组正在使用这些安全功能。
改进了GoSec、Semgrep和Brakeman分析器的漏洞跟踪(ULTIMATE)
在项目的生命周期过程中,代码会四处移动。重构、添加到代码库、删除,都会发生。目前的指纹识别过于粗糙,随着代码的移动,随着时间的推移会导致大量重复的发现。SAST和密码检测结果目前使用文件中的位置来声明它们在代码库中的存在位置。
新版本中使用了一种新的漏洞跟踪算法,可以查看漏洞的签名,而不仅仅是其位置。新的跟踪提高了识别由于代码重构而移动位置的相同漏洞的准确性。
这个新的漏洞跟踪系统被引入到了GoSec(Go)分析器、Semgrep(JavaScript、TypeScript、React和Python)和Brakeman(Ruby和RubyonRails)分析器。
未来的版本中,将继续将此新漏洞跟踪系统的覆盖范围扩展到其他语言分析器。
将合规框架标签添加到组级项目列表(PREMIUM)
合规性框架标签现在显示在组级项目列表中。这使可以一目了然地确定哪些项目应用了特定的合规性框架。
使用GraphQL为项目分配合规性框架(PREMIUM)
除GitLabUI之外,现在还可以使用GraphQLAPI为项目设置合规性框架。这使得一次对多个项目进行批量更新变得容易,并支持那些喜欢以编程方式创建和配置项目的人。
将访问令牌分组为Git凭据
具有Rails控制台访问权限的客户可以创建组访问令牌以在组级别执行操作,并使用单个令牌管理组中的项目。以前,将组访问令牌用于Git凭据会导致身份验证失败。在这个版本中,已经:
添加了对组访问令牌的支持,以通过HTTP使用Git进行身份验证,从而可以使用组令牌推送和拉取更改。
为方便起见,还提供了在Rails控制台中创建组访问令牌的说明。
SAST.NET分析器更新以支持VisualStudio项目
新版更新了.NET的静态应用程序安全测试(SAST),安全代码扫描,分析器迁移到了Alpine基础镜像,以保持一致性并提高稳定性、性能和安全性。如果之前脚本中使用了before_script与security-code-scan-sast任务,可能需要更新before_script,以解决任何不兼容的函数调用。
安全代码扫描更新到其最新的主要版本(v5)。增加了对使用VisualStudio构建的项目的支持,并且是对新的过程间污点分析引擎的重大升级。由于重大升级,选择加入此版本,未来版本将默认更新此版本。要开始使用此更新版本,请利用以下覆盖将安全代码扫描固定到新版本:SAST_ANALYZER_IMAGE_TAG:3。
GitLab的未来版本中,会将SecurityCodeScan的默认版本更新为这个新版本,届时将不再需要使用上述代码片段。
用于C的SemgrepSAST分析器(PREMIUM)
在GitLab13.12中,增加了Semgrep对Javascript、TypeScript和Python的支持。新版本中扩展了Semgrep分析器以支持C语言。经过数百名客户试用实验分析仪的广泛测试后,已准备好开始过渡到Semgrep。在14.2中,更新托管“SAST.gitlab-ci.yml”CI模板,以自动运行这个新的分析器以及现有的C/C++分析器Flawfinder.在未来的版本中,将会添加了对C++的支持,并会完全禁用Flawfinder,目前与Semgrep协同工作。已经完成了对结果进行重复数据删除的工作,因此不会注意到结果中的任何差异。如果使用官方“SAST.gitlab-ci.yml”模板,无需执行任何操作即可开始从Semgrep分析器中受益。但是,如果覆盖或管理自己的SASTCI配置,应该更新CI配置。
改进了安全与合规配置页面的可用性
GitLab在去年大大扩展了安全性和合规性功能。随着功能的增加,相关配置选项的数量也在增加。当前的“安全与合规性配置”页面已经超出了最初设计的范围,这使得找到正确的选项变得困难。
为了解决这个问题,Gitlab重新设计了安全与合规配置页面。新设计不仅提高了可用性,而且提供了一种灵活的模式,随着继续添加安全和合规性产品,该模式将扩展。
SASTGo分析器更新以支持Go1.16
新更新了静态应用程序安全测试(SAST)Go分析器GoSec,以支持Go1.16。该更新引入了对需要此版本Go的项目的支持。固定到以前的版本将阻止接收自动分析器更新,并要求在CI模板中手动增加分析器版本。
静态分析分析器更新
GitLab静态分析由一组许多安全分析器组成,GitLab静态分析团队积极管理、维护和更新这些分析器。14.2发布中分析器更包括:
GoSec升级到2.8.1-MR。
安全代码扫描更新到版本5.2.1-MR。
ESLint更新到版本7.32.0-MR。
Semgrep更新到版本0.60.0-MR。
对于使用GitLab管理的vendoredSAST模板(SAST.gitlab-ci.yml),无需做任何事情来获得这些更新。但是,如果覆盖官方模板或使用自定义自己的CI/CD模板,则需要更新CI/CD配置。
想要保留任何分析器的特定版本,现在可以固定到分析器的次要版本。固定到以前的版本将阻止接收自动分析器更新,并要求CI/CD模板中手动增加分析器版本。
隐藏应用程序机密
以前,Secret字段在应用程序配置页面的GitLabUI中可见。为了提高安全性,在UI中隐藏了此字段并添加了一个复制按钮。然后,可以复制机密并将其存储在安全位置。这可以确保任何人在看屏幕时都看不到明文中的秘密。
部署令牌与依赖代理一起使用
为了减少对外部依赖的依赖并减少构建时间,可以使用GitLab依赖代理缓存来自DockerHub的常用镜像。
现在可以在使GitLab依赖代理进行身份验证时使用部署令牌。以前,必须使用预定义的环境变量进行身份验证。此类变量与用户的权限相关,因此对于生产管道来说并不理想。部署令牌更易于管理以进行身份验证。使用部署令牌,用户不必担心将某人添加到的项目中。可以创建令牌、设置所需的范围,然后根据组织的政策轮换用户。
只需创建一个组部署令牌和用户名,并将范围设置为read_registry和write_registry。然后就可以登录到GitLab注册表与部署令牌username和password,并从docker中心代理和缓存容器的镜像。
性能改进
在GitLab14.2中,在问题、项目、里程碑等提供性能改进。GitLab14.2的一些改进是:
当share_with_group_lock一个组的改变时使用专门的工人。
不要root_ancestor在线性模式下使用递归。
慢速CI运行程序查询在/api/:version/runners.
不要覆盖数据库中缓存降价的较新版本。
预加载application_utilities缺少crossorigin属性。
一次查询多个组后代。
Bug修复
14.2中的一些值得注意的错误修复有:
批量关闭复选框不会出现在组漏洞报告中。
当位置名称太长时,管道安全选项卡的GraphQL漏洞列表布局损坏。
当尝试为意外分发提供补救时,容器扫描会出现“没有将nil隐式转换为字符串”错误。
容器扫描不支持公共Docker注册表。
代码质量MR小部件中不考虑报告比较的状态。
SSO流的登录重定向不会将用户重定向回最初预期的页面。
对于作为组的唯一所有者的用户,缺少删除用户和贡献操作。
发布到NPM包时出现错误请求错误。
启用SSO时,依赖代理不起作用。
无法发布大型NuGet包。
下拉过滤组不再在搜索中包含完整路径。
不再完全丢弃被截断的服务台电子邮件文本
项目板在卡片上显示完整路径。
单击问题板上的不同卡片时,标签下拉列表中的活动标签列表不会更新。
扩展子Epic时,Epic的权重会意外更新。
Epic创作的开始和截止日期设置不正确。
当在Epic板上的子组上时,侧边栏查询不包括完整路径。
重新排序列表在板上发送不正确的位置。
使用“return”在新Epic上应用标签创建没有标签的Epic。
处理板上问题创建的错误。
燃尽和燃尽指南缺失。
WebIDE无法打开包含管道字符的分支。
可以从另一个项目访问代码段。
删除按钮重定向到Slack应用程序中的。
按标签过滤在Jira问题列表中被破坏。
DataDog集成设置无法从Custom恢复为Default。
强制用户重新输入集成密码,而不是默默地清除它们。
文件更改后,差异注释可能仍不显示。
缓存MR差异时,无法通过单个文件编辑器编辑文件。
当讨论被缓存时,用户详细信息可能会过时。
在合并请求注释中引用issueable时,陈旧缓存会更改其状态。
当不显示空格更改时,重命名的文件在MR差异中无法正确识别。
尝试合并具有1个
转载请注明:http://www.0431gb208.com/sjszjzl/1955.html