GitLab 13.0 发布,包括设计面板、价值流、安全和合规性等功能

22日Gitlab官方发布了Gitlab今年的一个大版本Gitlab13,该版本提供了大量有意义的更新,包括Gitaly集群新架构、Web IDE深黑主题和高亮、免费的设计面板、价值流分析和安全方面的更新,请随虫虫一同学习。

GitLab 13.0 发布,包括设计面板、价值流、安全和合规性等功能

概述

GitLab 12.0的总结

在新的里程碑版本13.0发布之际,我们首先总结一下自12.0版发布以来,Gitlab已经取得的成就。版本12发行版中的三个收藏夹包括:需求管理,容器网络安全性和父子管道。除了产品增强功能之外,还接受了合作伙伴关系/集成,为第三方安全扫描程序添加了集成指南,并发展了专业服务来帮助您进行Jira和Jenkins迁移。Gitlab官方新频道Learn@ GitLab使可以轻松找到许多新的使用方法视频,例如。

迭代是弹性的关键

GitLab使IT和业务团队能够适应,响应和蓬勃发展。快速迭代是关键。为此,必须快速协作,优化效率并自动化流程以处理安全性和合规性,同时专注于交付业务价值。GitLab 13.0可以帮助快速迭代并获得更深入的了解。同时,访问Git存储库至关重要,Gitlab已经增强了Gitaly集群以实现高可用性Git存储,以确保在发生中断时始终有多个热备份可以接管。

快速协作并在整个团队中做出回应

GitLab建立在有助于协作开发,报告,组织和管理工作的功能之上。版本控制是协作的基础,从13.0开始,我们添加了。要管理更复杂的项目,13.0允许查看路线图上的Epic层次结构,查看Epic如何与各个里程碑保持一致,并向发行版中添加一个或多个里程碑,同时在使用开放式阻止程序解决问题时发出警报可帮助您专注于关键路径项目。

设计师是开发团队的重要组成部分。在开发最受欢迎的新功能之一(深色主题的Web IDE)时,使用了如何吸引设计人员进行更紧密的协作。同时,Gitlab免费了",是的个人贡献者将产品设计。

优化效率

随着许多企业努力提高响应速度和效率,GitLab有助于简化现有软件开发流程。旨在提高效率的新功能包括简化到Amazon ECS的部署以及新的合并警报列表,这些列表提供了一个界面,可汇总源自多个来源的IT警报。此外,Terraform用户也会很高兴。GitLab 13.0允许查看"terraform plan合并请求"中的摘要,并将GitLab用作HTTP Terraform状态后端。

信任流程,不牺牲安全性或合规性

GitLab帮助企业在软件开发生命周期中端到端地采用安全性和合规性控制,从而降低风险并释放资源以专注于关键业务需求。Gitlab应用程序安全测试功能可帮助用户及早发现并修复安全漏洞。

GitLab在2020年Gartner应用程序安全测试魔力象限中被评为Niche Player。自Gartner对12.4进行评估以来,Gitlab添加了许多新功能。在13.0中,Gitlab就添加了通过DAST扫描REST API的功能,以及对私密进行完整提交历史记录扫描的功能,从而可以进行更大的检测。更重要的是,重新设计了处理漏洞对象的方式。这使得能够从安全仪表板导出漏洞,并且将来将解锁许多更强大的漏洞管理功能。

除了安全扫描外,GitLab还可以自动执行策略,并在13.0版本中通过新功能提供更精细的控制,例如使用Freeze Period API设置部署冻结,以轻松防止在指定的时间段内意外释放产品。为了简化审核,现在可以将搜索过滤实例级别的审核事件,作为更大的Epic的一部分。

展望未来,即将发布的版本将提供更多的功能:

建立合规框架并自动采用相关的控制和报告;

迭代与更好地了解A/B测试通过几个功能标志增强和控制,过滤功能标志由状态,A/B测试基于特征标志,并且从合并请求创建功能标志能力;

通过直观地将Value Stream Analytics阶段描述为流程来识别瓶颈和浪费;

管理策略并让GitLab自动化使用,包括开箱即用的容器网络策略集;

在生态系统中工作以模糊测试应用程序API,并读取Vault CI变量;

GitLab 13.0主要功能改进

Gitaly Cluster高可用集群(PREMIUM及以上)

高可用性(HA)配置通过消除单点故障,检测故障并自动切换到副本来提高重要系统(如Git存储)的可用性。对开发人员和企业保证对Git存储库的正常访问至关重要。发生中断时,开发人员无法推送代码,自动部署无法执行。

GitLab 13.0 发布,包括设计面板、价值流、安全和合规性等功能

GitLab 13中不再使用NFS支持Gitlab的高可用,系统的单个组件可能会发生故障,而不会导致最终用户遇到中断。在新架构中Git存储库存储由Gitaly和 Praefect共同处理。Praefect是为Gitaly构建的新路由器和事务管理器,用于协调主节点选举和异步复制。在Gitaly群集中,对Git数据的请求通过Praefect路由调度到多个节点中的一个Gitaly节点。如果发生中断,有多个热备份可以接管。未来计划是保证集群的强一致性,以便在成功消息响应之前在多个Gitaly节点上成功执行写操作,并支持水平分布读取,新架构更好地实现CPU和内存资源的横向扩展。

自动部署到ECS

截止目为止,还没有一种简单的方法可以部署到Amazon Web Services。

在Gitlab 13.0中,Auto DevOps已扩展为支持部署到AWS。在新版本中,即使未使用Kubernetes,用户也可以使用Auto DevOps部署到AWS Elastic Container Service(ECS)。Auto DevOps具有开箱即用的完整交付管道,可简化并加速交付和云部署。只需提交代码,Gitlab即可完成其余工作。通过消除复杂性,团队可以专注于软件创建的创新方面。该工作流程通过下面方法启动:

用户自定义AWS类型的环境变量:

" AWS_ACCESS_KEY_ID"," AWS_ACCOUNT_ID"和" AWS_REGION"

并启用Auto DevOps。

然后,将通过自动的交付管道为自动构建ECS部署。

在路线图上查看Epic层次结构(ULTIMATE)

在利用多级Epic时,可能很难在路线图中跟踪每个子Epic。在新版本中可以在路线图上快速展开父级Epic,以查看其所有子级Epic,以确保工作被正确组织并按计划的时间表进行。

GitLab 13.0 发布,包括设计面板、价值流、安全和合规性等功能

版本化代码片段

代码片段对于共享不属于主项目代码库的少量代码和文本很有用。这些项目对于依赖执行其他任务的分组及用户很重要,例如脚本可帮助生成诊断输出或为测试和演示环境设置支持服务。然而,由于代码片段缺乏版本控制,因此很难知道其是否为最新版本,或者可能发生了哪些更改以及如何协调这些更改。

GitLab中的代码片段在新版本中交由Git存储库进行版本控制。编辑代码段时,每次更改都会自动创建一个提交。也支持克隆代码片段以在本地进行编辑,然后将其推送回代码片段存储库。

这是在代码片段上实现更多协作的第一步。在未来的版本中,将会引入对多文件的支持,继续扩展功能和扩展权限。

GitLab 13.0 发布,包括设计面板、价值流、安全和合规性等功能

改进的代码片段编辑器

伴随着GitLab 13.0中的版本化的代码片段的发布, Snippets的编辑器也被升级为Web IDE中的轻量级编辑器。使用此编辑器,用户将从基本代码补全和某些语言的lint中受益。同时还改进了源代码语言检测,以更好地高亮语法,并增加了对所有语法高亮主题的支持。这些改进将使在片段上进行编辑和协作变得更加容易。

