GitLab 13.12发布,安全性、可用性和管道管理加强

按照惯例,Gitlab本月度版本发出来GitLab 13.12,这是GitLab 13的最后一个版本,下个月将会推出本年度的大版本更新 14.0。本次版本中,请重点关注安全性、可用性和管道管理方面的改进,这些改进将努力使用户的团队更加高效,部署更加安全,并提供能使用户的DevOps应用更加成熟的见识。另外请详细阅读本文档中的功能变更和删除部分,在GitLab中将有大量的功能会发生变更,希望不会由此导致问题。

GitLab 13.12发布,安全性、可用性和管道管理加强

概述

GitLab 13.12中安全功能进一步加强。为了确保生产环境始终安全,所有GitLab 13.12 Ultimate客户都可以使用按需DAST扫描。通过这些按需扫描,可以在CI/CD管道之外的任何已配置环境中扫描已经部署的应用程序或API,即无需进行任何代码更改或合并请求即可开始扫描。

管道CI/CD成功的核心,为了使GitLab的新老用户更容易使用。管道编辑器现在将带有可折叠的指导说明面板,可帮助CI/CD用户轻松创建其第一个管道。

对无法解决无法衡量的问题。Gitlab继续原生支持DORA4指标。新版本推出组级别部署频率图表,该图表将帮助用户了解随着时间推移的部署效率,发现瓶颈,并专注于跨项目和团队的改进领域。

价值流分析可帮助用户识别效率低下的问题,并确定工作流程中这些低效的根本原因。

主要功能

管道编辑器中有用的GitLab CI/CD信息

创建第一个GitLab CI/CD管道可能很困难,尤其是对于那些不熟悉CI/CD的人。用户可能需要花费时间在文档和GitLab之间来回切换,以配置用户的第一个管道。在新版本中,管道编辑器中添加了一个包含有用信息的抽屉,以帮助指导用户完成编写第一个管道的步骤。

GitLab 13.12发布,安全性、可用性和管道管理加强

包含YAML CI/CD配置文件时支持通配符

includes:CI/CD管道的关键字使用户可以将一个长.gitlab-ci.yml文件分成多个较小的文件,以提高可读性。它还使在多个位置重用配置变得更加容易。通常,单个管道中包含多个文件,并且它们都可能存储在同一位置。在新版本中,增加了将*通配符和includes:关键字的支持。可以让includes:的部分更加动感,更简洁,更易于阅读。

GitLab 13.12发布,安全性、可用性和管道管理加强

在管道图中显示作业依赖性

完整的管道图以可视方式表示了CI/CD管道中的所有作业,并按阶段进行了分组。该可视化帮助用户跟踪作业的进度,并设定对作业执行顺序的期望。

Needs 关键字的引入使用户可以创建有向非循环图,该图可以使作业比仅按阶段配置的作业更早开始运行。但是,这在查看管道图时会产生歧义,因为很难说出用户期望作业以什么顺序运行。

在新版本中,当作业顺序反映了needs:作业之间的关系时,用户现在可以按作业依赖性查看管道。另外还添加了作业之间的链接,以确切地了解在开始特定作业之前需要完成哪些作业。使用该needs:关键字时,用户可以更轻松地跟踪和理解作业依赖性和预期的运行顺序。

测试报告中的测试屏幕截图失败

GitLab使团队可以轻松使用自动化工具(如Selenium)来设置端到端测试,该工具将失败测试的屏幕截图捕获为工件。除非用户必须整理大量的屏幕快照以查找调试失败的测试所需的特定屏幕快照,否则这非常有用。最终,用户可能会因沮丧而放弃,而只是在本地重新运行测试以尝试找出问题的根源,而不是浪费更多的时间。

新版本,用户可以从管道页面上的“单元测试”报告中的详细信息屏幕直接链接到捕获的屏幕截图。这使用户可以快速查看捕获的屏幕快照以及堆栈跟踪,以尽快确定失败的原因。

GitLab 13.12发布,安全性、可用性和管道管理加强

MR差异中的代码质量违规通知(ULTIMATE)

在代码审查期间,用户可能想要突出显示代码质量违规以及如何解决它们。之前,涉及到打开浏览器窗口以查看“合并请求”中违规情况,而通过另一个窗口查看MR或IDE中的更改。用户可能发现在它们之间切换太困难并且放弃。

现在,用户可以在“合并请求”差异视图中查看用当前文件是否存在新的代码质量情况,并将其作为更改的一部分。这为用户提供了必要的上下文,以在GitLab中作为常规工作流的一部分来建议修复程序,而无需保持其他窗口打开以及上下文在它们之间来回切换的情况。

GitLab 13.12发布,安全性、可用性和管道管理加强

组级别部署频率CI/CD图表(ULTIMATE)

作为我们在GitLab中本地支持DORA4指标的工作的一部分,新版本中可以使用组级别的部署频率图表。此图表将显示该组中所有项目的汇总部署频率指标,并允许用户全面了解多个项目和团队的部署频率,以便用户可以更准确地理解其效率。监视部署频率可以帮助用户了解随着时间推移的部署效率,发现瓶颈,并专注于跨项目和团队的改进领域。

GitLab 13.12发布,安全性、可用性和管道管理加强

向管理员用户表添加了组和项目总数

以前,很难知道用户属于多少个组和项目。注重合规性的组织希望知道哪些用户有权访问哪些系统或资源,这是其访问管理策略的一部分。这些信息可以用来查看用户的成员身份,以了解用户是否具有过多的访问权限,或者由于角色或职位的变化而可能拥有剩余的访问权限,或者可以帮助用户确定用户参与公司项目的范围。现在,更容易获得用于审核目的的用户成员资格的高级视图。

在针对可导出用户访问报告的迭代中,自建实例的管理面板添加了其他数据,显示用户所属的组和项目的总数。

GitLab 13.12发布,安全性、可用性和管道管理加强

改进Value Stream Analytics中的部署指标(PREMIUM)

改进了组级价值流分析中的“部署和部署频率”指标。这些度量标准现在仅考虑到分类为生产层的环境的部署,而不是所有部署。度量标准现在可以提供更多价值,因为通常将非生产环境的部署不相关。

此外,现在基于部署完成的时间(而不是创建时间)来计算这些指标。这样可以在给定的时间范围内提高数据的准确性。

GitLab 13.12发布,安全性、可用性和管道管理加强

查看和排序价值流中的阶段项目(PREMIUM)

以前,价值流分析只显示价值流中每个阶段的20个最新工作流项目。此更新增加了工作流项目的分页和排序。

新版本中,可以查看价值流中每个阶段的所有项目,并按阶段花费的时间进行排序,以更轻松地确定软件开发生命周期中的瓶颈。例如,如果代码更改花费了更长的时间才能合并,请在“代码”阶段对项目进行排序,以找出最慢的项目并调查可能的原因。

GitLab 13.12发布,安全性、可用性和管道管理加强

