GitLab 13.0

2020-05-22 23:57:04

在13.0这个里程碑式的版本中,我们想花点时间来反思一下。自12.0发布以来,我们已经完成了很多工作!我们已经整理了一个博客来回顾GitLab 12.0到12.10。版本12中的三个最受欢迎的版本包括:需求管理、容器网络安全和父子管道。除了产品增强之外,我们还接受了合作伙伴关系/集成,增加了针对第三方安全扫描仪的集成指南,并扩展了我们的专业服务,以帮助您处理Jira和Jenkins迁移等问题。我们的新频道Learn@GitLab使您可以轻松找到许多新的使用方法视频,例如CI入门。

GitLab使IT和业务团队能够适应、响应和蓬勃发展。迭代是关键。要做到这一点,您必须快速协作、优化效率并自动执行流程以处理安全性和合规性,同时专注于提供业务价值。GitLab 13.0可以帮助您快速、深入地进行迭代。同时,访问Git存储库非常重要,我们已经增强了我们的Gitaly群集以实现高可用性Git存储,以确保在发生宕机时始终有多个热副本随时可供接管。

GitLab建立在有助于协作开发、报告、组织和管理工作的功能之上。版本控制是协作的基础,在13.0版本中,我们为代码片段添加了版本控制。为了管理更复杂的项目,13.0允许您查看路线图上的EPIC层次结构,查看您的EPIC如何与您的各种里程碑保持一致,并将单个或多个里程碑添加到您的版本中,同时在使用开放拦截器解决问题时发出警报,帮助您将注意力集中在关键路径项目上。

设计人员是开发团队的重要组成部分。在开发最受欢迎的新功能之一--黑暗主题web IDE的同时,我们学习了如何吸引设计师更紧密地合作。同时,我们将设计管理转移到核心,将设计产品的用户识别为个人贡献者。

随着许多企业努力提高响应速度和效率,GitLab帮助简化现有的软件开发流程。旨在提高效率的新功能包括简化到Amazon ECS的部署,以及新的整合警报列表,该列表提供了聚合来自多个来源的IT警报的单一界面。此外,Terraform用户也将欢欣鼓舞。GitLab 13.0允许您查看合并请求中的地形计划摘要,并将GitLab用作HTTP Terraform状态后端。

GitLab帮助企业在软件开发生命周期中采用端到端的安全和合规性控制,从而降低风险并释放资源以专注于业务关键需求。我们的应用安全测试功能可帮助您更早地发现和修复安全漏洞,因此,GitLab刚刚被评为2020 Gartner应用安全测试魔力象限中的利基参与者。自从Gartner评估12.4以来,我们增加了许多新功能。仅在13.0中,我们就添加了通过DAST扫描RESTAPI和完整提交历史记录扫描机密的功能,以便更好地进行检测。更重要的是,我们重新设计了处理漏洞对象的方式。这使得能够从安全仪表板导出漏洞,并将在未来释放更强大的漏洞管理功能。

除了安全扫描之外,GitLab还自动执行策略,并通过13.0提供更精细的控制,提供新功能,例如使用冻结期API设置部署冻结,以便在指定时间段内轻松防止意外的生产发布。为了简化审计,您现在可以过滤实例级审计事件的搜索,将其作为更大的EPIC的一部分。

通过多个功能标志增强功能(按状态过滤功能标志、基于功能标志的A/B测试以及根据合并请求创建功能标志的功能),更深入地迭代A/B测试和通过多个功能标志进行控制

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

想看看下个月发布的完整清单吗?我们的路线图是透明的,随时可供您贡献!

在13.0期间,Sashi在GitLab的几个领域做出了广泛的改进。Sashi的工作帮助改进了版本化的代码片段,删除了与Releases标签相关的错误,最大限度地减少了WebHook发送的重复事件。Sashi还通过确保每种包格式具有用于存储元数据的唯一模型来改进代码的组织和可读性。

GitLab现在支持不使用NFS的高可用性Git存储。高可用性(HA)配置通过消除单点故障、检测中断和自动切换到副本,提高了重要系统(如Git存储)的可用性。这意味着系统的单个组件可能会出现故障,而不会导致最终用户经历停机。访问Git存储库对开发人员和企业至关重要,因为当中断发生时,开发人员无法推送代码,部署也会受阻。

在内部,Git存储库存储由Gitaly处理,现在也由Praefect处理。Praefect是我们为Gitaly构建的一个新的路由器和事务管理器,用于协调领导者选举和异步复制。使用Gitaly群集时,对Git数据的请求通过多个Praefect节点之一路由到Gitaly节点。这意味着如果发生停机,始终有多个热复制副本随时可供接管。