现在代码片段和Web IDE中的编辑器统一一致。在将来的版本中,此功能也将扩展到单个文件编辑器和.gitlab-ci.yml编辑体验中。

GitLab 13.0 发布,包括设计面板、价值流、安全和合规性等功能

Web IDE中的深色主题

对于那些花时间在代码编辑器上工作的人来说,自定义环境以使其首选项匹配的能力很重要。黑暗主题是码农编辑者中最受欢迎的主题,对于提供舒适的体验很重要。GitLab用户也喜欢深色主题,因为所有GitLab的深色应用程序主题是GitLab问题跟踪器中第二受欢迎的要求。

对于选择Dark语法高亮主题提示的用户,GitLab Web IDE现在完全以Dark为主题。这是提供用户喜爱的编辑体验的重要步骤,也是理解GitLab UI如何响应深色主题的宝贵步骤。

GitLab 13.0 发布,包括设计面板、价值流、安全和合规性等功能

在合并请求中查看" terraform plan"的摘要

如果使用Terraform将基础结构定义为代码,在slack和MR注释中提交terraform plan命令的更改会非常麻烦。在GitLab 13.0中terraform plan可以直接在合并请求中在最有用的上下文中查看命令摘要。这可以帮助更快地验证基础结构的更改,并提供了与团队成员协作的地方,以便随着代码更改而对基础结构产生预期的影响。

GitLab 13.0 发布,包括设计面板、价值流、安全和合规性等功能

GitLab提供的Terraform模板的用户将看到terraform plan合并请求窗口小部件,而无需其他配置。用于Terraform的自定义CI/CD模板的用户可以更新其模板,以使用官方GitLab Terraform模板中的图像和脚本。

GitLab HTTP Terraform状态后端

Terraform的用户知道设置状态文件,配置到实际资源的映射,还可以跟踪其他元数据整个过程繁琐而痛苦。步骤包括启动一个新的Terraform项目,以及设置一个第三方后端来存储可靠,安全且不在git repo之外的状态文件。

许多用户希望使用一种更简单的方式来设置其状态文件存储,而无需涉及其他服务或设置。

从GitLab 13.0开始,GitLab可用作Terraform的HTTP后端,从而无需为每个新项目分别设置状态存储。

GitLab HTTP Terraform状态后端允许以最少的配置获得无缝的体验,并且能够将状态文件存储在GitLab实例控制的位置。可以使用Terraform的HTTP后端(使用GitLab进行身份验证)来访问它们。用户可以轻松迁移到GitLab HTTP Terraform后端,同时还可以从其本地终端访问它。

GitLab HTTP Terraform状态后端支持:

每个项目多个命名状态文件

锁定

对象存储

静态加密

它可用于GitLab自建实例或者GitLab线上仓库。

GitLab 13.0 发布,包括设计面板、价值流、安全和合规性等功能

使用部分克隆排除大文件

通常不建议在Git中存储大的二进制文件,因为每个添加的大文件都会被在以后克隆或pull中被下载。如果网速比较慢或网络连接不再靠谱,将会非常慢,非常影响效率。

在GitLab 13.0中,已为blob大小过滤器以及其他过滤器启用了Git部分克隆功能。这样就可以支持从克隆和提取中排除麻烦的大文件。当Git遇到丢失的文件时,将按需下载。克隆项目时,请使用--filter=blob:none或--filer=blob:limit=1m来完全排除blob或按文件大小排除blob块。

注意,部分克隆需要Git客户端为2.22.0及以上版本。关于部分克隆功能虫虫之前的文章中专门介绍过,大家可以参考学习。

使用变量驱动指标仪表板

在GitLab 13.0中,可以创建由变量驱动的仪表板,可以使用单个仪表板来监视多个服务和组件,而不是为要监视的每个服务创建硬编码的仪表板。可以创建一个仪表板并使用变量来更改在其中查看的数据,而无需创建类似的仪表板。

使用Puma减少GitLab的内存消耗

在新版本中,Puma是Omnibus和基于Helm安装的Gitlab默认的Web应用程序服务器。与Unicorn相比,Puma将GitLab的内存占用量减少了约40%,从而提高了GitLab的效率,并有可能节省自建实例的成本。

定制了Unicorn进程数或使用速度较慢的NFS驱动器的安装,可能必须调整默认的Puma配置。有关其他详细信息,请参见有关升级和GitLab图表改进的重要说明。

GitLab 13.0 发布,包括设计面板、价值流、安全和合规性等功能

实例级审核事件的筛选搜索

如果需要查找特定事件(用于审计报告或调查事件)时,这应该很容易。手动挖掘大型数据集不需要花很多时间。

在新版本中可以在实例级审核事件表中的单个对象(例如用户,组或项目)上执行过滤搜索,从而使此过程变得更加容易。此功能仅适用于自建实例的客户,但作为更大的Epic的一部分,它将扩展到组和项目,以使实例,组及项目级别的审核事件体验统一且易于使用。

GitLab 13.0 发布,包括设计面板、价值流、安全和合规性等功能

启用组级默认分支保护

此前,将实例级别的默认分支保护设置向下转换为项目是容易引起困惑,带来不直观的体验:开发人员无法将新的提交推送到他们可以创建的项目中。这使组织很难在减轻风险和允许所有开发人员按部就班地访问项目之间取得平衡。唯一的解决方法是需要将他们提升为维护者。

现在,可以在组级别设置默认分支保护,以为管理员和组所有者提供更好的灵活性。通过使用默认分支保护和默认项目创建设置的组合,组织可以找到自主权和控制权的正确组合,例如使用自定义默认分支保护,并且仅允许维护者创建新项目。这将允许开发人员将新提交(而不是强制推送或删除分支)推送到新项目,但允许维护者控制项目的创建。

对于需要更严格控制的组织,可以禁用默认分支保护的组级配置。通过禁用默认的分支保护的组级别设置,维护人员可以对开发人员的访问和权限应用更严格的控件。

价值流分析——任务类型(PREMIUM及以上)

这个功能强大的新图表使团队可以查看交付如何在不同类型的工作中分配。使用标签来查看交付了多少功能以及版本之间的错误,或者给定团队交付了多少项目而另一团队却交付了多少项目。通过反思通过价值流交付的工作的分布,团队可以调整流程以更好地与战略目标保持一致,或更好地平衡团队之间的资源。

GitLab 13.0 发布,包括设计面板、价值流、安全和合规性等功能

价值流分析——提前时间,周期时间指标(PREMIUM及以上)

这两个关键价值流指标为团队提供了一个基准,可以据此对流程改进工作进行衡量,以便他们可以更轻松地查看流程更改的影响。提前期度量了从请求的项目到交付之间所花费的时间。周期时间衡量开发周期本身的长度。通过优化整个价值流的流程,团队可以避免将问题从一个地方转移到另一个地方,从而加快了发货速度。

GitLab 13.0 发布,包括设计面板、价值流、安全和合规性等功能

在使用开放式阻止程序解决问题时引发警告(STARTER及以上)

在12.8中,Gitlab引入了在问题之间创建依赖关系的功能,其中一个问题可以阻止另一个相关问题。这意味着下游问题在之前的任务完成并关闭之前不应该关闭。这要求在关闭问题之前检查是否已阻止该问题。

必须在关闭问题之前检查问题是否被阻止,这是一个不必要且容易忘记的附加步骤。

如果要尝试通过未解决的阻止程序解决问题,则会向显示警告,从而消除了该步骤。Gitlab还提供了阻止问题的链接,因此可以验证问题是否可以安全关闭。

这种增加的依赖项警报级别有助于使项目保持平稳运行,并确保可以保持问题的顺序!