在价值流阶段查看工作流程项的数量(PREMIUM)

值流分析显示了工作流项目在值流中完成一个阶段所花费的中值时间,以及完成该阶段的项目的列表。此版本增加了项目计数,因此用户可以轻松查看完成该阶段的多少工作流程项目,并用于计算中位数。

GitLab 13.12发布,安全性、可用性和管道管理加强

管道编辑器中的管道状态小部件

以前,使用管道编辑器提交更改后,用户必须导航到其他页面才能知道管道的实时状态。

在新版本中,管道编辑器中添加了管道状态小部件,以便用户可以监视管道的状态而无需离开编辑器。

GitLab 13.12发布,安全性、可用性和管道管理加强

允许或阻止重复的通用软件包上传

可以使用GitLab软件包注册表来发布和下载项目的通用软件包。默认情况下,可以多次发布相同的软件包名称和版本。

但是,许多人表示要防止重复上传,尤其是对于发行版。GitLab 13.12扩展了Package Registry的组设置,以允许或禁止重复上传。

可以使用GitLab API或在应用程序中的“设置”>“软件包和注册表”中调整此设置。即将到来的里程碑将继续针对每种程序包管理器格式扩展此设置。

在后台迁移GitLab页面

为了在14.0中将GitLab页面移至新的ZIP存储体系结构,在13.11中引入了自动背景迁移。此后台迁移将现有站点转换为新的存储格式,并以非常慢的速度运行,以避免对实例性能产生明显的负面影响。在GitLab 13.12中,添加选项以更快的速度运行相同的迁移。用户也可以手动运行迁移,验证迁移结果,识别任何迁移错误并进行修复。

release:关键字支持资产链接

从GitLab 13.2开始,用户就可以将release:关键字与release-cli结合使用来创建发行版。该release:关键字现在已经扩展到包括资产环节的支持,使用户可以创建和发布在一个单一的文件附加到.gitlab-ci.yml解除作业。

GitLab 13.12发布,安全性、可用性和管道管理加强

拥有现有的GitLab托管应用程序的所有权

一键式GitLab托管应用程序已在GitLab 13.9中弃用,并将最终于6月22日从GitLab 14.0版中删除。请遵循文档以了解如何获得应用程序的所有权并继续正常使用它们。

删除通话中用户时对管理员告警(PREMIUM)

随时待命是一项至关重要的功能。当管理员从项目,组或GitLab实例中删除待命用户时,它将影响待命时间表。现在,在执行删除操作之前会警告管理员。

GitLab 13.12发布,安全性、可用性和管道管理加强

选择加入实例级别的同类群组联合学习(FLoC)

同类群组联合学习(FLoC)是一种新型的网络跟踪,旨在取代第三方Cookie的使用。它的目的是根据用户的浏览历史将用户分组,以基于兴趣的广告为主要目的。在某些地区的Chrome浏览器中正在激活FLoC。

在GitLab 13.12中,默认情况下,FLoC不会合并GitLab浏览活动。如果实例管理员希望其用户的GitLab实例使用有助于FLoC,则可以在实例设置中重新启用。

对所有子组强制执行延迟的项目删除(PREMIUM)

现在,组所有者可以为其组中的所有子组和项目启用并强制执行延迟的项目删除。延迟的项目删除可通过在删除后将已删除的项目置于只读状态来保护用户的数据,并且可以根据需要将其还原。GitLab计划扩展设置模型,并允许在将来的里程碑中继承和实施子组和项目中的更多设置。新的设置管理模型为组所有者提供了一种确保其子组和项目设置符合其组织的安全性和合规性需求的方法。

GitLab 13.12发布,安全性、可用性和管道管理加强

用户的组计数现在显示在管理区域中

新版本中,“管理”区域中的用户列表显示了给定用户有权访问的组总数。组计数是组和子组成员资格的总和。

这是非常有价值的,因为用户可以轻松查看用户拥有多少访问权限,并快速确定何时需要采取措施。例如,用户可以使用此信息来确保停用的帐户不再有权访问GitLab中的任何项目或组。

GitLab 13.12发布,安全性、可用性和管道管理加强

查看完成工作流程项目的平均时间(PREMIUM)

Value Stream Analytics中的“完成天数”图表先前显示了完成在特定日期完成的所有工作流项目所花费的天数。如果在同一天完成了异常多的项目,则图表将显示当天的大量项目,这并不是特别有意义。

现在,该图表显示了平均完成时间,突出了随时间变化的有意义的趋势。

GitLab 13.12发布,安全性、可用性和管道管理加强

时间跟踪报告问题和合并请求

项目成员可以通过/spend快速操作记录在问题或合并请求上花费的时间,但是要弄清楚每个人贡献了多少时间并不是一件容易的事。为了更好地查看项目和组中的时间报告,用户现在可以查看单个问题或合并请求中的时间报告。在花费时间解决问题后,请选择侧栏上的“时间跟踪”报告以查看该问题或合并请求的所有花费时间条目的列表。

GitLab 13.12发布,安全性、可用性和管道管理加强

锁定最新的管道工件以防止删除

现在,GitLab会自动在任何活动分支,合并请求或标签上自动锁定从成功管道中产生的最新工件,以防止它仍然是最新工件时根据过期被删除。

这使设置更激进的到期策略以清除较旧的工件变得更容易,有助于减少磁盘空间消耗,并确保始终从管道中获得最新工件的副本。

定义未明确管理管道工件(例如,测试覆盖率可视化功能所使用的工件).gitlab-ci.yml。

CI/CD管道工作流程:rules中支持变量

以前,rules关键字的范围受到限制,并且仅确定是否应将作业包括在管道中或从管道中排除。在13.8中,我们添加了使用variables关键字withrules来根据匹配的规则在作业中设置变量值的功能。在此版本中,我们将此功能扩展为workflow: rules,因此,如果满足某些条件,则可以为整个管道设置变量值。这可以帮助用户使管道更加灵活。

GitLab 13.12发布,安全性、可用性和管道管理加强

通过API删除关联的软件包文件

可以使用GitLab软件包注册表来发布,安装和共享用户的依赖项。用户可以使用各种程序包管理器格式(例如Maven或npm)来执行此操作。如果用户将此操作作为CI工作流程的一部分,则可以将许多软件包发布到注册表中。发布依赖项时,它会生成包括文件包在内的多个文件。

在GitLab 13.12之前,GitLab没有提供从软件包中删除文件的方法。用户只能删除包本身。这些额外的文件可能会使用户界面混乱,或者导致某些人安装了不正确或过时的依赖关系。

在GitLab 13.12中,用户现在可以使用Packages API删除与给定软件包以及软件包本身相关的文件。用户可以轻松地将此新端点集成到CI工作流程中,并开始删除旧的未使用的文件。为了给用户提供另一个管理注册表的选项,将来的发行版将提供通过用户界面删除此类文件的功能。

