一如既往,Gitlab今天发布了有一个新版本13.10。本次发布的重点是对整个产品的可伸缩性和可管理性上,以方便用户可以更快地迭代和创新,并具有更高的安全性和更少的麻烦。13.10提供了管理方面的增强功能,可帮助组织中扩展DevOps,GEO包完整性验证以改善灾难恢复,漏洞管理自动化以将效率和一致性应用于安全流程等功能,更多请随虫虫一起学习。
概述
虽然DevOps的不断流行,如何管理DevOps成了挑战。GitLab13.10引入了一些新功能,可以自动执行日常任务,提高效率并在组织内发展DevOps,而又不会失去控制。GitLab新增加了API用于增强了对DORA指标的支持,以在项目级别跟踪更改的提前期(通过合并请求),并在组级别通过API跟踪了部署频率指标,因此可以在跨级别跟踪和识别阻止者项目组合。
对可能出现问题的问题,新添加了工具来帮助集成和管理来自多个监控解决方案和告警。13.10还通过自动验证已复制PackageRegistries和复制组Wiki的数据完整性,增强了使用GitLabGeo的客户的灾难恢复(DR)。
在13.10中,安全团队着重于减少管理和共享漏洞的开销。批量状态更新使安全团队可以同时修改多个漏洞的状态。为了帮助您快速识别和分类相关信息,我们在漏洞报告中引入了可点击的文件和行号链接,这些链接可将您直接与相关的漏洞详细信息进行深度链接。漏洞趋势图的交互性还做了增强,使查找和共享信息更加容易。
在GitLab13.10中发布的主要功能
从标签创建发布
之前版本已经支持新标签创建发行版。在GitLab13.10中,可以通过选择现有标签来创建发布,这将在计划发布时为提供更大的灵活性。
在.gitlab-ci.yml中定义环境类型
在GitLab13.10中,新引入了一个.gitlab-ci.yml环境type关键字,该关键字可以用来显式定义环境类型和名称。支持的环境类型可以是:production,staging,testing,development,或other。这是组级环境管理迈进的第一步,这是将职责分离以部署到生产环境的能力。这种新配置还将为用户提供传统使用的生产环境命名约定更大的灵活性,该约定用于在GitLab中确定不同的度量标准,例如Dora4度量标准和ValuestreamAnalytics。
将任何IT警报工具与GitLab集成(PREMIUM及以上)
警告集成是事件管理工作流程中的关键部分。管理工具之间的集成非常困难,尤其是当某些监视工具(例如Nagios,Solarwinds等)提醒服务时。
在新版本的GitLab中,可以为每个集成的监控工具创建具有唯一身份验证令牌的多个HTTP端点。为每个监视工具设置具有唯一身份验证令牌的HTTP端点时,团队可以单独管理每个工具,而不会影响其他工具的警报,也可以通过重置单个身份验证令牌来取消所有警报!
对于创建的每个HTTP接口,可以在GitLab用户界面中设置每个外部告警格式,并确保告警发出正确的位置和有关的数据。通过将其粘贴到GitLab中,为工具提交一个示例有效模版,将有效负载中的字段映射到GitLab告警属性,告警将显示一致的信息,无论其来源如何。
基于DORA4的变更提前期(ULTIMATE)
在GitLab13.9中,添加了对基于DORA4的DeploymentFrequency的支持。在此版本中,新增加了API,用于在项目级别进行更改(通过合并请求)的前置时间。更改的提前期可以指示代码提交和部署到生产环境所花费的时间。了解和跟踪这些数据是持续改进DevOps流程的一个很好的起点。
API模糊测试图形配置屏幕(ULTIMATE)
进行API模糊测试非常困难,其配置设置不好记忆,而且无法编码到管道中。为了简化操作,新引入了一个新的用户界面,以方便API模糊测试设。
可以在API模糊测试配置屏幕中输入所需的设置,而不用在管道文件中输入。完成后,该页面将为提供一个片段,可以将其复制到.gitlab-ci.yml文件中,甚至可以根据需要启动合并请求。这有助于指导将正确的配置添加到自己的管道中,从而比以前更快,更有效地开始进行API模糊测试。
在GitLab中查看Jira问题详细信息(PREMIUM及以上)
新版本中Jira问题列表功能的用户可以直接在GitLab内部查看问题的详细信息。该MVC使开发人员可以查看问题的详细信息,标签和评论,使他们能够在处理Jira问题时留在GitLab中。
这个更新的目标是使开发人员在一天的大部分时间内都可以停留GitLab中,无需去Jira才能了解到信息。
GitLab13.10中,如果启用功能标记,则此功能可用。在GitLab13.11中将默认启用此功能。
对JiraCloud应用程序的改进
现在,可以使用AtlassianMarketplace上的GitLabforJiraCloud应用程序,将的JiraCloud项目数据与GitLab同步。该插件在“Jira开发面板”中显示有关分支,提交,合并请求,部署和功能标志的信息。使用它可以查看正在进行的工作的当前状态,然后快速导航回到GitLab内部的那些页面。
对触发器作业使用“并行:矩阵”
可以使用parallel:matrix关键字来并行运行作业多次,为作业的每个实例使用不同的变量值。不幸的是,不能将其与触发器作业一起使用。在新版本中,还扩展了并行矩阵功能以支持触发器作业,因此您可以使用每个下游管道的不同变量值并行运行多个下游管道(子管道或多项目管道)。这使可以配置更快,更灵活的CI/CD管道。
组级API对部署频率的支持(ULTIMATE)
在以前版本中在项目级别添加了对“部署频率”的支持。新版本将API的支持扩展到了组级别。这使用户可以全面了解项目和团队之间的部署频率,从而可以更准确地评估其效率。
管理员模式:重新认证以进行GitLab管理
打不开现在包括管理员模式,它可以帮助管理员从一个帐户安全地工作。当“管理模式”未处于活动状态时,管理员具有与普通用户相同的特权。在运行管理命令之前,管理员用户必须重新验证其凭据。管理员模式通过保护敏感的操作和数据来提高实例安全性。此功能可在功能标志后面使用:user_mode_in_session。
价值流分析的水平导航(PREMIUM及以上)
组级别价值流分析中的垂直价值流阶段已由水平布局取代,以帮助可视化价值流各阶段的工作流程。此更改将在页面上创建更多空间,以便将来添加其他图形和指标。此外,现在,使用一种新的表单就可以更轻松地创建和编辑价值流,该表单允许在一个步骤中创建价值流和所有阶段。在表单中,可以添加预配置的阶段,或创建自定义阶段。
通过评论中的全名进行搜索和自动完成
GitLab用户使用其全名作为用户名并不常见。这使得很难找到要
提及的人,因为自动完成功能在匹配全名或用户名方面做得不好。作为使自动完成变得更智能的第一步,现在可以更轻松地根据用户名或全名搜索人员。API描述模板:问题和合并请求(PREMIUM及以上)
设置问题和合并请求的默认描述模板对于确保用户在创建这些项目时提供正确的内容非常有用。当有许多项目配置每个模板或在所有项目中更新它们时,该过程可能是手动的,容易出错且耗时的。
使用可用于项目API的新属性issues_template和merge_requests_template属性,可以针对所有项目自动设置并保持这些模板为最新。
在VisualStudioCode中克隆项目
使用VisualStudioCodeIDE(VSCode)时,可能需要在本地计算机上没有的代码存储库上工作。之前,克隆项目需要离开编辑器几个步骤:在GitLab中找到该项目,复制其克隆链接,将其克隆到本地计算机中,最后在VSCode中将其打开。
有了GitLabWorkflow扩展,现在可以使用Git:CloneVSCode中的命令来完成所有这些操作,而无需离开编辑器。使用此命令在GitLab中搜索项目并克隆它们,以便可以快速开始贡献。
合并请求标记为完成时通知参与者
准备好合并请求后,可以通过将其标记为完成并删除草稿状态来表示已准备好进行审核。但是,将合并请求标记为已准备好并没有通知其他参与者合并请求已准备好供其审核。
现在,将合并请求标记为就绪时,将向合并请求的参与者发送通知。
在列表视图中显示摘要中的文件数
GitLab13.5引入了创建包含多个文件的代码片段的功能。但是,无法在列表视图中标识这些多文件片段。需要打开每个代码段,以区分名称相似的代码段,或通过包含多少个关联文件来推断所包含的数据类型。
现在,每个摘录中包含的文件数将显示在列表视图中,因此可以在打开该信息之前对其进行访问。
嵌套变量扩展
有时,需要在.gitlab-ci.yml文件中定义一个变量,然后在另一个变量定义中使用它。我们正在引入新的嵌套变量扩展功能。启用后,GitLab会递归排序和扩展作业变量,然后再将最终输出发送到运行程序以执行作业。通过这种特定的排序,可以按正确解析的顺序将变量从GitLabCI/CD发送到运行程序。现在,可以轻松地在.gitlab-ci.yml文件中的其他变量内使用变量。
简化npm软件包的命名约定
在将npm软件包发布到项目的PackageRegistry时,之前必须使用命名软件包,
scope/package-name以便范围与项目的根工作区(包括案例)完全匹配。例如,如果项目路径为/Acme/project_a,则在发布软件包时,必须将其Acme作为作用域。由于公共npm注册表不允许范围内使用大写字母,会有问题。无法使用GitLab软件包注册表。未来,将不再为项目级端点强制执行此命名约定。
值得注意的是,使用实例级端点仍然需要使用名称空间的确切(区分大小写)。
将依赖代理与containerd和Docker20+一起使用
GitLab依赖项代理是一个本地代理,可以将其用于DockerHub中经常访问的上游映像。在CI/CD的情况下,依赖代理接收请求并从注册表中返回上游映像,用作Pull的高速缓存。这有助于减少CI分钟并提高可靠性。
但是,由于无法按摘要提取镜像,而作为摘要的不可变标识符可确保使用的是特定镜像和标签的确切版本。由于containerdDocker20+和Docker20+都依赖于摘要,因此许多人都无法使用DependencyProxy。
在新版本中可以按摘要从DockerHub提取容器映像。可以通过将URL添加到.gitlab-ci.yml文件,从命令行手动拉取图像或使用Dockerfile来使用依赖代理。
API模糊测试支持OpenAPIv3文件(ULTIMATE)
API模糊测试现在支持OpenAPIv3规范文件。这使可以直接使用项目已拥有的OpenAPI规范,而无需将其降级为OpenAPIv2。提供OpenAPIv3文件的方式与提供OpenAPIv2文件的方式相同,作为文件中FUZZAPI_OPENAPI变量的一部分.gitlab-ci.yml。
合并请求中可折叠环境的可折叠列表
合并请求(MR)是开发人员的唯一事实来源。MR包含开发人员需要的所有内容,以便进行代码更改,协作,完成代码审阅并将代码合并到目标分支。
为了提高可用性,在此版本中,如果的MR现在已部署到四个以上的部署中,则部署列表将被折叠。在拥有众多已部署环境而导致MR页面过长并要求上下滚动页面以查看所有内容的情况下,此功能特别有用。
将Kubernetes代理服务器配置为核心GitLab配置的一部分(PREMIUM及以上)
虽然GitLab管理员可以将KubernetesAgentServer与他们的GitLab实例一起安装,但截止目前,还缺少许多配置选项。在新版本中,GitLab管理员可以在核心GitLab配置文件(config/gitlab.yaml)中指定代理服务器的外部和内部URL以及它们的操作状态(启用或禁用)。GitLab将在与代理服务器的每次交互中使用这些配置值。
Geo支持复制组Wiki(PREMIUM及以上)
Geo现在支持对组Wiki复制点,从而允许分布式团队从最近的Geo站点访问,从而减少了延迟并改善了整体用户体验。此外,当故障转移到辅助站点时,也可以从辅助站点还原该数据。
Geo验证复制的软件包文件(PREMIUM及以上)
Geo会自动验证复制的PackageRegistries的数据完整性。这确保了软件包在传输或静止时不会损坏。如果将Geo用作灾难恢复策略的一部分,则可以保护客户免受数据丢失的影响。
Geo的验证功能通常在Geo的复制框架中实现,计划将文件验证应用于所有其他复制的数据类型,例如LFS文件或附件。
自动删除忙碌状态
设置状态是告知伙伴没功夫的好方法,但是当准备进行更多工作时,很容易忘记删除状态。新版本中可以指定一段时间来应用该状态。无论使用表情符号,状态文本还是“忙碌”指示器显示状态,都将在指定时间段结束时自动清除的状态。
在板上查看Epic(MVC)(PREMIUM及以上)
在GitLab中处理Epic,则很难可视化Epic的工作流程状态。通常情况下,起草或写Epic的时候,都需要使用标签(如Open,Doing或Done)来创建项目计划时密切