通过Epic树轻松添加Epic或问题(PREMIUM及以上)

在Epic树中创建和添加问题和Epic曾经被拆分为多个按钮和下拉菜单,并且使用起来有些麻烦。在新版本中已将"添加"和"创建"操作整合到一个按钮和菜单中,从而使添加新问题和Epic变得更加轻松快捷。

GitLab 13.0 发布,包括设计面板、价值流、安全和合规性等功能

在设计注释中使用表情符号以增强反馈

在13.0中,设计讨论距离GitLab中的评论经验更近了一步。新增加了表情符号支持,现在可以用更有趣和富有想象力的方式传达的反馈。

GitLab 13.0 发布,包括设计面板、价值流、安全和合规性等功能

合并请求的新比较模式

合并请求(尤其是"更改"选项卡)是查看和讨论源代码的地方。在目标分支已合并到合并请求的源分支的情况下,源分支和目标分支中的更改可以显示为混合在一起,这使得很难理解目标分支中正在添加哪些更改以及已经存在哪些更改。

在GitLab 13.0中,新添加了一个实验比较模式,该模式将显示通过模拟合并计算得出的差异-与使用两个分支的合并基础相比,该更改更准确地表示出来。通过选择master(HEAD),可以从比较目标下拉列表中使用新模式。将来它将替换当前的默认比较。

Web IDE的语法高亮主题

查看代码时,GitLab支持六个语法高亮首选项。在GitLab上查看和编辑代码时,主题对于开发人员非常重要,因为必须在一天中舒适地工作。现在,我们已经发布了对Web IDE中所有六个语法高亮首选项的支持。这包括Solarized Dark,Solarized ,Monokai和无高亮选项。

GitLab 13.0 发布,包括设计面板、价值流、安全和合规性等功能

在最近的几个发行版中(例如12.8和12.9),Gitlab一直在稳步添加和改进Web IDE中对语法高亮首选项的支持。这些更新是在此工作之后进行的,并有助于为也在13.0中启动的Web IDE中的"黑暗主题"奠定基础。

直观地突出显示设计注释图钉,以便可以关注讨论

当设计上有很多讨论线程时,如果不扫描正确的注释编号,可能很难确定哪个线程与设计中的哪个注释引脚相关。

在13.0中,新添加了一种机制,可以在单击注释时相关的设计讨论注释图钉。还添加了相反的内容,可以在其中单击注释图钉,并使相关事件注释滚动到视图中。当有很多注释图钉时,这可以减少手动滚动和筛选噪音。

GitLab 13.0 发布,包括设计面板、价值流、安全和合规性等功能

组级推送规则(STARTER及以上)

推送规则提供了对哪些内容可以推送和哪些内容不能推送到存储库的附加控制。它们使您可以创建符合组织策略的自定义操作标准。

此前,推送规则只能在实例或项目级别设置,从而迫使管理员要独立管理大量人员和项目。新的组级别推送规则将使组所有者可以在中央位置管理策略,同时仍为单个项目所有者提供灵活性。

在合并请求中提交导航按钮

轻松浏览大型合并请求中的提交,可使审阅者在按每次提交进行审阅的同时提高效率。

新的提交导航按钮使用户可以在当前提交与上一个或下一个提交之间无缝导航,从而更有效地查看带有大量更改的合并请求。

GitLab 13.0 发布,包括设计面板、价值流、安全和合规性等功能

通过GitLab API提供JUnit报告

JUnit报告可以包含大量信息,这些信息可用于更新测试计划,测试执行历史记录以及团队用来跟踪其代码质量的其他工件。由于只能从GitLab UI下载JUnit报告,因此更新这些工件可能是一个痛苦的手动过程。从GitLab 13.0开始,GitLab API的用户将能够直接访问JUnit报告。这将使用户能够解析JUnit数据以创建新问题或更新测试执行历史记录。

通过触发器作者和分支名称过滤管道(PREMIUM及以上)

现在,搜索由特定用户触发或在特定分支上运行的管道比以往任何时候都更加容易。通过管道页面上的新过滤器功能,现在可以按触发器作者和/或分支名称进行过滤。通过应用这些过滤器来优化管道视图将有助于及时了解最重要的管道活动。

设置为允许Deploy令牌读写GitLab软件包注册表

部署令牌使可以访问组的存储库,项目的存储库和容器注册表。从历史上看,该定义的范围read_repository,read_registry以及write_registry有没有授予访问GitLab包注册表。结果,DevOps团队使用了不安全或繁琐的基于用户的解决方法。

在GitLab 13.0中, GitLab部署令牌的更详细的权限。现在,可以为Package Registry设置读取或写入访问权限。还可以从GitLab应用程序中或使用API创建和管理部署令牌。

软件包版本现在嵌套在其父目录下(PREMIUM及以上)

GitLab软件包注册表已将软件包的每个新版本都视为一个新软件包。这使得很难找到要查找的软件包或了解版本之间的变化。

在GitLab 13.0中,每个版本的软件包现在都将嵌套在其唯一命名的父版本下。这样将更容易在UI中找到所需的程序包,并更好地了解各个版本之间发生了什么变化。此更改适用于Package Registry的组视图和项目级视图。此外,使用Packages API时,版本现在将作为父包内的数组返回。

GitLab 13.0 发布,包括设计面板、价值流、安全和合规性等功能

使用冻结期API实施部署冻结(ULTIMATE)

在这个里程碑中,GitLab引入了更多的环境控件。使用冻结期 API,无论是大型公司活动还是假日,都可以轻松地在自己指定的时间内防止意外的生产发布。现在,可以依靠通常不在GitLab范围内的策略的实施来减少自动化部署时的不确定性和风险。

更新发布在Web UI中的里程碑

manbetx客户端打不开的发布管理团队正在努力扩展发布页面以包括所有发布API的功能。

在13.0中可以更轻松地向发行版中添加一个或多个里程碑。使用该新增功能,不再需要手动调用Release API来利用计划功能,例如12.9中引入的Release Progress View。


GitLab 13.0 发布,包括设计面板、价值流、安全和合规性等功能

使用搜索快速查找和发现托管在GitLab容器注册表中的图像

当将镜像发布到GitLab容器注册表时,需要一种快速找到它并确保图像正确构建的方法。如果使用GitLab CI/CD在每个版本中发布镜像,则很难在当前用户界面中有效地找到镜像。必须依赖于命令行或API。

在13.0中,已经在GitLab容器注册表中添加了搜索功能。只需导航到项目或组的注册表,然后输入镜像名称即可查看所有镜像的列表。

在GitLab中查看有效负载和外部IT警报的注释

警报列表视图有助于从高层次分类问题,但是它没有为所有警报属性和有效负载提供足够的空间。新的警报详细信息页面专用于显示和组织警报有效负载和注释,以便响应者可以在调查期间快速找到关键信息。

在状态页面支持表情符号呈现(ULTIMATE)

GitLab问题在问题标题和所有Markdown字段中都支持表情符号。现在,当将Gitlab问题作为状态页发布到公共URL时,状态页现在支持并呈现问题标题,描述和注释中使用的表情符号。

切换指标仪表板可见性

以前,项目管理员无法控制查看项目指标仪表板的权限。作为GitLab 13.0的一部分,管理员现在可以将指标仪表板的可见性切换到项目成员或有权访问的每个人。

GitLab 13.0 发布,包括设计面板、价值流、安全和合规性等功能

将注释添加到指标仪表板

有时,指标图表可能很难理解。从GitLab 13.0开始,可以在指标图表中添加注释,这些注释以重叠在图形和图表上的水平虚线显示,以帮助您解释和理解数据。