新的Gatsby CI页面模板

Gatsby的以前的Pages模板无法立即使用。使用预定义的模板后,用户需要手动修复管道。在新版本中,提供了一个新模板供用户使用,该模板在首次运行时会产生绿色的管道。

Elastic Stack集群集成

以前,要充分利用Gitlab Log Explorer,用户必须通过GitLab托管应用程序安装Elastic stack。这是有问题的,因为管理和操作Elastic Stack非常重要,而不是用户希望外包给GitLab的东西。

在此版本中,用户可以将现有的Elastic Stack与GitLab集成。在保持控制的同时,用户仍然可以利用GitLab Log Explorer提供的功能。

通过API创建事件

最有效的事件管理工具使用户能够从不同来源自动创建事件。要自动创建事件,用户可以通过API将专有系统与GitLab集成。GitLab 13.12将issue_type属性引入GitLab REST API,并将type字段引入GitLab GraphQL API。使用这些API创建问题时,可以通过将其设置issue_type为incident(REST API)或将其设置type为INCIDENT(GraphQL API)来创建事件。

Gitlab Runner 13.12

同期发布了GitLab Runner 13.12。新更新内容包括:

使用GitLab Runner Kubernetes执行器支持Git策略。

在保管库机密路径中传递变量名称。

Bug修复:

无法检测到PowerShell核心故障;

使用Bash脚本错误报告退出代码set -e。

GitLab Geo集群更新

Beta中对PostgreSQL高可用性的地理支持(PREMIUM)

Patroni是PostgreSQL高可用性的解决方案,它还允许在Geo辅助数据库上配置高可用性PostgreSQL备用群集。当将辅助节点用作灾难恢复策略的一部分时,此配置很重要,因为它使系统管理员可以镜像主节点和辅助节点上的数据库节点数。这意味着在故障转移之后,无需调配其他数据库节点即可重新获得高可用性。

新版本中,Geo为使用Patroni的高可用性PostgreSQL配置提供了beta级支持 。改进了对Patroni备用群集的升级,从主要服务器上的领导者变更中实现了自动恢复,解决了初始设置问题,并修复了许多错误。

Geo验证复制的Terraform状态文件(PREMIUM)

Geo会自动验证复制的Terraform状态文件的数据完整性。这确保了软件包在传输或静止时不会损坏。如果将Geo用作灾难恢复策略的一部分,则可以保护客户免受数据丢失的影响。

Geo使用自助服务框架复制LFS文件(PREMIUM)

尽管Geo已经复制了LFS文件,但移动此功能以使用Geo自助服务框架可以提高LFS文件复制的可维护性和性能。此更新将使我们能够删除大约200行代码,并在即将发布的版本中更轻松地添加对验证的支持。LFS文件复制和删除事件也将更快地触发(在某些情况下,这是一分钟)。

Geo支持以跟踪数据库的高可用性(ULTIMATE)

辅助站点使用单独的PostgreSQL数据库作为跟踪数据库,以跟踪复制状态并自动从潜在的复制问题中恢复。没有跟踪数据库,Geo无法将数据复制到另一个站点。Geo现在支持为跟踪数据库设置一个单独的,高度可用的PostgreSQL集群。当将辅助站点用作灾难恢复策略的一部分时,此配置非常重要,因为它确保即使运行跟踪数据库的单个PostgreSQL节点发生故障,复制也不会受到影响。

Omnibus改进

GitLab 13.12 中Mattermost版本升级到了 5.34,它是开源的Slack替代品,其最新版本包括新的CircleCI和Dice Roller插件等。

etc-backup备份本地GitLab配置的作业不遵守设置的轮换规则gitlab_rails['backup_keep_time']。因此,从未删除过旧备份。对于13.12,默认设置是如果未进行任何设置,则将文件保留在原位。对于14.0,etc-backup作业将遵循当前设置。只有修改此设置的管理员才能看到更改,因为默认设置是保留所有备份。

安全和合规性审计

按需发布DAST GA(ULTIMATE)

经过几个月的工作,按需DAST扫描已达到通用(GA)成熟度级别。任何需要扫描CI/CD管道作业之外已部署的应用程序或API的人都可以使用它。在13.11版本中,在按需DAST网站配置文件中添加了指定身份验证信息,排除URL,添加其他请求标头以及在扫描Web应用程序和API之间切换的功能。在13.9中添加的保存扫描以实现快速可重用性的功能以及在13.10中添加的选择与扫描关联的分支的功能的补充。该功能集可以满足大多数GitLab客户的需求。

随着继续添加诸如扫描计划之类的功能希望按需DAST扫描能够涵盖不断增长的用例范围。与往常一样,希望获得有关这些功能的尽可能多的反馈。

GitLab 13.12发布,安全性、可用性和管道管理加强

密码检测配置工具

遵循GitLab SAST配置工具的脚步,在“安全配置”页面上添加了对秘密检测的支持。我们相信安全是团队的努力,这种配置体验使非CI专家更容易上手GitLab Secret Detection。该工具可帮助用户创建合并请求以启用秘密检测扫描,同时利用最佳配置做法(使用GitLab托管SAST.gitlab-ci.yml模板)。如果.gitlab-ci.yml不存在该配置工具,则它可以创建一个新文件,或者可以更新现有的简单GitLab CI文件,从而允许该工具与已经安装了GitLab CI的项目一起使用。

GitLab 13.12发布,安全性、可用性和管道管理加强

移动应用程序二进制扫描支持

从GitLab 13.6开始, Android和iOS移动项目提供了SAST支持。最初, Mobile App SAST支持自动检测Xcode项目和Android清单文件。通过新发行版和社区贡献,GitLab SAST现在还支持自动检测.ipa(iOS)和.apk(Android)二进制文件,从而可以对完整的移动应用程序工件进行安全扫描。这为移动团队提供了更大的灵活性,使其可以使用GitLab SAST构建和扫描其移动项目以解决安全漏洞。

请注意,移动应用程序扫描仍是一项实验性功能,需要启用实验性标志在用户的CI模板中。

适用于JavaScript,TypeScript和Python的Semgrep SAST Analyzer

在GitLab 13.11中,发布了了Semgrep的实验版本,Semgrep是一种针对JavaScript,TypeScript和Python的新型SAST分析器。该过渡是与Semgrep背后的团队r2c合作开发的,r2c担负着帮助开发人员编写更安全的代码的使命。在数百名客户试用实验分析仪之后,我们进行了广泛的测试,之后,可以将正式过渡到Semgrep。

在13.12中,将更新托管SAST.gitlab-ci.ymlCI模板,以与现有的JavaScript和TypeScript分析器ESlint一起自动运行此新分析器。在将来的版本中,将完全禁用ESLint。目前已经完成了对结果进行重复数据删除的工作,因此用户不应注意到结果有任何差异。如果用户include了SAST.gitlab-ci.yml,那么用户无需做任何事情就可以开始从Semgrep分析器中受益,但是,如果用户覆盖或管理自己的SAST CI配置,则应该更新用户的CI配置。