在未来,我们计划支持强一致性,以便在以成功信号响应之前,在多个Gitaly节点上成功执行写入操作,并支持水平分布读取,以便更好地扩展CPU和内存资源。

到目前为止,还没有一种简单的方式可以部署到亚马逊网络服务上,因此,GitLab用户不得不花费大量时间来弄清楚自己的配置。

在GitLab 13.0中,Auto DevOps已扩展为支持部署到AWS!正在部署到AWS弹性容器服务(ECS)的GitLab用户现在可以利用Auto DevOps,即使他们没有使用Kubernetes。Auto DevOps通过开箱即用的完整交付渠道简化并加快交付和云部署。只需提交代码,GitLab就可以完成剩下的工作!随着复杂性的消除,团队可以专注于软件创建的创新方面!

要启用此工作流,用户需要定义AWS类型的环境变量:‘AWS_ACCESS_KEY_ID’、‘AWS_ACCOUNT_ID’和‘AWS_REGION’,并启用Auto DevOps。然后,您的ECS部署将自动为您构建一个完整的、自动的交付管道。

当利用多层次史诗时,可能很难跟踪每个儿童史诗在路线图上的位置。您现在可以在您的路线图上快速展开父级史诗,以查看其所有的子级史诗,以确保工作组织得当,并且您的计划时间表在正轨上!

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

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

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

对于花时间在代码编辑器中工作的人来说,能够自定义环境以匹配他们的偏好是很重要的。深色主题是一些最受其他编辑欢迎的主题,对于提供舒适的体验很重要。同样清楚的是,GitLab用户喜欢他们的黑暗主题,因为它是所有GitLab的黑暗应用主题,是GitLab问题跟踪器中第二受欢迎的请求。

对于选择Dark语法突出主题偏好的用户来说,GitLab Web IDE现在完全是以黑暗为主题的。这是提供用户喜爱的编辑体验的重要一步,也是理解GitLab UI如何响应黑暗主题的有价值的一步。您可以在此处阅读有关设计过程的更多信息。

我们很兴奋地宣布Vulnerability Management的第一个功能版本,即独立漏洞对象。在此版本中,我们实现了一个新的漏洞对象模型,启用了一组跨越漏洞管理整个生命周期的全新功能。

最大的好处之一是每个漏洞都有一个唯一的URL,这意味着漏洞可以作为单一的真相来源直接链接、共享、引用和跟踪。在此页上,您可以将漏洞的状态更改为已检测、已确认、已解除或已解决。另一个好处是,漏洞发生将持续存在于扫描程序运行过程中。以前,在同一分支上运行扫描会用新结果覆盖任何以前的发现。持续的漏洞将提高跟踪、可见性,并减少两次运行之间的重复查找。它还使未来能够在广泛的变量范围内报告随时间推移的组和项目漏洞趋势。

GitLab 13.0支持REST API的DAST扫描。这允许应用程序的全部Dast安全覆盖,而不仅仅是UI。通过支持使用OpenAPI规范作为需要扫描哪些URL和REST端点的指南,Dast有助于保护应用程序的整个攻击面,并提供对任何正在运行的应用程序的潜在漏洞的更多洞察力。

我们正在引入对.Net Framework的初始支持,这将允许开发人员在其他类型的.NET项目上启用SAST安全扫描。与我们的其他SAST作业一样,这将使用Linux GitLab运行程序。我们计划在未来的版本中扩展对GitLab Windows运行者的支持。自从在GitLab 11.0中引入以来,SAST for.NET只包含对.NET核心项目的支持。

如果您使用Terraform将您的基础设施定义为代码,那么您就知道必须在SLACK和MR注释中传递Terraform PLAN命令所产生的更改所带来的痛苦。在GitLab 13.0中,您现在可以在最有用的上下文中直接在合并请求中查看Terraform plan命令的摘要。这可以帮助您更快地验证基础架构更改,并为您提供一个在代码更改时与团队成员就基础架构的预期效果进行协作的场所。

GitLab提供的Terraform模板的用户无需额外配置即可看到Terraform Plan合并请求小部件。Terraform自定义CI/CD模板的用户可以更新其模板,以使用官方GitLab Terraform模板中的映像和脚本。

Terraform的用户知道设置他们的状态文件(您的配置到现实资源的映射,也跟踪其他元数据)的痛苦。该过程包括启动一个新的Terraform项目,并设置第三方后端来存储可靠、安全且不在您的git repo之外的状态文件。

许多用户想要一种更简单的方式来设置他们的状态文件存储,而不涉及额外的服务或设置。从GitLab 13.0开始,GitLab可以用作Terraform的HTTP后端,无需为每个新项目单独设置状态存储。