GitLab 13.0 发布,包括设计面板、价值流、安全和合规性等功能

Geo辅助服务器会自动转发SSH请求以获取非同步存储库(PREMIUM及以上)

Gitlab Geo支持项目的选择性同步,这使系统管理员可以选择要复制到辅助Geo节点的数据子集。在尝试访问这些非同步存储库时,Geo已经支持将HTTP(s)请求重定向到主数据库。但是,尝试通过SSH访问辅助节点上未同步存储库的用户将收到一个错误,指出该存储库不可用。这使用户感到困惑,并迫使他们要么等待存储库同步,要么做额外的工作以连接到正确的存储库。

在GitLab 13.0中,任何通过SSH向未同步的辅助Geo节点发出的Git请求都将转发到主要节点。这将带来更加无缝的用户体验,因为用户不需要知道什么或没有复制到该节点Geo将通过HTTP(s)和SSH满足请求,而无需任何其他配置。

Geo管理员界面的改进(PREMIUM及以上)

随着GitLab的增长,Geo继续支持复制其他资源。反过来,这也会增加侧栏中显示的状态页面的数量。这种方法无法很好地扩展,并且使系统管理员很难找到他们需要的东西。

在GitLab 13.0中,将"项目","上载"和"设计"的子页面合并为一个视图,可通过单个侧边栏条目"复制"访问该视图。此更改将所有信息集中在一个位置,并帮助系统管理员访问单个项目的复制状态。此外,新版本中还对管理员界面进行了其他一些用户体验改进:

使选择性同步设置在索引页上可见;

将最新数据更新显示为健康状况的一部分,使其更加突出;

添加了空状态图和帮助文本以指导用户;

修改了地理区域设置的宽度,以符合我们的设计系统;

GitLab 13.0 发布,包括设计面板、价值流、安全和合规性等功能

Runner现在支持直接从对象存储下载工件

GitLab Runner 13.0现在支持直接从对象存储下载工件。启用此选项后,GitLab服务器将把Runner直接重定向到对象存储,而不是代理流量。这可以节省大量的网络传输成本,并减少GitLab服务器上的负载。

要启用FF_USE_DIRECT_DOWNLOAD,请true 通过环境变量将功能标记设置为。

添加了管理员模拟审核事件(PREMIUM及以上)

可审核性和可追溯性是组织合规计划的关键组成部分。以前,模仿另一个用户的管理员所采取的措施将被捕获在审核事件表中,就好像该模仿的用户正在采取这些措施一样。现在,审核事件将显示管理员模仿活动导致的特定操作。

审计事件的这一重要补充弥补了合规性计划不可否认的空白,并增加了GitLab审计事件数据的可靠性和全面性。

在UI中导出和导入组

以前,用户只能通过使用导入导出 API创建一个导出文件来迁移组,然后再次使用该API将文件上传到目标实例。

迈向更加流畅的解决方案的第一步,在GitLab UI中启用了组导出。计划在接下来的几周内向用户界面引入类似的导入功能。

查看路线图上的里程碑(PREMIUM及以上)

准确跟踪里程碑中的工作状态是帮助团队保持步调一致的必要条件。现在,在查看路线图时,可以查看史诗与各个里程碑的排列方式,从而帮助更好地了解工作何时落地,并确定项目是在预期之前还是之后。

GitLab 13.0 发布,包括设计面板、价值流、安全和合规性等功能

通过在Epic树中拖放将问题分配给其他Epic(ULTIMATE)

通常在组织或整理Epic时,需要将现有问题移到树中的另一Epic中。现在,可以通过拖放操作将问题移至其他Epic,而不必单击多个选项卡。

GitLab 13.0 发布,包括设计面板、价值流、安全和合规性等功能

设计管理转到免费版本

在12.2版中,Design Management首次以Design Uploads和Point of Interest Discussions作为GitLab Premium功能。从那时起,就将设计产品的用户视为单独的贡献者,在13.0中,Gitlab已将这两个功能移至GitLab Core。这与我们的"个人贡献者购买"模型保持一致,并且随着逐步达到类别成熟度,希望在将来增加其他出色的团队功能,例如批准。

因此,现在,所有用户都可以上传并参与有关GitLab问题的设计反馈。作为复习,会在任何问题的"讨论"选项卡旁边找到"设计"选项卡。尝试将屏幕快照拖放上载以开始使用。

GitLab 13.0 发布,包括设计面板、价值流、安全和合规性等功能

所见即所得的静态站点编辑器

Markdown是一种用于编写Web内容的强大而有效的语法,但是即使Markdown内容的资深作者也很难记住一些不常用的格式设置选项,或者甚至从头开始编写中等复杂的表。而富文本("所见即所得"WYSIWYG编辑器)可以更好地完成一些工作。

GitLab 13.0为静态站点编辑器引入了所见即所得的Markdown创作经验,其中包含用于常见格式设置选项的格式设置选项,例如标题,粗体,斜体,链接,列表,块引用和代码块。WYSIWYG编辑器还可以以与编辑电子表格相同的方式直观地编辑表格的行,列和单元格,从而消除了Markdown中繁琐的表格编辑工作。对于那些使用原始Markdown编写的更加舒适的内容,还有一个选项卡可用于在所见即所得和纯文本编辑模式之间进行切换。

GitLab 13.0 发布,包括设计面板、价值流、安全和合规性等功能

批准的合并请求过滤器(STARTER及以上)

合并请求批准要求特定的人批准更改,然后才能合并。搜索合并请求列表时,可以使用批准者过滤器快速找到需要批准的合并请求。在GitLab 13.0中,可以使用新的Approved-By过滤器查找先前批准的任何合并请求。

GitLab 13.0 发布,包括设计面板、价值流、安全和合规性等功能

在CODEOWNERS文件中支持父母/祖先组和用户

组可用于组织GitLab中的用户。这样就可以轻松共享项目,在注释中提及或将其分配为合并请求批准者,而无需一次选择一个。

可以将组和用户分配为代码所有者,但不能使用祖先组。这意味着将项目层次结构中的父组分配为代码所有者无效。

GitLab 13.0引入了将父或祖先组的用户和组包含在项目CODEOWNERS文件中的功能,从而在指定代码所有者的规则时提供了更大的灵活性。

从其他作业继承环境变量

现在可以在CI作业之间传递环境变量(或其他数据)。通过使用dependencies关键字(或needsDAG管道的关键字),如果作业源自dotenv报表工件,则该作业可以从其他作业继承变量。与工件或传递文件相比,这提供了一种更优雅的方法来更新作业之间的变量。

可配置的浏览器性能测试阈值(PREMIUM及以上)

浏览器性能测试使用户可以轻松地在合并到母版之前检测其Web应用程序中的性能下降。在许多情况下,这会引起额外的噪音,并不必要地使"合并请求"页面变得混乱,即使是很小的更改也是如此。在该里程碑中,现在可以设置一个可选的降级阈值,这是显示性能报告之前必须满足的要求。

在Package Registry列表用户界面视图中查看更健壮的数据(PREMIUM及以上)

在此版本之前,程序包注册表列表视图在UI中显示了与程序包相关的有限信息。尽管此信息很重要,但它缺少关键的元数据,例如版本,分支和提交。

在13.0中,更新了程序包注册表列表视图页面的设计,以包括其他元数据,以帮助找到所需的软件包并验证其是否正确构建。除了软件包名称,现在还可以查看版本,类型等。

GitLab 13.0 发布,包括设计面板、价值流、安全和合规性等功能

使用GitLab软件包注册表在一处查看所有Python软件包(PREMIUM及以上)