删除部署密钥将通知用户是否正在使用

在新版本中,添加了附加的安全措施,对用户删除密钥之前正在使用部署密钥会发出告警。这将有助于防止意外中断工作流程。

GitLab 13.12发布,安全性、可用性和管道管理加强

按供应商名称过滤项目漏洞报告(ULTIMATE)

manbetx客户端打不开努力与其他人一起玩,安全也不例外。作为安全产品的一部分,GitLab提供了许多安全扫描程序。还鼓励第三方供应商使用开放API和数据交换格式集成其扫描工具。使用GitLab的好处是可以统一体验管理多个扫描仪中的漏洞。虽然用户已经能够按扫描仪类型(SAST,DAST)进行过滤,但是工具提供程序无法进行深入分析。

现在,通过使用按扫描程序和供应商进行筛选的新功能,用户可以在管理漏洞时获得更大的粒度。用户可以查看单个供应商扫描仪上的所有结果,也可以对GitLab和3rd party工具都确认过的一种扫描类型(例如SAST)的结果充满信心。现在,项目漏洞报告中提供了新的筛选功能。

GitLab 13.12发布,安全性、可用性和管道管理加强

公开测试版中基于DAST的新的基于浏览器的抓取工具(ULTIMATE)

从13.12开始,新发布了基于浏览器的新爬虫的beta版。由于处于测试阶段,在积极寻求DAST用户,通启用新的搜寻器并提供反馈。这个新的搜寻器经过专门设计,可以通过在一个JavaScript繁重的应用程序中查找更多页面(可能被传统的基于代理的搜寻器隐藏)来提供更好的应用程序测试覆盖率。随着网站和应用程序越来越多地使用JavaScript,已经看到需要专门针对满足JavaScript和单页应用程序需求的新一代工具。这是我这些现代应用程序提供更好的爬网和测试覆盖范围的第一步。

在基准测试中,基于浏览器的爬网程序显示出与当前基于代理的爬网程序相比,爬网覆盖率有了显着提高。

静态分析分析器更新

GitLab静态分析由一组许多安全分析器组成,GitLab静态分析团队积极管理,维护和更新。在13.12中发布了一些的分析仪更新,更新带来了更多的覆盖范围,错误修复和改进。

MobSF已更新至版本3.4.3;

nodejs-scan更新至版本0.2.6;

GitLeaks更新至版本7.5.0;

pmd-apex已更新至版本6.34.0;

Spotbug已更新至版本4.2.3。

如果用户包含GitLab托管的供应商SAST模板(SAST.gitlab-ci.yml),则无需执行任何操作即可接收这些更新。但是,如果用户覆盖或自定义自己的CI模板,则需要更新用户的CI配置。

过滤活动的部署令牌

在此里程碑之前,用于列出令牌的Deploy Tokens API端点将返回所有数据库存储的条目,包括已撤销和已过期的令牌,而无法过滤列表。新版本中添加了仅从REST API中过滤活动令牌的功能。

在管理界面中混淆Elasticsearch密码(PREMIUM)

通过Elasticsearch集成,GitLab管理员只能使用格式为URL的URL来配置受密码保护的Elasticsearch服务器:@:/。密码在GitLab管理界面中以纯文本显示。根据用户的反馈表明,这可能是潜在安全风险点。

在新版本中,Elasticsearch用户名和密码提供了单独的输入字段,并且对密码进行了混淆,用户将看不到纯文本中的字符。

GitLab 13.12发布,安全性、可用性和管道管理加强

Bug修复

13.12中一些值得注意的Bug修复有:

从13.6.2开始,使用空变量手动创建管道时,未将变量分配给管道。

将CI/CD属性的“作者”更改为“所有者”。

即使仍处于默认分支中,该漏洞也标记为“不再检测到”。

改善对的排序Merge ReportsService。

不论过滤器状态如何,漏洞严重性计数都显示为0。

安全中心项目选择器不会为Auditor用户返回任何结果。

无论在搜索结果页面上选择了哪个选项卡,始终显示范围选项卡。

Elastic search中没有对项目进行完全索引。

使用过滤器可以清除Devops Adoption表。

DevOps Adoption上的数据说明不正确,使数据看起来不正确。

DevOps Adoption应该仅适用于Ultimate层。

启动新项目时,无法访问管道编辑器。

当使用新的DAG依赖项的手动作业needs:正在等待其他when: manual作业成功时,管道不会成功。

由于UTF-8格式不正确,作业日志未显示。

使用带有Bash脚本的不正确报告的退出代码set -e。

使用分组环境时,部署板不出现。

Geo:Git clone/pull在HTTP(s)下无法工作的bug。

Geo:飞行前检查被存储库检查状态阻止。

Geo同步失败,并显示错误:“找不到object_type ='issuable_metric_image'的GitLab :: Geo Downloader处理程序”。

测试用例在API中被视为问题,无法区分它们。

将问题升级为Epic时出现间歇性错误。

分配小部件在CE中一次只能检查一个分配人的Bug。

无法在Boards视图中为具有相对URL的自建实例的GitLab设置分配人。

发行截止日期的更改无需用户输入。

Epic的“开始日期”和“到期日期”帮助工具提示出现在意外的位置。

修复了在问题视图上有关启发式匹配器的控制台警告。

~"non-confidential"通过快速操作添加或删除标签会错误地在视觉上将问题显示为机密。

移动视图不显示问题已被移动。

保存时,问题描述将恢复为较旧的版本,而不会提示冲突。

markdown单元格中的镜像不在Jupyter Notebook中显示的bug。

在wiki控制器中的ActionController::RespondToMismatchError错误信息。

如果下游管道(策略:依赖)中的作业失败然后通过,则上游管道无法继续进行下一阶段。

使用错误的OAuth范围修复Jira DVCS连接。

性能提升

GitLab 13.12中,在问题,项目,里程碑等方面提高性能。其中一些改进是:

改善404的Maven响应时间。

将DevOps Score页面转换为Vue。

Push时候更快的LFS对象检查--batch-all-objects。

在项目管道索引页中惰性加载管道工件。

在gitlab-runner中提高作业跟踪性能。

在高负载下提高Project Releases API的性能。

使用:until_executed策略对更多的Geo工作进行重复数据删除。

减少EpicsFinder中子组的权限检查数量。

提高项目集成页面的性能。

提高PUT /api/projects/:id/merge_requests/:noteable_id/notes/:note_id的API性能。

提高项目选择下拉菜单的性能。

默认情况下启用改进的表情符号选择器。

可用性改进

在GitLab 13.12中,在问题,项目,里程碑等提供了可用性改进:

软件包设置,以防止基于版本的Maven重复。

将所有Package&Container Registry设置移到新的“设置”页面。

将npm和yarn移到新的下拉UI中。