GitLab HTTP Terraform状态后端允许使用最少的配置提供无缝体验,并能够将状态文件存储在GitLab实例控制的位置。可以使用Terraform的HTTP后端访问它们,并利用GitLab进行身份验证。用户可以很容易地迁移到GitLab HTTP Terraform后端,同时也可以从本地终端访问它。

通常不鼓励在Git中存储大型二进制文件,因为添加的每个大型文件都会被此后克隆或获取更改的每个人下载。当使用缓慢或不可靠的互联网连接工作时,这即使不是完全阻塞,也是缓慢的。

在GitLab 13.0中,已为斑点大小筛选器启用了部分克隆,并在实验中为其他筛选器启用了部分克隆。这允许从克隆和回迁中排除麻烦的大文件。当Git遇到丢失的文件时,将按需下载。克隆项目时,使用--filter=blob:one或--filer=blob:Limit=1M完全或按文件大小排除blob。注意,部分克隆至少需要Git 2.22.0。

在GitLab 13.0中,您可以创建由变量提供支持的仪表板,使您能够使用单个仪表板来监控多个服务和组件,而不是为要监控的每个服务创建硬编码的仪表板。现在,您可以创建单个仪表板并使用变量更改在其中查看的数据,而不是多次重新创建类似的仪表板,这是一项耗时且重复的任务。

Puma现在是基于Omnibus和基于Helm的安装的默认Web应用程序服务器。与Unicorn相比,彪马将GitLab的内存占用减少了约40%,提高了GitLab的效率,并潜在地节省了自托管实例的成本。

已自定义Unicorn进程数量或使用较慢的NFS驱动器的安装可能需要调整默认Puma配置。有关更多详细信息,请参阅有关升级和GitLab图表改进的重要说明。

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

现在,您可以对实例级审计事件表中的单个对象(例如,用户、组或项目)执行过滤搜索,从而使此过程更加容易。此功能仅对自我管理的客户可用,但将作为更大的EPIC的一部分扩展到组和项目,以使实例、组和项目级审核事件体验统一且使用起来更加友好。

以前,将实例级默认分支保护设置向下转换到项目中是令人困惑的,因为在某些场景中,这会产生一种不直观的体验:开发人员无法将新的提交推送到他们可以创建的项目中。这使得组织很难在降低风险和允许所有开发人员全权访问项目之间取得平衡,因为解决办法需要将他们提升到Maintainer。

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

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

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

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

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

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

如果您试图关闭未解决的拦截器问题,我们会向您显示警告,从而消除了这一步骤。我们还提供阻止问题的链接,以便您可以验证您的问题是否可以安全关闭。

这一级别的增加的依赖关系警报有助于保持项目平稳运行,并确保可以维护问题的排序!

在史诗树中创建和添加问题和史诗过去常常被拆分到多个按钮和下拉菜单中,使用起来有点麻烦。我们将“添加”和“创建”操作合并到一个按钮和菜单中,以便更容易、更快速地添加新的问题和史诗!

在13.0中,设计讨论离GitLab中的评论体验又近了一步。我们添加了对表情符号的支持,这样您就可以以更有趣、更有想象力的方式传达您的反馈!😼。

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

在GitLab 13.0中,我们增加了一个实验比较模式,它将显示通过模拟合并计算出的差异-比使用两个牧场的合并基数更准确地表示变化。通过选择MASTER(HEAD),可以从比较目标下拉列表中访问新模式。将来它将取代当前的默认比较。

GitLab在查看代码时支持六种语法突出显示首选项。在GitLab上查看和编辑代码时,主题对开发人员很重要,因为它们必须全天舒适地工作。我们现在已经发布了对Web IDE中所有六个语法突出显示首选项的支持。这包括日光暗、日光、Monokai和无突出显示选项。

在过去的几个版本中(例如,12.8和12.9),我们一直在稳步添加和改进对Web IDE中语法突出显示首选项的支持。这些更新遵循这一努力,并有助于为我们在Web IDE中的黑暗主题奠定基础,该主题也将在13.0中发布。我们很高兴能继续扩展开发人员体验,让Web IDE更有家的感觉。

当一个设计上有很多讨论帖子时,如果不扫描正确的评论编号,就很难识别哪个帖子与设计上的哪个评论别针相关。

在13.0中,我们添加了一种机制,当您单击备注时,可以突出显示相关的设计讨论备注插针。我们还添加了相反的功能,您可以点击评论别针,让相关的评论滚动到视图中。当你有很多注释针时,这可以减少手动滚动和筛选噪音。

推送规则对可以和不能推送到您的存储库的内容提供了额外的控制。

..