GitLab软件包注册表用户界面使您可以确认软件包已正确构建,并在出现问题时进行故障排除。但是,在12.10中启动的新PyPI信息库的MVC不包含此功能。

在13.0中,已将PyPI信息库添加到Package Registry UI。现在可以查看和下载项目或小组的PyPI软件包以及参考元数据,以验证该软件包是否正确构建。还可以快速复制设置和安装命令,以更有效地共享和编码。如果该软件包是使用GitLab管道构建的,则可以查看并将其链接到管道,以及用于发布该软件包的提交。

GitLab 13.0 发布,包括设计面板、价值流、安全和合规性等功能

功能标记列表的API支持(PREMIUM及以上)

作为对功能标记列表的支持的一部分,新添加了API支持以启用创建,编辑和删除它们的功能。这将使在不同系统之间自动管理和同步这些列表变得更加容易。

定义策略以确保绝不删除重要镜像(PREMIUM及以上)

使用GitLab的镜像过期策略时,没有"无论如何,请勿删除此标签"之类的内容。这样会使删除过程带来风险,因为有可能删除release或master镜像,它们应该是不变的。

在13.0中,可以更新项目的过期策略,以标识不想删除的镜像。只需启用该策略并使用正则表达式即可识别要保留的镜像。

GitLab 13.0 发布,包括设计面板、价值流、安全和合规性等功能

将Cloud Native Buildpacks用于Auto DevOps(测试版)

Cloud Native Buildpacks是构建包的下一个迭代。尽管GitLab当前默认为Herokuish构建包,打算在项目成熟时将Auto DevOps移至Cloud Native Buildpacks,以便为用户提供永不过时且维护良好的解决方案。在Gitlab 13,可以通过设置AUTO_DEVOPS_BUILD_IMAGE_CNB_ENABLEDCI变量选择在Auto DevOps管道中选择对Cloud Native Buildpacks(Beta)使用。

汇总来自GitLab中外部工具的IT警报

响应警报时,响应者需要一个界面来汇总源自多个来源的IT警报。新的警报列表可以快速直观地对警报进行分类,以帮助首先查找和分类最关键的问题。可以在"操作"»"警报"中访问警报列表。

将常用仪表板添加到收藏夹

在GitLab 13.0中,可以通过单击"星形"按钮将常用的仪表板添加到收藏夹中。为仪表板加星标会首先在仪表板搜索栏结果中显示它,以节省的时间。

GitLab 13.0 发布,包括设计面板、价值流、安全和合规性等功能

以全屏模式显示图表

在GitLab 13.0中,可以全屏模式显示指标图表,帮助在对事件进行分类时更详细地查看图表信息。

PostgreSQL 11为最低版本要求

所有自建实例安装的PostgreSQL最低版本要求是PostgreSQL 11。在GitLab 13.0中已删除了PostgreSQL 9.6和10的支持。此更新使Gitlab能够基于PostgreSQL 11中添加的分区功能开始引入性能改进。计划在GitLab 13.x系列发行的整个期间内支持PostgreSQL 11。对PostgreSQL 12的支持将在不久的将来添加。

改进了作业工件,上载和LFS文件的Geo复制性能(PREMIUM及以上)

为了确定需要从主数据库复制什么,Geo将跟踪数据库与只读辅助数据库进行比较。如果Geo的数据库查询超时,则无法成功复制数据。在GitLab 13.0中,使用一种新方法来同步Job Artifacts和Uploads,从而消除了数据库语句超时的可能性。当这些文件存储在本地时,还提高了数据库查询性能,以检索作业工件,LFS对象和上载,从而提高了GitLab Geo的总体可伸缩性和性能。

这些迭代更接近消除Geo对Foreign Data Wrappers的依赖,后者是为提高性能而添加的,但使Geo更加复杂且难以维护。

Omnibus的改进

新版本中最低的PostgreSQL版本是PostgreSQL 11。有关更多详细信息,请参见PostgreSQL 11公告。

在Redis 5中,术语slave更改为replica。在GitLab 13.0中,该更改是在Omnibus的Redis配置中进行的。请参阅有关升级的重要说明以获取更详细信息。

GitLab 13.0中引入Mattermost 5.22,它是开源的Slack替代产品。新版本包括团队切换快捷方式,从用户界面取消存档通道的功能,实验性的通道侧边栏功能等。还包括安全更新。如果Mattermost环境包含很多表情符号反应,请参阅有关升级的重要说明,以获取更多的升级时间的信息。

Omnibus GitLab中Ruby包依赖版本已更新至2.6.6。

GitLab Runner 13.0

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

ARM64 Docker镜像现已可用;

支持更多的glob模式用于工件/缓存,例如通配符模式;

使docker + machine自动缩放配置更具弹性。

GitLab Helm chart改进

Helm chart现在支持配置多个Redis实例。这样可以为不同的存储类型使用不同的Redis实例,可以供10000个用户参考体系结构使用。

新版本中,Puma是默认的Web应用程序服务器,并且可以选择仍然切换回使用Unicorn,Unicorn图表的名称已从更改unicorn为webservice。有关配置的详细信息,请参见Charts文档。

puma.rb和unicorn.rb文件的ConfigMap条目已删除,以支持环境变量的统一。请注意,如果以前unicorn.rb通过ConfigMap(通过Helm + Kustomize)修改过,则将受到此更改的影响。这样做是为了避免维护这些文件的两个副本。到目前为止,puma.rb和unicorn.rb文件在gitlab-webservice容器内是静态的,并被gitlab/unicorn chart中的ConfigMap项覆盖。

GitLab Helm chart使用的Ruby版本依赖也已更新为2.6.6。

安全和审计

未知登录的电子邮件通知

现在,当从新的IP地址或设备进行使用其密码的登录时,用户将收到一封电子邮件通知。这项新功能可帮助用户快速识别与其帐户相关的潜在恶意活动。

独立漏洞对象(ULTIMATE)

这是漏洞管理的第一个功能版本,即独立漏洞对象。在该版本中,实现了新的漏洞对象模型,从而实现了涵盖漏洞管理整个生命周期的全新功能。

最大的好处之一是,每个漏洞发生现在都将具有唯一的URL,这意味着可以将漏洞直接链接,共享,引用和跟踪为"单一来源"。在该页面上,可以将漏洞的状态更改为"已检测","已确认","已消除"或"已解决"。另一个好处是漏洞发生将在扫描程序运行期间持续存在。以前,在同一分支上运行扫描会用新结果覆盖以前的任何发现。持续存在的漏洞将改善跟踪,可见性,并减少两次运行之间的发现重复。它还使将来具有跨各种变量报告组和项目漏洞趋势的能力。

GitLab 13.0 发布,包括设计面板、价值流、安全和合规性等功能

REST API支持DAST扫描(ULTIMATE)

GitLab 13.0支持REST API的DAST扫描。这样就可以完全覆盖应用程序的DAST安全性,而不仅仅是UI。通过支持使用OpenAPI规范作为需要扫描哪些URL和REST端点的指南,DAST帮助保护应用程序的整个攻击面,并提供对任何正在运行的应用程序潜在漏洞的更深入了解。

.NET Framework的SAST(ULTIMATE)

新版中引入了对.Net Framework的初步支持,这将使开发人员能够对其他类型的.NET项目启用SAST安全扫描。像其他SAST作业一样,它使用Linux GitLab Runners。计划在将来的版本中扩展对GitLab Windows Runners的支持。从GitLab 11.0引入以来,.NET的SAST仅包含对.NET Core项目的支持:

支持语言 扫描工具 GitLab引入版本

.NET核心 密码扫描 11.0

.Net框架 密码扫描 13.0