功能变更和删除

注意一下功能变更和特性删除,如果没有指明变更日期,默认变更日期都为2021年6月22日,也及Gitlab又一个大版本Gitlab 14的发布日期。

API模糊测试配置文件移至.gitlab文件夹

在GitLab 14.0中,API模糊测试配置文件(例如.gitlab-api-fuzzing.yml)应放置在存储库的.gitlab目录中。这有助于使用户的存储库井井有条。不建议将这些文件存储在存储库的根目录中。

用户.gitlab-api-fuzzing.yml还应该.gitlab-api-fuzzing-config.yml在GitLab 14.0中重命名为。配置文件中不需要其他更改。用户可以继续使用现有的配置文件,但是GitLab 14.0将要求用户将它们移动到 .gitlab目录并重命名。从GitLab 14.0开始,GitLab不会检查旧位置的配置文件。

Auto DevOps:稳定的Auto Deploy模板续订

在GitLab 14.0中,Auto Deploy CI模板更新为最新版本。包括对v2 auto-deploy-image的依赖关系的新功能,错误修复和性能改进。最新模板已启用。除非在项目中专门自定义Auto DevOps,否则它将使用稳定的模板,该模板依赖于v1 auto-deploy-image。

由于v1和v2版本不向后兼容,因此,如果已经有已部署的应用程序,则项目可能会遇到意外故障。

CI_PROJECT_CONFIG_PATH将在GitLab 14.0中删除

在GitLab 14.0中,CI_PROJECT_CONFIG_PATH将删除预定义的项目变量CI_CONFIG_PATH,而在功能上相同。

如果用户CI_PROJECT_CONFIG_PATH在管道配置中使用,请更新它们以CI_CONFIG_PATH代替使用。

代码质量Rubocop支持更改

当前,默认情况下,如果使用的是Code Quality模板,则Code Quality功能不提供对Ruby 2.6+的支持。

为了更好地支持Ruby的最新版本,默认的Rubocop版本已更新,以增加对Ruby 2.4到3.0的支持。结果,放弃对Ruby 2.1、2.2和2.3的支持。可以通过自定义配置来重新启用对较早版本的支持。

集装箱扫描引擎Clair

GitLab 14.0将用Trivy替换其容器扫描引擎。当前,GitLab使用开源Clair引擎进行容器扫描。在GitLab 13.9中不推荐使用Clair。对于任何13.x版本,客户都可以继续使用Clair,而无需对其CI文件进行任何更改。但是,请注意,GitLab将不再更新或维护该扫描引擎。从14.0版本开始,Trivy将成为新的默认扫描仪,并将定期接收更新和最新功能。

DAST环境变量重命名和删除

GitLab 13.8重命名了多个环境变量,以支持它们在不同工作流程中的更广泛使用。在GitLab 14.0中,旧变量将被永久删除,并且将不再起作用。使用这些变量的任何配置都必须更新为新的变量名称。在GitLab 14.0及更高版本中使用这些变量进行的任何扫描都将无法正确配置。

具体变量包括:

DAST_AUTH_EXCLUDE_URLS ->DAST_EXCLUDE_URLS。
AUTH_EXCLUDE_URLS->DAST_EXCLUDE_URLS。
AUTH_USERNAME->DAST_USERNAME。
AUTH_PASSWORD->DAST_PASSWORD。
AUTH_USERNAME_FIELD->DAST_USERNAME_FIELD。
AUTH_PASSWORD_FIELD->DAST_PASSWORD_FIELD。
DAST_ZAP_USE_AJAX_SPIDER->DAST_USE_AJAX_SPIDER。

DAST_FULL_SCAN_DOMAIN_VALIDATION_REQUIRED将被删除,该功能已被删除。

默认的浏览器性能测试作业将在GitLab 14.0中重命名

浏览器性能测试在performance默认情况下的作业中运行。GitLab 13.2引入了负载性能测试,但是命名可能会造成混淆。GitLab 14.0中,模板中默认作业名称将由performance更改为browser_performance。

GitLab托管应用程序删除CI/CD模板方法

在GitLab 13.12中,删除了GitLab托管应用程序的CI/CD模板安装方法。GitLab将不再对其进行改进。计划在GitLab 15.0中明确删除CI/CD模板。

作为替代,为了促进在群集中更轻松,更快速地安装和配置应用程序,我们将在GitLab 14.0中发布一个项目模板,以改善功能并消除CI/CD模板方法所具有的配置限制。新的项目模板将允许用户使用其他应用程序扩展设置并完全拥有它们。集群管理项目集成保持不变。

删除GitLab页面的磁盘源配置

自GitLab 13.0起提供基于GitLab Pages API的配置,它将替换disk源配置,该配置将在GitLab 14.0中删除。不再建议使用disk源配置,而转而使用gitlab基于API的配置,因为disk将不再支持并且无法选择它。可以通过gitlab_pages['domain_config_source'] = "gitlab"

在gitlab.rb/etc/gitlab/gitlab.rb文件中进行设置来从“磁盘”源配置中迁移。建议在GitLab 14.0之前执行此操作,以便提前发现并解决任何潜在问题。

删除旧版Gitaly Cluster主选举者

既然Praefect支持per_repository主要选举策略为每个存储库选举一个主要选举策略,将弃用GitLab 13.12中的旧策略,在GitLab 14.0中将其删除。

local生产者不支持该选举人,因此不应影响生产实例。

选择sql器与可变复制因子功能不兼容。

在SAST CI模板中弃用全局`SAST_ANALYZER_IMAGE_TAG`

随着GitLab Secure扫描工具的成熟,需要为发布过程增加更多的粒度。目前,GitLab共享所有分析仪和工具的主要版本号。这要求所有工具共享一个主版本,并禁止使用语义版本编号。

从14.0开始,GitLab SAST将弃用SAST_ANALYZER_IMAGE_TAG托管的SAST.gitlab-ci.yml CI模板中的全局变量,而将分析器作业变量设置为SAST供应商模板中的'major.minor'标签。每个分析器作业都会有一个范围SAST_ANALYZER_IMAGE_TAG变量,该变量将由GitLab主动管理,并设置为相应分析仪的'major.minor'标签。要固定到特定版本,只需将变量值更改为特定版本标签即可。如果用户覆盖或维护自定义版本,SAST.gitlab-ci.yml则需要更新CI模板以停止引用全局,SAST_ANALYZER_IMAGE_TAG并将其移至有作用域的分析器作业标签。该更改将使用户可以替代固定的major.minor版本,以更精细地控制将来的分析仪更新。

标签API中的版本说明已弃用

GitLab 14.0将在标签API中删除对发行说明的支持。创建新标签时,用户将不再能够添加发行说明。用户也将无法再通过标签API创建或更新发行版。请迁移以使用Releases API。

删除依赖项扫描的

以前,要排除DS分析器,需要将其从分析器的默认列表中删除,然后使用它DS_DEFAULT_ANALYZERS在项目的CI模板中设置变量。在不失去新添加的分析仪优势的情况下,避免运行特定的分析仪应该更容易。因此,要求迁移DS_DEFAULT_ANALYZERS到DS_EXCLUDED_ANALYZERS。

以前,为防止Gemnasium分析器在运行时获取咨询数据库,需要设置GEMNASIUM_DB_UPDATE变量。此文件未正确记录,并且其命名与等效BUNDLER_AUDIT_UPDATE_DISABLED变量不一致,故此要求迁移GEMNASIUM_DB_UPDATE到GEMNASIUM_UPDATE_DISABLED。

从Deployment API删除`updated_at`过滤器

如果要从项目部署API端点提取数据以填充GitLab中的自定义仪表板,则可能已经注意到,没有办法将API结果限制为仅显示最新更改。为了克服这个问题,必须检索所有记录,一个接一个地检查结果,并且仅处理updated_at在最后一次检索到的最新值之后更新的记录。

为了使此过程更加高效和高效,该API将在GitLab 14.0中进行更改。该updated_after和updated_before参数将被替换finished_after和finished_before参数。这将使用户能够更有效地选择他们感兴趣的部署。

不启用Go模块的情况下放弃对Go项目的SAST扫描的支持

维护Go SAST分析仪GoSec的一部分,需要升级到Go 1.16。这意味着将不再扫描未启用Go模块的项目,从而不再支持1.11之前的Go版本。如果需要扫描较旧的Go项目,则需要手动设置托管CI模板,并将Go分析器固定到v2.20.0。

默认情况下禁用过期的SSH密钥

GitLab 14.0中,默认情况下将禁用添加到GitLab的已过期SSH密钥。这有助于使GitLab实例更安全。当前,默认情况下,添加到GitLab的过期SSH密钥是启用的,除非管理员明确禁用,否则可以使用。

如果在GitLab SaaS上使用过期的SSH密钥,这也会受到影响。如果密钥已过期或将在该版本中过期,则需要更新密钥以及使用它们的所有项目。

外部管道验证服务响应代码更改

对于使用实验性外部管道验证服务的自建实例,GitLab接受的错误代码范围将减小。当前,当验证服务返回从400到的响应代码时,管道将失效499。在GitLab 14.0和更高版本中,管道将406仅对响应代码无效。

GitLab 14.0中的免费套餐预定管道限制

在GitLab 14.0中,打算对CI/CD管道的行为进行一些更改,以提高性能和资源使用率:

频繁运行的预定管道可能会影响实例的性能。在GitLab 14.0中,将免费用户的预定管道的频率限制为每个项目每天10个管道。高级和最终用户不受此更改的影响。

发现漏洞,则模糊测试作业将失败并显示allow_failure

为确保模糊测试作业彼此一致,在 14.0版本中,如果一个模糊测试作业发现漏洞,则所有模糊测试作业都将开始失败。这些作业将allow_failure=true在其中设置,因此会将收到告警,但如果发现漏洞,整个管道不会失败。

这是一些模糊扫描仪(例如Go和C++模糊测试引擎)的默认行为。

无需采取任何措施即可使用此新行为。如果要在脚本中检查管道模糊测试任务的结果,请考虑这些脚本是否需要任何更新。

14.0中的地理外部数据包装器设置删除

以下配置设置/etc/gitlab/gitlab.rb已弃用,并将在14.0中删除:

geo_secondary['db_fdw']
geo_postgresql['fdw_external_user']
geo_postgresql['fdw_external_password']
gitlab-_rails['geo_migrated_local_files_clean_up_worker_cron']

Git默认分支名称更改

每个Git存储库都有一个初始分支,该分支master默认命名。这是创建新存储库时自动创建的第一个分支。未来的Git版本会将Git中的默认分支名称从master更改为main。为了与Git项目和更广泛的社区进行协调,GitLab将更改SaaS(GitLab.com)和自GitLab 14.0开始的自建实例产品上新项目的默认分支名称。这不会影响现有项目。

GitLab Saas的更改将于2021年5月24日发生。

自建实例GitLab的更改将于2021年6月22日发布GitLab 14.0中启用。

GitLab已经引入了更改,使可以在实例级别(对于自建实例用户)和组级别(对于SaaS和自建实例用户)都更改默认分支名称。

GitLab OAuth隐式授权弃用

GitLab不赞成使用OAuth 2隐式授权流,该策略在OAuth 2.1已被删除。

从14.0开始,无法使用OAuth 2隐式授权流程创建新的应用程序。14.4将不再支持现有的OAuth隐式授权流。请在14.4之前将现有应用程序迁移到其他受支持的OAuth2流。

GitLab Runner安装程序忽略skel目录

在GitLab Runner 14.0中,skel默认情况下,安装过程将在创建用户主目录时忽略该目录。

Helm v2支持

Helm v2已于2020年11月被过期,此后不久,该stable存储库便从Helm Hub上删除。随着GitLab 14.0的发布(其中包括GitLab Helm图表的5.0版本),将不再支持Helm v2。

图表的用户应升级到Helm v3,以部署GitLab 14.0及更高版本。

旧功能标志删除

传统功能标志在GitLab 13.4中变为只读。在GitLab 14.0中将删除对旧功能标记的支持。必须将旧版功能标志迁移到新版本。为此,可以先对旧式标志进行截图以进行跟踪,然后通过API或UI删除该标志(无需更改代码),最后创建一个新的功能标志,其名称与删除的旧版标志。另外,请确保策略和环境与已删除标志匹配。

旧版存储在14.0中的删除

正如在GitLab 13.0中宣布的那样,旧存储已被弃用,并将在GitLab 14.0中删除。

在升级到GitLab 14.0之前,必须完全迁移到哈希存储。

限制在GET /groups /:id /中返回的项目

为了提高性能,将GET /groups/:id/API调用返回的项目数限制为100。仍然可以使用GET /groups/:id/projects API调用来检索项目的完整列表。

将pwsh设置为新注册的Windows Runner的默认shell

在GitLab Runner 13.2中,PowerShell Core支持已添加到Shell执行程序中。在GitLab 14.0中,pwsh它将是新注册的Windows运行程序的默认shell。Windows CMD仍可作为Windows运行程序的外壳程序选项使用。

从SAST_DEFAULT_ANALYZERS迁移到SAST_EXCLUDED_ANALYZERS

在GitLab 13.9之前,如果要避免运行一个特定的GitLab SAST分析仪,则需要将其从文件中较长的分析仪字符串中 SAST.gitlab-ci.yml删除,然后使用它SAST_DEFAULT_ANALYZERS在项目的CI文件中设置变量。如果执行此操作,它将把从以后的新分析器中排除,因为此字符串对执行的分析器列表进行了硬编码。通过反转此变量的逻辑以排除而不是选择默认分析器,可以避免此问题。从13.9开始,GitLab 迁移SAST_EXCLUDED_ANALYZERS 到SAST.gitlab-ci.yml文件中。建议任何在项目CI文件中使用自定义SAST配置的人迁移到此新变量。如果尚未覆盖SAST_DEFAULT_ANALYZERS,则无需采取任何措施。CI/CD变量SAST_DEFAULT_ANALYZERS GitLab 14.0中删除。