GitLab 13.0 发布,包括设计面板、价值流、安全和合规性等功能


信息库完整历史的秘密检测(ULTIMATE)

GitLab 13.0更新了的隐秘检测安全扫描,以支持新的配置变量(SAST_GITLEAKS_HISTORIC_SCAN),以允许扫描存储库的完整历史记录。可以识别可能隐藏在较早的git commit历史记录中的历史隐秘(密码,凭据,token等)。自从GitLab 11.9中引入以来,Secret Detection扫描了合并请求中更改的提交历史记录。这将检测到新机密,但不会在存储库的旧git历史记录中识别机密

从实例和项目安全性仪表板导出漏洞列表(ULTIMATE)

在Gitlab 13中,实例安全性仪表板和项目安全性仪表板首次发布了可导出漏洞列表。尽管安全仪表板使用户可以在GitLab工作流程中管理漏洞,但要获取供外部使用的信息列表并不容易。

新版本中,可以下载CSV文件,其中包含针对给定项目或实例安全性仪表板上配置的所有项目的检测到的漏洞。然后,此导出列表可用于创建合规性报告之类的内容,或用作外部仪表板的数据源。只需转到实例"安全性仪表板"或任何项目的"安全性仪表板",然后单击右上角的新"导出"按钮,或转到顶部导航栏中"更多"菜单下的"安全性"选项,然后单击右上角的新"导出"按钮。浏览器将自动开始下载。

GitLab 13.0 发布,包括设计面板、价值流、安全和合规性等功能

Web应用程序防火墙(WAF)SIEM集成

新增加对Web应用程序防火墙(WAF)的新SIEM集成。集成允许用户将其WAF日志导出到SIEM或中央日志记录解决方案,以便可以查看其WAF检测到的任何异常。对日志的这种可见性还可以帮助用户测试和调整其WAF规则,以减少误报率。可以通过在"操作"->" Kubernetes"页面上启用Fluentd来配置SIEM集成。

容器网络策略SIEM集成(ULTIMATE)

新版本中,也新增加了对容器网络策略的新SIEM集成。集成使用户可以将其Cilium日志导出到SIEM或中央日志记录解决方案,以便他们可以查看其网络策略检测到的任何异常。对日志的这种可见性还可以帮助用户测试和调整其网络策略,以减少误报率。可以在"操作">" Kubernetes"页面上配置SIEM集成。

GitLab 13.0 发布,包括设计面板、价值流、安全和合规性等功能

状态页已匿名(ULTIMATE)

当事件响应团队共享事件更新和状态更改时,事件描述将公开发布,但是问题描述中的所有用户名和组名都将匿名化,以保护个人和团队的隐私。

查看DAST扫描的资源列表(ULTIMATE)

DAST从每个合并请求开始分析运行中的Web应用程序是否存在已知的运行时漏洞。DAST扫描许多资源,但是精确地知道以前不可能做到。

GitLab 13.0提供了DAST扫描的资源的完整列表。现在,您可以评估DAST扫描,以确保覆盖所有必需的应用程序表面。为了进一步简化分析,您可以直接从结果屏幕下载扫描列表。

有关漏洞数据库的实时信息(ULTIMATE)

了解GitLab扫描的内容对于确保安全很重要。在此版本中,引入了一个新页面 ,提供有关扫描仪使用的漏洞数据库的更多信息。

通过该页面,可以获取有关我们正在扫描的内容的信息,以及上次更新数据库时的信息,还可以查找关注的特定漏洞。

GitLab 13.0 发布,包括设计面板、价值流、安全和合规性等功能

Bug修复

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

让加密集成无法扩展,也不会就错误向用户提供任何反馈;

环境页面返回错误500;

添加任何验证错误的页面域导致500;

未来发布日期的文字在语法上的错误;

跳过的测试包含在成功百分比计算中;

用户看不到JUnit解析错误;

存在相同名称的分支时,可以再次删除标签;

只允许代码所有者合并;

修复由Runner创建的Docker卷的权限;

修复当disable_cache设置为true时删除构建卷;

修复来自卷管理器的错误检查;

修复带有重复斜杠的重复音量检查;