NFS for Git存储库存储已弃用

随着Gitaly Cluster的全面上线,GitLab 14.0中将删除对Git存储库的NFS的支持。

一键式GitLab托管应用程序将在GitLab 14.0中删除

GitLab不建议使用一键安装GitLab托管应用程序。尽管它有助于从GitLab部署到Kubernetes的入门变得非常容易,但社区的总体反馈是,它们对于实际的Kubernetes应用程序不够灵活或无法自定义。相反,未来方向将重点是通过GitLab CI/CD在Kubernetes上安装应用程序,以便在易用性与扩展自定义之间取得更好的平衡。

计划在GitLab 14.0版中完全删除一键式托管应用程序。这不会影响集群中现有托管应用程序的运行方式,但是,将不再能够通过GitLab UI来更新或修改这些应用程序。建议群集管理员计划通过手动或通过CI/CD重新安装任何现有的托管应用程序来进行迁移。

对于托管的Prometheus警报的用户,在GitLab 14.0版中,还将删除从GitLab UI设置/修改告警的功能。进行此更改是必要的,因为一旦删除托管的Prometheus,现有的解决方案将不再起作用。

OpenSUSE Leap 15.1不再支持

OpenSUSE 15.1的支持将在14.0中删除。现在为openSUSE Leap 15.2软件包提供支持。

PostgreSQL 11不再支持

PostgreSQL 12将是GitLab 14.0中最低要求的版本。它为索引编制,分区和总体性能优势提供了显著的改进。

从GitLab 13.7开始,所有新安装的默认版本均为12。从GitLab 13.8开始,单节点实例也将自动升级。如果还没有准备好升级,则可以选择退出自动升级。

在使用Patroni升级PostgreSQL之前,多节点数据库实例将需要从repmgr切换到Patroni。然后可以更新Geo数据库并重新同步。

Redis 4不再支持

在GitLab 12.7中,Redis版本已更新为Redis 5。Redis 4已到使用寿命,并且从GitLab 14.0开始将不再受支持。如果使用自己的Redis 4.x实例,则应在发布GitLab 14.0之前将其升级到Redis 5.x或6.x。

从'jobs'API端点中删除不推荐使用的'trace'参数

GitLab Runner在GitLab 13.4中进行了更新,以在内部停止将trace参数传递给/api/jobs/:id接口。在GitLab 14.0中,将完全删除该trace关键字的所有其他请求的参数。确保用户的GitLab Runner版本与GitLab版本匹配,以确保行为一致。

删除不赞成使用的管道处理代码

在GitLab 13.3中,删除一些旧的管道处理方法。在GitLab 14.0中,将完全删除不再使用的代码。

如果计划从GitLab 13.2或更早版本直接升级到14.0,则升级时运行任何管道,因为升级完成时它们可能会报告错误的管道状态。

从DAST报表中删除旧字段

作为迁移到GitLab中所有安全扫描器的通用报告格式的一部分,DAST正在对DAST JSON报告进行更改。某些旧版字段在13.8中已放弃,并将在14.0中完全删除。这些字段包括:

@generated,

@version,

site,和spider。

这不会影响任何正常的DAST操作,但会影响以自动方式使用JSON报告并使用这些字段的用户。受这些更改影响的任何人出于业务原因需要这些字段,我们鼓励他们打开新的GitLab问题并解释需求。

从软件包中删除/usr/lib/gitlab-runner符号链接

在GitLab转轮13.3,一个符号链接从加入/user/lib/gitlab-runner/gitlab-runner到/usr/bin/gitlab-runner。在14.0中,将删除此符号链接,并将运行器安装在中/usr/bin/gitlab-runner。

删除DAST默认模板阶段

在GitLab 14.0中,DAST.gitlab-ci.yml将删除当前模板中定义的阶段,以避免模板覆盖DAST用户进行的手动更改的情况。进行此更改是为了响应客户的问题,其中模板的阶段与自定义DAST配置一起使用时会引起问题。由于此删除,gitlab-ci.yml未指定dast阶段的配置必须更新为包括该阶段。

在GitLab 13.8中,不建议使用这些阶段,并将这些阶段从模板中删除的更改也包括在DAST.latest.gitlab-ci.yml模板中。任何人都可以测试并查看他们的配置文件中是否需要任何更改。

删除FF_SHELL_EXECUTOR_USE_LEGACY_PROCESS_KILL功能标记

在GitLab Runner 13.1,引入一个新的功能标志,FF_SHELL_EXECUTOR_USE_LEGACY_PROCESS_KILL,可以使用以前的过程终止序列。在GitLab Runner 14.0中,将删除该功能标记。

删除FF_USE_GO_CLOUD_WITH_CACHE_ARCHIVER功能标志

在GitLab Runner 14.0中,将删除FF_USE_GO_CLOUD_WITH_CACHE_ARCHIVER功能标记。

删除SAST分析器SAST_GOSEC_CONFIG变量以支持自定义规则集

随着GitLab 13.5中SAST自定义规则集的发布,为Go分析器(GoSec)的配置选项提供了更大的灵活性。为此,不再打算支持不灵活的SAST_GOSEC_CONFIG分析仪设置。在GitLab 13.10中不推荐使用此变量。如果覆盖或利用SAST_GOSEC_CONFIG CI文件,则需要更新SAST CI配置。

删除Ubuntu 19.10(Eoan Ermine)软件包

Ubuntu 19.10(Eoan Ermine)已于2020年7月17日星期五终止使用寿命。在GitLab Runner 14.0中,将从软件包分发中删除Ubuntu 19.10(Eoan Ermine)。

删除旧版DAST域验证

从GitLab 13.8开始,不推荐使用用于CI/CD扫描的DAST域验证的当前方法。在GitLab 14.0中,旧的DAST验证方法将被删除。域验证此方法仅如果不允许扫描DAST_FULL_SCAN_DOMAIN_VALIDATION_REQUIRED环境变量设置为true中gitlab-ci.yml文件和Gitlab-DAST-Permission网站上的标题未设置为allow。这种分两步的方法造成了一种情况,用户必须选择退出使用该变量,然后才能退出使用标题。对于担心保护网站免受全面,主动扫描的用户而言,仍然可以通过在任何站点上添加Gitlab-DAST-Permission值为的标头来撤消对GitLab DAST扫描的许可deny。这将继续阻止对包含此HTTP标头的任何网站进行的GitLab DAST扫描。

删除峰值时间模式配置以进行Docker Machine自动缩放