ActionView::Template::Error:undefined method `can?' for nil:NilClass

Scala GitLab CI模板不起作用;

可以将看板的权重设置为"无"或" 0";

修复组里程碑视图中的子组里程碑链接;

尝试将某些问题升级为Epic时修复错误;

修正某些GraphQL分页响应中的计数;

作为运行导入的用户,从Jira导入的创作问题;

使问题API和Web UI显示相同的结果;

当选择显示"打开Epic"时,路线图显示"关闭Epic";

范围限定为Blob的Search API不支持per_page;

Elasticsearch:Wiki在导入时未正确索引;

点击搜索结果不跟随链接;

Wiki搜索在禁用项目存储库的情况下不起作用;

索引器最终可能会因反复请求失败而感到恐慌。

性能改进

Gitlab将继续在提高每个版本性能方面的进展。致力于使GitLab的各个实例更快大大提高GitLab在线仓库(一个拥有超过100万用户的实例)的性能。

在GitLab 13.0中,在问题,项目,里程碑等方面提供了性能改进。一些改进包括:

管道原子处理性能改进的完整列表

使用NDJSON进行组和项目的导出和导入以提高内存使用率

使Redis中启用Elasticsearch的检查更加有效

加速NOT(!=)过滤器

将ThreadMemoryCache切换到ProcessMemoryCache

重新排序电子邮件处理程序以提高性能

功能弃用

删除过时的项目路径

删除日期:2020年6月22日

随着子组的引入,GitLab的URL路径结构变得更加复杂。我们一直在引入分隔符,/-/以提高项目中组,项目和页面之间的清晰度。例如, /gitlab-org/gitlab/issues变更为/gitlab-org/gitlab/-/issues。这些更改可提高性能,稳定性和简便性。

在将分隔符引入其他页面时,会自动将对旧路径的请求重定向到新路径。从GitLab 13.0起,将为自GitLab 12.0起具有分隔符的页面删除该重定向。

GitLab的常规使用不会受到此更改的影响。但是,一年前使用受影响的路径创建的书签或脚本将需要更新以使用新路径。

在Gitlab 14.0中要删除的GitLab Pages auth-server

删除日期:2021年5月22日

GitLab正在更改页面中某些配置选项的行为,以简化初始设置,同时帮助避免配置错误。如果使用Omnibus安装了GitLab,则无需采取任何措施。否则,需要设置gitlab-server参数并删除auth-server。

Prometheus取代InfluxDB进行自我监控

变化日期:2020年6月22日

从GitLab 13.0开始,不再建议使用InfluxDB,推荐使用Prometheus作为GitLab自我监视指标。请更新GitLab报告和可视化配置,以便使用PrometheusPrometheus默认安装在GitLab实例。

调用Sidekiq的默认方法是`sidekiq-cluster`

变化日期2020年5月22日

和12.10版本发布中所述,在GitLab 13.0中,删除了启动Sidekiq的替代方法,而支持Sidekiq Cluster。Sidekiq群集提供了用于管理Sidekiq队列和扩展的其他选项。

这样就可以为Core实例运行多个Sidekiq进程(以前的EE独有功能)。多个Sidekiq进程允许GitLab实例继续垂直扩展,并且通常是添加其他节点之前的第一步。

Gitlab 14.0开始不再支持直接调用Sidekiq。

Auto DevOps Auto Deploy设置值已删除

删除日期:2020年5月22日

由于多种API删除Kubernetes 1.16,默认值extensions/v1beta1对于deploymentApiVersion在AutoDevOps设置自动部署图已经过时。

在GitLab 13.0中,deploymentApiVersion设置更改为新的默认值apps/v1。如果使用的是Kubernetes 1.9及更低版本,则必须将Kubernetes集群升级为support apps/v1。

对于Auto DevOps,GitLab需要Kubernetes 1.12+。

Auto DevOps的默认PostgreSQL版本升级

变化日期:2020年5月22日

在GitLab 12.9中更新Auto DevOps以支持Kubernetes 1.16的一部分,增加了Auto DevOps的选择加入功能以使用PostgreSQL chart版本8.2.1。GitLab 12.10中的默认PostgreSQL chart版本为0.7.1。

GitLab 13.0将默认的PostgreSQL chart版本从0.7.1切换到8.2.1。要保留旧的默认版本,必须将AUTO_DEVOPS_POSTGRES_CHANNELCI变量显式设置 为1。要将现有的0.7.1 PostgreSQL数据库迁移到较新的基于8.2.1的数据库,请按照升级指南备份数据库,安装新版本的PostgreSQL并还原数据库。

从管理控制台中删除日志视图

变化日期:2020年5月22日

新版本中不再可以从GitLab管理控制台中查看日志。这些日志之前是直接从磁盘读取,以显示在管理界面中。但是对多节点设置中不起作用,显示部分信息会引起管理员的困惑。有权访问主机的管理员仍可以使用该日志。对于多节点系统,建议将日志提取到诸如Elasticsearch和Splunk之类的服务中。

安全CI模板中计划弃用的变量SAST_ANALYZER_IMAGE_PREFIX和DS_ANALYZER_IMAGE_PREFIX

变化日期:2020年6月22日

为了简化和简化GitLab安全工具的设置,新引入了一个全局变量SECURE_ANALYZERS_PREFIX,默认情况下它指向GitLab注册表。该变量替换了SAST和Dependency扫描中现已弃用的变量:SAST_ANALYZER_IMAGE_PREFIX和DS_ANALYZER_IMAGE_PREFIX。在以后的版本中,将不再支持这些不推荐使用的变量,因此请将所有用法迁移到SECURE_ANALYZERS_PREFIX。可以覆盖此变量,以轻松地一次影响所有安全扫描程序。这在使用自己的注册表映像的情况下很有用,这在离线和空白环境中很常见。

不推荐使用Docker-in-Docker(DinD)进行安全扫描

变化日期:2020年5月22日

为了提高安全性并降低扫描的复杂性,不建议在GitLab安全扫描器中使用Docker-in-Docker(DinD)。默认情况下,GitLab安全产品将在GitLab 13.0中的供应商模板中开始使用非DinD模式。鼓励客户更新其供应商的模板以使用此新行为。如果想继续使用DinD模式,请参阅启用Docker-in-Docker进行依赖性扫描。在将来的版本中,会完全删除DinD。请注意,我们已在很大程度上缓解了扫描仪检测逻辑中的细微变化。

Auto DevOps和安全配置模板用rule替代only/except

变化日期:2020年5月22日

在Auto DevOps和安全配置模板使用rules,不鼓励用only和except。rules参数提供了更详细,更具表现力的作业执行逻辑,该逻辑更易于评估和理解。

Auto DevOps安全的配置模板在使用only和except将过渡到rules。

在GitLab 13.0起。强烈鼓励工作模板的过渡,only/exceptand rules语法不能一起使用。

此更改将影响以下作业配置模板:

Build.gitlab-ci.yml

Test.gitlab-ci.yml

Deploy.gitlab-ci.yml

安全的.gitlab-ci.yml模版,包括:

Container-scanning.gitlab-ci.yml

DAST.gitlab-ci.yml

Dependency-Scanning.gitlab-ci.yml

License-Management.gitlab-ci.yml

License-Scanning.gitlab-ci.yml

SAST.gitlab-ci.yml

使用only和对Auto DevOps和安全配置模板的任何自定义except都应转换为语法。在某些情况下,现有only和except语法无法轻松地与匹配rules。

弃用SSH的`authorized_keys`文件

变化日期:2020年5月22日

从GitLab 13.0开始,SSH授权的文件bin/authorized_keys被弃用。由bin/gitlab-shell-authorized-keys-check文件代替,该文件通过快速查找进行授权。由于authorized_keys不检查请求用户是否与预期用户匹配是不可靠的方法,不再建议使用。

最终的移除计划在下个月GitLab 13.1中进行。

删除SSH的authorized_keys授权

变化日期:2021年5月22日

authorized_keys SSH的授权机制不可扩展,并且容易受到争用条件和乱序执行问题的影响。对于一台以上的计算机的大多数部署,它还需要一个共享的文件系统。为解决了这些问题,推荐授权机制。Gitlab计划使其从GitLab 14.0开始成为默认机制。

在努力使快速SSH查找成为GitLab中默认的Git+ SSH授权机制时,不建议使用authorized_keys机制,该机制目前是默认的。这种新机制立即可用,因此,GitLab用户或管理员都无需采取任何影响或采取任何行动。

在Gitlab 14.0中删除legacy存储

变化日期:2020年5月22日

GitLab当前支持两种类型的存储库:legacy存储和哈希存储。legacy存储使文件夹结构不可变,从而提高了性能和安全性。

自GitLab 10.0起已提供哈希存储,自GitLab 12.0起默认情况下已启用。GitLab.com已完全迁移到哈希存储。随着GitLab 13.0的使用,legacy存储不再使用,计划在14.0中完全删除旧存储。

在13.0中:

不建议使用legacy存储,强烈建议不要使用。

管理员将不再能够为新项目禁用哈希存储。

默认情况下,新项目和重命名的项目将使用哈希存储。

重命名或移动项目时,它们将自动迁移到哈希存储。

在13.2中:

升级到13.2后,仍在legacy存储中的所有项目都将通过后台迁移自动迁移。

一些新功能可能需要散列存储,而在使用legacy存储时将不可用。

在14.0中:

legacy储支持将从GitLab中完全删除。用户必须先迁移到哈希存储,再升级到14.0。

弃用Windows批处理命令cmd作为shell执行器

弃用日期:2020年5月22日

在GitLab 11.11中,宣布弃用Windows批处理执行程序Cmd Shell,以支持PowerShell,以支持GitLab Runner。在13.0中,不建议将Windows批处理执行器用于执行GitLab Runner。当注册了使用Windows执行程序(从GitLab Runner 12.0开始)的新Runner时,PowerShell是默认命令外壳。Cmd Shell仍包含在将来的GitLab Runner版本中。但是,将测试和支持任何新的Runner功能,仅适用于PowerShell。。

Omnibus将被移除以支持Pump

弃用日期:2021年5月22日

不推荐使用Unicorn支持,它将在GitLab 14.0中删除。

删除了`debug/jobs /list?v = 1`接口

变化日期:2020年5月22日

在GitLab Runner 13.0中,我们删除了/debug/jobs/list?v=1用于监视的接口被/debug/jobs/list?v=2接口取代。

在注册命令上删除--docker-services标志

变化日期:2020年5月22日

在GitLab Runner 12.7中,引入了config在Docker执行器中允许服务别名的功能。

Gitlab 13.0中,旧结构(--docker-services)已被删除。这样选项gitlab-runner register --docker-services postgres将无效,因为配置不再是字符串数组。

发布API已过时,不推荐使用Evidence API和Evidence文件路径

变化日期:2020年5月22日

现在,用户可以按需创建Release Evidence,GitLab支持多个Evidence对象,每个对象都公开summary_sha和filepath字段。可通过Releases API中已弃用的evidence_sha和evidence_file_path字段分别访问原始证据对象。

13.0的更新使继续使用Release Evidence并能够利用按需证据收集成为可能。

从gitlab.rb中删除了gitlab_monitor属性

删除日期:2020年5月22日


GitLab Monitor工具在12.3中被重命名为GitLab Exporter,以防止与其他与监视相关的功能混淆,并gitlab_exporter在中添加了键gitlab.rb。这些gitlab_monitor键在12.3中已被启用,在13.0中删除。

删除对Windows Server 1803的支持

删除日期:2020年5月22日

已在GitLab Runner 13.0发行版中删除了对Windows Server 1803版的支持。

Auto DevOps的postgres chart升级到7.7.3版

变化日期:2020年5月22日

由于Kubernetes 1.16不再为extensions/*和apps/beta* 接口上的资源提供服务,所有相关资源都将升级以使用新的apps/v1API端点。

在为Docker执行器定义服务时删除对字符串数组的支持

变化日期:2020年5月22日

在GitLab Runner 13.0中,我们已恢复使用默认的TOML解析,而不是UnmarshalTOML使用DockerService。

gitlab.rb中删除consul ['user']和repmgr ['user']属性

变化日期:2020年5月22日

在12.10中弃用consul['user']和repmgr['user']属性,该属性与其他允许配置用户名的GitLab服务保持一致。这些属性已在13.0中删除。如果仍在使用属性,需要切换到使用属性。consul['username'] 和repmgr['username']userusername

GitLab Pages的auth_server属性被删除

变化日期:2020年5月22日


auth_server在以前的版本中,不赞成在单独的服务器上运行GitLab Pages时用于配置访问控制的设置(带有下划线[_]),而支持该gitlab_server设置。进行此更改是因为GitLab Pages从GitLab获取的数据现在不仅限于身份验证。auth_server设置已在13.0中删除。

Redis 3不再支持

删除日期:2020年5月22日

Redis 3已到使用寿命,从GitLab 13.0开始不再支持。捆绑的Redis版本在GitLab 12.7和GitLab Cloud Native Chart 3.0中已更新为Redis 5。

删除Fedora 29软件包支持

删除日期:2020年5月22日

由于Fedora 29自2019年11月30日起终止服务,GitLab Runner 13.0版本中删除了对Fedora 29软件包的支持。

删除macOS 32位支持

删除日期:2020年5月22日

由于Go 1.14是最后一个在macOS(Darwin / 386端口)上支持32位二进制文​​件的Go版本,因此GitLab 13.0版本中删除了对32位macOS的支持。GitLab Runner将继续支持macOS 64位Darwin/AMD64端口。

不再支持PostgreSQL 9.6和10

变化日期:2020年5月22日

现在,所有自我管理安装的最低PostgreSQL版本是PostgreSQL11。PostgreSQL 9.6和10已从Omnibus软件包和Helm图表中获得。删除了对9.6和10的支持,使我们可以基于PostgreSQL 11中可用的最新功能和性能改进。有关更多详细信息,

删除GitLab代码片段的内容搜索

变化日期:2020年5月22日

随着Versioned Snippets的发布,不再可以通过UI和API进行搜索来获取Snippets中的文件。标题和描述内容可通过搜索和API访问。

删除`FF_USE_LEGACY_VOLUMES_MOUNTING_ORDER`功能标记

变化日期:2020年5月22日

在12.0中,为Docker执行程序引入了一个功能标志,使能够继续使用未将卷装载到服务的方法。在13.0中,此功能标志已被删除,卷将被安装到服务中。

NFS for Git存储库存储已被用

变化日期:2020年5月22日

随着GitLab 13.0中Gitaly Cluster的全面可用性,不再建议将NFS用于Git存储。GitLab打算在14.0中删除对Nit for Git存储库的支持。GitLab会尽早采取此行动,以清楚地传达意图,并避免客户购买不需要的昂贵NFS设备。

受保护的路径配置已从gitlab.rb中删除

变化日期:2020年5月22日

受保护的路径速率限制的配置设置已从中删除gitlab.rb。受保护路径的配置已移至GitLab 12.4中的GitLab管理界面。

删除旧版构建目录缓存

删除日期:2020年5月22日


在GitLab Runner 13.0中,删除了11.10中引入的旧版构建目录缓存功能标记。

发行API已被删除,证据证据和证据文件路径

变化日期:2020年5月22日

用户可以按需创建Release Evidence,GitLab支持多个Evidence对象,每个对象都公开summary_sha和filepath字段。原始证据对象可以作为多个证据对象的第一个实例进行访问。

13.0的更新使继续使用Release Evidence并能够利用按需证据收集成为可能。

删除Jenkins CI(不建议使用)服务

删除日期:2020年5月22日

在GitLab 8.3中,不赞成使用GitLab Hook插件进行Jenkins集成,而推荐使用GitLab插件。

删除向后移植的`os.Expand`

变化日期:2020年5月22日

在GitLab Runner 13.0中,os.Expand()从Go v1.10.8中删除了反向移植。需要此backport来包含Go v1.11中引入的行为更改。

升级更新

Omnibus安装版升级

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

对CentOS:

yum updata/install gitlab-ce

就能自动完成升级:

GitLab 13.0 发布,包括设计面板、价值流、安全和合规性等功能

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

有关升级到GitLab 13.0的重要说明

在升级到GitLab 13.0之前,需要先升级到12.10。有关升级的更多详细信息,请参阅升级到新的主要版本。

GitLab 13.0自动迁移所有代码片段,为每个代码段创建一个存储库,并根据代码段文件名和将文件提交到其中内容,该操作在后台迁移中完成,因此不需要停机。万一后台迁移无法迁移任何代码段,GitLab 13.0还引入rake任务来帮助手动迁移它们。

从GitLab 13.0开始,PostgreSQL 11是最低的版本要求。PostgreSQL 9.6和10已被删除,不再受到正式支持。升级PostgreSQL需要计划一些停机时间,因为在执行升级时必须关闭数据库。如果使用的是GitLab提供的PostgreSQL数据库,则在升级到GitLab 13.0时,数据库将自动升级,除非使用HA或Geo,在这种情况下,需要一些手动步骤。

在Gitlab 13.0中,Puma是GitLab的默认Web应用程序服务器。自定义Unicorn设置的用户将需要手动将这些设置迁移到Puma。使用Direct Git Access的其他安装(通常是NFS驱动器较慢的安装)可能要考虑运行Puma单线程。要了解有关切换到Puma的好处的更多信息,请参阅Puma发行说明。在GitLab 14.0中将删除对Unicorn的支持。

如果正在使用外部PostgreSQL数据库运行GitLab的自我管理实例,请注意,已暂时禁用在GitLab 12.9中添加的 PostgreSQL语句的默认超时。这是由于GitLab在线仓遇到问题。添加建议的实施更改后,将重新启用默认超时。

如果有一个自建GitLab实例并且使用Mattermos集成,请注意,在Mattermost数据库中进行了模式更改,以解决表情符号反应的性能问题。模式更改的结果是,如果Mattermost数据库包含很多表情符号反应,则升级时间可能会更长。有关建议的升级方法,请参阅Mattermost升级文档。

Redis配置在13.0中进行了更改,以用替换slave术语replica,并且Redis版本已更新为5.0.9。这些更改需要重新启动Redis。如果使用Redis HA,请按照Redis HA升级步骤进行升级,而无需停机。如果要在单个节点上运行Redis,则需要计划Redis重新启动时处于可访问状态。

展开阅读全文

页面更新:2024-04-14

标签:仪表板   软件包   警报   注释   分支   漏洞   实例   面板   状态   日期   版本   价值   代码   功能   文件   项目   用户   科技

1 2 3 4 5

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

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

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

Top