在GitLab Runner 13.0中, GitLab Docker Machine执行程序引入了新的计时选项。在GitLab Runner 14.0中,计划删除非高峰时间模式下的旧配置选项。

在GitLab 14.0版本中删除旧的高级搜索迁移

高级搜索迁移是一项功能,当升级其GitLab版本时,当索引中引入更改时,该功能可帮助用户在后台更新其Elasticsearch索引。高级搜索迁移增加了复杂性,这要求我们支持多个代码路径。重要的是减少这种复杂性并保持其安全性。

在GitLab 14.0中,将删除在GitLab 13.12发行之前添加的所有迁移。

在升级到GitLab 14.0之前,必须将运行GitLab 13.11或更低版本的实例升级到GitLab 13.12 **,否则可能需要重新创建高级搜索索引。可以在Elasticsearch开发文档中找到有关删除迁移过程的更多信息。

从DORA指标API的有效负载中删除冗余键/值对

该部署频率项目级别API端点被弃用,取而代之的的DORA 4 API,它整合了所有的指标下一个API与具体指标为必填字段。结果,将删除不允许添加将来的扩展并导致性能问题的时间戳字段。一个示例响应为{ "2021-03-01": 3, "date": "2021-03-01", "value": 3 }。第一个键/值("2021-03-01": 3)将被删除,并由后两个("date": "2021-03-01", "value": 3)代替。

删除secret_detection_default_branch作业

为了确保秘密检测同时扫描默认分支和功能分支,在 Secret-Detection.gitlab-ci.yml模板中引入了两个单独的秘密检测CI作业。这两个CI作业secret_detection_default_branch和secret_detection在CI规则逻辑中造成了混乱和复杂性。新版本中将rule逻辑移到该script部分中,该部分将确定secret_detection作业的运行方式(历史记录,分支上的提交,提交等)。如果重写或维护的自定义版本SAST.gitlab-ci.yml或者Secret-Detection.gitlab-ci.yml,必须更新用户的CI模板。强烈鼓励继承和覆盖我们的托管CI模板,以便将来对CI模板进行验证。在2021年6月22日发布的GitLab 14.0中停止支持secret_detection_default_branch。

删除成功和失败以完成构建度量标准转换

在GitLab Runner 13.5中,引入了failed可success声明了一项工作。为了支持普罗米修斯规则,选择了转换success/failure到finished度量标准。在14.0中,将删除转换。

删除对Windows Server 1903映像的支持

在14.0中,将删除对Windows Server 1903的支持, Microsoft于2020-08-12终止了对该版本的支持。

在自定义执行程序中删除从step_script到build_script的翻译

在GitLab Runner 13.2翻译step_script到build_script被添加到自定义执行。在14.0中,该build_script阶段将替换为step_script。

更新Auto DevOps中稳定的Auto Deploy模板

在GitLab 14.0中,将Auto Deploy CI模板更新为最新版本。包括对v2 auto-deploy-image的依赖关系的新功能,错误修复和性能改进。最新模板已启用。除非在项目中专门自定义Auto DevOps,否则它将使用稳定的模板,该模板依赖于v1 auto-deploy-image。

由于v1和v2版本不向后兼容,如果已经有已部署的应用程序,则项目可能会遇到意外故障。

Ruby.gitlab-ci.yml中的Ruby版本更改

当前,默认情况下,该Ruby.gitlab-ci.yml文件包含Ruby 2.5。

为了更好地支持最新版本的Ruby,已将模板更改为使用ruby:latest当前版本为3.0的模板。

Ubuntu 16.04支持

Ubuntu 16.04于2021年4月停止支持,并且不再发布维护更新。强烈建议用户升级到较新的版本,例如20.04。

GitLab 13.12将是支持Ubuntu 16.04的最后版本。

GitLab自建实例将删除支持的Unicorn,用Puma

GitLab不再推荐使用Unicorn,它将在GitLab 14.0中删除。Puma具有多线程体系结构,与像Unicorn这样的多进程应用程序服务器相比,它使用的内存更少。在GitLab Saas上,使用Puma可以将内存消耗减少40%。 必须先迁移到Puma,然后再升级到GitLab 14.0。

更新CI/CD模板以停止使用硬编码的“master”

CI/CD模板将更新为不再使用对master分支的硬编码引用。在14.0中,将全部更改为使用指向项目的配置默认分支的变量。用户CI/CD管道如果依赖于内置模板,则可能需要验证该更改是否适用于当前的配置。例如,如果有一个master分支和一个不同的默认分支,则对模板的更新可能会导致管道行为发生更改。

默认DAST Spider开始在目标URL上进行爬网

在GitLab 14.0中,DAST将删除在开始使用Spider时将扫描重置为主机名的方法。在GitLab 14.0之前的版本中,爬虫不会从URL的指定目标路径开始,而是会重置URL以从主机根开始爬网。在GitLab 14.0中,DAST_SPIDER_START_AT_HOST将更改新变量的默认值,false以更好地支持用户意图在指定的目标URL(而不是主机根URL)开始爬网和扫描。除了开始对指定的URL进行爬网外,如果指定的路径不包含指向整个站点的链接,则扫描的时间也将更少,这将带来额外的好处。这将使扫描应用程序的较小部分变得更容易,而不是每次扫描时都对整个应用程序进行爬网。

DevOps Adoption接口

DevOps Adoption报告的第一个版本支持“段”的概念。段很快有从报表中删除,它们在“组”和“项目”的基础上又增加了一层复杂性。DevOps Adoption报告的后续迭代着重于比较各组而不是段。任何对“段”的引用将从GitLab 14.0中的GraphQL API中删除,并替换为“组”。

删除许可证合规性

在13.0中,更新CI模板许可证管理,并将其重命名为“许可证扫描”。通过告警用户切换旧模板,但是一直提供向后兼容性。现在,在14.0中,将完全删除许可证管理CI模板。

删除global_default_branch_name功能标记

为了将默认的Git分支名称从master更改为main,已经删除了global_default_branch_name功能标记。

删除push_rules_supersede_code_owners功能标记

在GitLab版本14.0中,将删除push_rules_supersede_code_owners 功能标记。

WIP(进行中的)合并请求删除

我们将合并请求的WIP(在进行中)术语重命名为“draft”,新名称包容性且不言自明。目前不建议使用WIP术语。在下一个主要的GitLab版本(14.0)中支持新名称使用,然后将删除旧名称

升级更新

Omnibus版升级

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

yum updata/install gitlab-ce

就能自动完成升级:

GitLab 13.12发布,安全性、可用性和管道管理加强

可以通过web页面的帮助中,确认当前版本。

GitLab 13.12发布,安全性、可用性和管道管理加强

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
展开阅读全文

页面更新:2024-03-13

标签:管道   分析器   作业   可用性   软件包   变量   分支   应用程序   安全性   实例   模板   版本   功能   文件   时间   项目   用户   科技

1 2 3 4 5

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

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

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

Top