Helm图表包含在Kubernetes集群内运行应用程序、工具或服务所需的所有资源定义。对于创建和管理自己的Helm图表的组织来说,拥有一个中央存储库来收集和共享它们非常重要。
按照Gitlab一贯的发版规律,上周四Gitlab官方发布了又一个里程碑大版本GitLab 14.1。本版本中新增加Helm图表的支持,可以在GitLab 14.1中构建,发布和共享Helm图表,另外新增加了呼叫上报策略、K8S C/ICD隧道,Wiki中表格和图像上传支持。更多详尽的功能请随虫虫一起学习。
GitLab 14.1主要功能
构建、发布和共享 Helm 图表
Helm图表包含在Kubernetes集群内运行应用程序、工具或服务所需的所有资源定义。对于创建和管理自己的Helm图表的组织来说,拥有一个中央存储库来收集和共享它们非常重要。
GitLab已经支持多种其他包管理器格式。
可以使用GitLab项目来发布和共享打包的Helm图表。只需将项目添加为远程项目,使用个人访问、部署或CI/CD作业令牌进行身份验证。完成后,可以使用Helm客户端或 GitLab CI/CD 来管理Helm图表。还可以使用API或用户界面下载图表。
上报政策(PREMIUM)
随叫随到是一项压力很大的 24/7 工作。尽管尽了最大的努力和意图,也有可能会错过通知。维护关键系统的团队不能错过停电或服务中断的警报。升级政策是应对这些问题的最后防线。升级策略包含有时间限制的步骤,如果之前步骤中的响应者没有响应,这些步骤会在下一个升级步骤中自动呼叫响应者。为了防止受错过关键警报,在GitLab项目中创建一个升级策略,可以在其中管理随叫随到计划。
在 GitLab 14.1 中,用户可以创建、查看或删除升级策略。
Kubernetes 集群的 CI/CD 隧道(PREMIUM)
截止目前,连接Kubernetes 集群连接到GitLab CI/CD需要用户向GitLab开放其集群。出于安全考虑,一些组织不鼓励在外部开放防火墙。
GitLab现在附带一个CI/CD隧道它使用GitLab Kubernetes 代理将GitLab Runners与Kubernetes集群连接起来。这支持通用的GitOps工作流,其中可以在管道中对部署逻辑进行编码。
这样用户可以安全地使用首选工具,很安全的运行部署本身kubectl,helm,kpt,tanka,或其他任何东西。
要使用隧道,只需在GitLab CI/CD 管道中定义kubecontext,连接到代理。为了简化这个过程,在未来的迭代中自动注入kubecontext CI/CD环境。
CI/CD 隧道目前仅在配置了代理的项目中受支持,正在努力添加组级支持。可以安全地开始在 GitLab SaaS 和自建实例上使用隧道。
代码覆盖合并请求批准规则(PREMIUM)
为了保持高代码测试覆盖率,需要确保对代码库的合并请求永远不会降低测试覆盖率。以前,强制执行此操作的唯一方法是要求用户批准,他们将检查测试覆盖率是否降低作为其审查的一部分。
现在,可以使用新的Coverage check批准规则强制执行此组织策略。这是确保不会合并会降低测试覆盖率的合并请求的简单方法。
Datadog CI可见性集成
与Datadog 持续集成可见性的集成提供了GitLab管道、单元测试和集成测试的详细细分。查看一段时间内的高级指标:执行状态、持续时间、百分位数(p50 和 p95)、失败率、排队时间等。Datadog仪表板可帮助筛选GitLab CI/CD 数据,以识别导致管道最常失败的有问题的作业。
在 Wiki 内容编辑器中创建表格并上传图像
在GitLab 14.0 为了增wiki编辑体验,引入了新的 WYSIWYG Markdown 编辑器的MVC。它支持最常见的Markdown格式选项,但有一些明显的差距。GitLab 14.1 继续改进对图像和表格的编辑体验。现在可以将图像直接上传到编辑器中。还可以插入和编辑表格,包括从流行的电子表格应用程序复制和粘贴内容,以将其他来源的表格引入wiki。
选择项目访问令牌角色
用户现在可以在创建时指定项目令牌在项目级别应具有的访问级别,并且可以查看现有项目访问令牌角色。
在此版本之前,项目访问令牌具有维护者角色。对于某些用户,此角色包括不需要的提升权限。
为避免滥用,除免费的GitLab SaaS帐户外,所有用户都可以使用此功能。所有自建实例的用户以及高级和黄金版SaaS 客户现在都可以轻松选择和查看其项目访问令牌。
合并请求的外部状态检查(ULTIMATE)
现在可以联系外部 API 以在合并请求中执行状态检查。这是GitLab与第三方系统集成的好方法:
- 在外部系统中运行并且没有特定的管道作业。
- 需要在另一个系统中手动批准。
在项目中,可以配置状态检查的API(使用 GitLab UI 或 GitLab API),然后当对合并请求进行更改时,该API会被调用,并提供有关合并请求的各种详细信息。然后,外部API可以使用返回代码进行响应,以指示检查是否已通过。然后在合并请求中显示此结果。
这使团队可以轻松保持同步,并在合并之前很容易看到合并请求已满足外部要求,从而添加额外的方法来确保满足合规性要求。
将Jira问题链接到 MR(ULTIMATE)
现在可以要求项目中的所有合并请求都创建了一个关联的Jira问题。这是确保 GitLab 中的代码更改反映在 Jira 问题中并且团队可以更好地保持同步的好方法。
组迁移现在包括Epic
新的 GitLab组迁移功能现在包括带有所有相关信息的Epics,例如标签、评论、事件和奖励表情符号。现有用户被匹配并分配到Epic。添加Epics 是为基于文件的组导出/导入功能提供更好替代方案的重要一步。
记录从 GitHub 导入的对象数量
当从GitHub导入时,日志中现在包含所有导入对象的计数。此信息可帮助用户验证其导入的数据并解决任何导入问题。
跟踪整体DevOps采纳的进展(ULTIMATE)
使用DevOps采纳中的新进度条查看整个组织采用的关键DevOps功能的总数。进度条可帮助用户了解团队从GitLab获得的价值并评估DevOps转型状态。
在 Visual Studio Code 中查看合并请求的分支
在 Visual Studio Code 中查看合并请求(MR)时,查看提议更改的分支会很有帮助。查找源分支的名称然后切换上下文来检查它可能具有挑战性。
现在,在使用GitLab Workflow for Visual Studio Code查看 MR 时,可以右键单击 MR 标题以查看其源分支。这使得在更大的上下文中查看提议的更改、在本地测试项目以及在源分支上执行其他操作变得更加容易。
在 VS Code 中创建和应用补丁
在审查合并请求 (MR) 时,对许多已更改的文件提出建议会很有帮助。这通常是通过创建包含建议的补丁文件并与他人共享来完成的。问题是这需要几个手动步骤,例如运行 Git 命令并将补丁文件上传到其他人可以下载的地方。
借助适用于 VS Code 的GitLab Workflow v3.26.0,现在可以直接在编辑器中创建和应用补丁。新GitLab: Create snippet patch命令在编辑器中创建一个包含更改的补丁,并将该补丁作为GitLab 代码段上传。
任何人都可以在项目的代码片段中搜索补丁,并使用GitLab: Apply snippet patch命令直接在 VS Code 中应用它们。然后可以将应用的更改提交给 MR。
在可读的表格视图中显示 CSV 文件
CSV(逗号分隔值)文件中的数据在显示为包含列和行的表格时更容易理解,尤其是在文件很大的情况下。之前CSV 信息在GitLab存储库中显示为原始文本。CSV现在会被渲染为表格,RAW视图表示实际的逗号分隔值。
Wiki 内容编辑器中的新内容类型
GitLab 14.0,在Wiki中引入了内容编辑器,这是一个新的 WYSIWYG Markdown 编辑器,支持粗体、斜体、code、块引号和链接等基本内容类型。在 14.1 中,新添加了使用删除线格式化文本和插入水平线的功能。添加这些常用的内容类型使我们更接近我们的目标,即在不学习Markdown的情况下为所有用户提供丰富的编辑体验,完全支持 GitLab Flavored Markdown 规范,使其成为Wiki的默认编辑体验。
从管道编辑器访问 CI/CD 模板库
模板为用户提供了一种熟悉GitLab CI/CD的简单方法。GitLab中有大量模板,但访问它们并不直观。在此版本中,新添加了一种从管道编辑器直接导航到模板库的方法。这使得浏览GitLab可用的不同模板变得容易,因此可以更轻松地将相关部分直接复制并粘贴到您的管道配置中。
修复创建/编辑/删除发布权限以匹配标签创建权限
在 GitLab 14.1 中,正在修复创建/编辑/删除发布权限以匹配标签创建权限,以便用户拥有一致的体验。此错误修复单独突出显示,因为对于具有与受保护标签关联的版本的项目,用户必须对版本和受保护标签具有写访问权限才能访问该版本。
可在用户个人资料快照中查看的代词
现在,当将鼠标悬停在问题或合并请求上的某人姓名上时,可以在用户个人资料的快照视图中看到代词。这有助于用户使用正确的代词更好地回应评论,而无需导航到用户的个人资料。
Vault 集成与环境变量支持(PREMIUM)
通过使用GitLab Vault集成,Vault用户可以轻松地从GitLab CI/CD 中检索机密。集成最初创建了file类型秘密变量,这种方法有一些缺点。为了克服这些问题,引入了一个新的布尔file关键字,可以在其中指定返回的变量是应该存储为普通环境变量还是文件。
此功能需要 GitLab Runner 版本 14.1.0。为了向后兼容,默认情况下将变量存储为文件类型 (file: true)。
VS Code 中合并请求审查的注释指示器
在Visual Studio Code中响应对合并请求的反馈时,要知道哪些文件有注释并不容易。在GitLab工作流程v3.24.0,现在显示哪些文件具有的合并请求评论。有助于轻松识别可能需要查看的文件,以解决他们的意见。
默认分支名称重定向
此前,当项目重命名默认分支时,当前URL将导致404 Not Found.当尝试在分支之间导航时,这是一种令人沮丧的体验。现在,如果导航到默认分支已重命名的文件或目录路径,将被自动重定向到更新后的路径。
GitHub格式的锚链接正确突出显示
直接链接到单行突出显示的代码或文本支持单行协作,但讨论通常涉及多行代码或文本。某些代码编辑器插件(例如用于 JetBrains IDE 的GitLink)从多行的选定范围生成锚链接。以前,不能在GitLab存储库中使用此类链接,因为GitLab和GitHub的锚链接格式不兼容,以突出显示多行。以前,只有在GitLab 中手动修改不兼容的URL才能突出显示多行。GitLab 现在支持GitLab和GitHub格式,用于覆盖多行的代码突出显示锚链接。
用户设置显示绝对时间
GitLab 在很多地方显示相对时间(例如,30分钟前)。现在可以更改用户配置文件首选项以显示绝对时间,
绝对时间尊重的浏览器设置,并根据首选区域设置格式日期和时间,例如,英式英语而不是美式英语。这个新的显示选项为需要它的用户提供了更多信息一目了然,以用于工作流,例如将GitLab中的操作与外部系统相关联。
默认启用 GraphQL Runner API
以前,要以编程方式管理Runner,必须使用REST API 获取和操作数据。作为改进Runner管理计划的一部分,正在实施将GraphQL作为在Runner的管理区域中提供更好的用户体验的一个基本元素。在新版本中,可以使用GraphQL查询和更改以编程方式管理GitLab实例的运行程序。
限制团体和项目的Runner注册
现在,可以默认在GitLab实例中在组和项目级别注册Runner。对于一些安全控制比较严格的组织,管理员需要限制项目和组运行器的注册。此社区贡献在管理区域中添加了两个配置选项,以便可以在项目和组级别关闭Runner注册选项。
更新管理区域的Runner页面
现在,可以从管理区域的Runne页面管理GitLab 实例中的所有Runner。但是,此页面上的功能对于管理和操作大量Runner的GitLab管理员没有帮助。在许多计划的迭代中的第一个中,管理区域的Runners页面现在使用Vue.js和GraphQL。在此版本中,会注意到列表和详细信息视图现在与GitLab UI的其他区域一致。这种新架构使能够拥有更具交互性的UI、更快地迭代并添加新特性和功能,以帮助大规模管理和操作运行器。
从流水线编辑器中的分支工作
以前,只能使用管道编辑器来处理项目默认分支中的管道配置。在新版本中,向管道编辑器添加了一个分支选择器。现在,可以从任何喜欢的分支使用管道编辑器,这使得在默认分支上实现更改之前测试更改变得更加容易。
问题中的相关功能标志(PREMIUM)
在 GitLab 13.2 中,我们添加了将问题与功能标志相关联的功能。在此版本中,我们添加了将功能标志与问题相关联的功能。一个问题通常有“为什么”的上下文。允许用户能够从问题导航到功能标志,然后再返回将使用户能够了解功能标志的用途的完整上下文。
支持基于 UBI 的容器扫描镜像(ULTIMATE)
GitLab 现在支持容器扫描镜像的通用基线镜像(UBI) 版本。默认情况下,GitLab 容器扫描在基于 Alpine 的映像上运行。但是,可能更喜欢或要求它在基于 UBI 的映像上运行。
注册功能(ULTIMATE)
注册功能为运行GitLab EE免费、自建实例用户引入了通过在 GitLab 注册并通过Service Ping共享活动数据来访问付费功能的能力。引入的第一个功能是来自 GitLab 的电子邮件,使实例管理员能够向其实例内的用户发送电子邮件。
Gitlab Runner 14.1
同期还发布了GitLab Runner 14.1其中新添加的功能和更新包括:
添加对Windows Server版本20H2(半年频道)的支持。
将作业负载传递给GitLab Runner自定义executor。
停止将 Docker 镜像拉取视为运行器系统故障。
Bug修复:
Docker 作业失败,退出代码为 137。
修复大日志行的跟踪短写。
Omnibus改进
综合改进
GitLab 14.1 包括Mattermost 5.36,这是一个开源 Slack 替代品,其最新版本包括添加匈牙利语言支持、Focalboard 项目管理集成(测试版)等。该版本还包括安全更新,建议从早期版本升级。
GitLab 14.1 还引入了为不使用 Geo 或多节点设置的全新单节点安装选择加入 PostgreSQL 13 的功能。
安全和合规性审计
快速访问合规报告条目(ULTIMATE)
合规性仪表板引入了一个新的快速访问视图,可查看合并请求。单击列表中的合并请求将打开视图。直接在合规性仪表板内轻松快速查看合并请求的状态和详细信息。
这有助于通过显示有关每个合并请求的信息(例如作者、标题、批准者、评论者等)来节省时间。不再需要单独打开每个合并请求来查看该信息。合规团队可以快速查看合并请求的完整列表并找到需要关注的,而不是花时间查看不需要的。
DAST UI 配置体验(ULTIMATE)
GitLab 的动态应用程序安全测试 (DAST) 现在支持新的引导式配置体验。这种配置经验使非CI专家更容易开始使用 GitLab DAST。该工具可帮助用户创建合并请求以启用DAST扫描,同时利用最佳配置实践,例如使用 GitLab 管理的DAST.gitlab-ci.yml模板和正确覆盖模板设置。
使用GitLab DAST,用户通常会创建多个配置以覆盖其应用程序的不同领域。新的DAST配置UI允许用户创建DAST站点和扫描仪配置文件。然后可以在CI/CD管道作业中引用这些配置文件。配置存储在数据库中,并在扫描运行时引用以将配置变量加载到作业中。唯一需要的 YAML 配置是指定要在扫描中使用的站点和扫描仪配置文件的名称。这使得在应用程序需要时切换配置变得非常简单。您DAST作业无需从头开始为 DAST 构建 YAML 配置文件。
关于MR差异的内联代码质量通知(ULTIMATE)
对于创作或审查合并请求的开发人员,可能想知道每个更改如何影响项目的质量。要在GitLab中要实现这种需求,之前需要打开两个窗口:
- 关于合并请求的代码差异。
- 在主合并请求页面上查看代码质量变化。
这种来回切换操作是低效的,并且很容易遗漏关键的代码质量问题。
合并请求更改选项卡现在显示哪一行引入了代码质量违规及其严重性,因此可以快速确定要解决的最关键问题。将鼠标悬停在图标上可提供有关违规的详细信息。
API创建GPG和SSH密钥的审计事(PREMIUM)
如果使API创建GPG 密钥或SSH 密钥,现在会创建审计事件。这将可见性扩展到使用GitLab UI创建密钥的用户之外,以帮助了解和保护可以访问 GitLab 的所有方式。
项目合规性框架变更的审计事件(PREMIUM)
当项目的合规性框架更改时,现在正在创建审计事件。这可以更好地了解项目政策控制的潜在滥用情况。
管理区域中的Runner注册令牌被屏蔽
实例级运行者注册令牌是敏感信息。GitLab管理员,可以复制实例级别的注册令牌并使用它来添加未经授权的运行程序,并在运行程序处理作业时从 GitLab 实例中读取机密。新版本中屏蔽了令牌,因此它仅在需要时才在屏幕上可见。
公共项目的 CI 分钟跟踪和配额的可见性
因为公共项目被排除在配额之外,所以要全面了解CI分钟消耗真的很有挑战性。因此,我们改进了管道使用页面以显示公共项目CI分钟消耗。在CI分钟配额中包含公共项目使能够全面了解您的使用情况,从而就管道效率做出明智的决策。
包注册表现在支持 NuGet 符号包
可以使用GitLab包注册表在源代码和管道旁边发布和安装NuGet包。由于包是代码的集合,因此有时它们会出现错误。
问题是,尽管 GitLab 支持 NuGet 包,但直到最近才支持符号包 (.snupkg)。这使得与团队的其他成员共享这些重要的调试包变得更加困难,并阻止依赖 GitLab作为NuGet包的唯一真实来源。
GitLab现在支持发布和安装符号包。要发布符号包,只需运行nuget push My.Package.snupkg -Source <source_name>. 然后您可以.snupkg使用API或用户界面下载文件。
基于浏览器的 DAST 身份验证(ULTIMATE)
作为迁移到基于浏览器的 DAST 生态系统项目的一部分,GitLab已将DAST身份验证方法切换为使用基于浏览器的身份验证。除了支持所有现有的DAST身份验证方法之外,这个新系统还允许通过生成包含屏幕截图和身份验证过程中发出的 HTTP 请求的报告来进行高级调试。该报告允许用户查看过程中的所有步骤,并查看身份验证失败时发生的情况。新的身份验证方法还包含生活质量改进,例如在如何选择页面上的登录表单元素方面具有更大的灵活性、支持单击元素以显示弹出登录模式、验证身份验证是否成功的策略以及直接访问到浏览器日志以进行调试。
依赖扫描扩展了对 Gradle 项目的支持(ULTIMATE)
现在可以为Java 16 Gradle 项目启用依赖项扫描。将DS_JAVA_VERSION环境变量设置16为使用此增强功能。此外,gemnasium-gradle-plugin 已更新以支持 Gradle 7.0。
静态分析分析器更新
GitLab 静态分析由一组许多安全分析器组成,GitLab 静态分析团队积极管理、维护和更新这些分析器。以下是 14.1 期间发布的分析器更新。这些更新带来了额外的覆盖范围、错误修复和改进。
Flawfinder 更新到版本 2.0.18;
Gosec 更新到版本 2.8.1;
Semgrep 更新到版本 0.57.0;
将每个文件的超时设置为 10 秒。
修复了检测模式中的错误。
新的检测模式。
MobSF 更新到版本 2.13.0;
删除对 Python 3.8 的支持以缓解安全问题。
如果包含 GitLab 托管的供应商SAST模板(SAST.gitlab-ci.yml),则无需执行任何操作即可接收这些更新。但是,如果覆盖或自定义自己的CI/CD模板,则需要更新CI/CD配置。如果想继续使用任何分析器的特定版本,现在可以固定到分析器的次要版本。固定到以前的版本将阻止接收自动分析器更新,并要求在 CI/CD模板中手动增加分析器版本。
新实例管理员的审计事件(PREMIUM)
如果将用户添加为GitLab实例的管理员,现在会创建审计事件。这有助于确保如果任何人成为管理员(意味着他们对实例进行了更改),就会有其权限提升的记录,可以在以后进行审核。
用户被停用时的电子邮件通知
用户现在会在停用时收到通知。这会通知用户,以便他们可以:
采取措施重新激活他们的账户。
了解为什么开始收到不到来自GitLab的任何通知。
了解为什么无法访问GitLab API 和存储库。
外部用户失去访问权限前的 LDAP 同步警告
如果用户选择将他们的组与LDAP同步,现在会看到警告。一旦组与LDAP同步,LDAP组外部的所有用户都将失去访问权限。这可确保用户了解同步的影响并在同步发生之前获得确认。
跨多个团队跟踪安全扫描的使用(PREMIUM)
跟踪组织中的哪些组启用了SAST和DAST扫描。这有助于验证与组织要求的合规性、响应审计请求以及跟踪公司计划的进度以提高应用程序的安全性。要跟踪采用情况,请在组级别或实例级别转DevOps采用中Se选项卡。
要查看已启用模糊测试和依赖项扫描的组,请使用DevOps API。在即将发布的版本中,模糊测试和依赖项扫描将添加到DevOps采纳UI中。
DAST API 安全扫描器的 Beta 版(ULTIMATE)
2020 年,GitLab收购了Peach Tech,并在此过程中获得了一个非常强大的DAST API安全工具。该DAST扫描器立即提供了启用更多API规范方法、更多API语言支持和其他身份验证方法的好处。除了已经支持的OpenAPI规范之外,现在还可以使用Postman集合和HAR文件来提供多个选项来定义可以在API中测试的内容。除了支持REST API之外,新的测试版API安全扫描器还支持SOAP和GraphQL API 端点。其他身份验证方法包括静态 cookie、表单正文、JSON 正文和 XML 正文。
作为此测试版的一部分,API安全扫描器的DAST API作业现在与CI/CD管道中的传统Web应用程序DAST作业分开。可以使用新变量和新DAST API YAML模板单独配置 DAST API 作业。这是一项重大改进,支持在同一管道中同时使用 Web 应用程序 DAST 和 API DAST。在测试应用程序时,不再需要在一种类型的DAST 扫描或另一种类型之间进行选择。一个管道可以提供应用程序的UI和API的动态应用程序安全测试覆盖。
所有人都可以使用的秘密检测配置工具(ULTIMATE)
GitLab 13.12 的安全配置页面上添加了对秘密检测的支持。14.1中为的所有 SaaS用户和所有自建实例用户添加功能,改工具还支持合并请求中启用秘密检测扫描,同时利用最佳配置实践,例如使用GitLab管理的SAST.gitlab-ci.yml模板。配置工具可以创建一个新的.gitlab-ci.yml如果一个文件不存在或更新现有的简单GitLab CI文件,则允许该工具与已经设置了GitLab CI的项目一起使用。
在 UI 中启用依赖项扫描(ULTIMATE)
可以访问安全配置页面但尚未启用依赖项扫描的用户现在可以通过单击“通过合并请求配置”来启用它。这将创建和/或更新的管道YAML文件以添加默认的依赖项扫描模板。这将使更轻松地将依赖项扫描快速添加到项目中,为的标准开发工作流程提供额外的安全层。
默认情况下禁用 GitLab 页面的jailing机制
由于升级到 GitLab 14.0 时发现的问题,在先版本中在默认禁用GitLab页面的jailing机制。从14.0开始停止直接从磁盘提供GitLab页面。如果需要该功能,仍然可以重新启用监狱。
Bug修复
14.1版本中修改了很多Bug问题,其中包括:
依赖列表漏洞并不总是按严重性排序。
Dependency List 从未完成的管道中获取不完整的结果。
的包模型回调update_composer_cache无法正常工作。
清理策略UI不显示nil值。
图像存储库列表中未显示清理超时警告图标。
由于ActiveRecord::RecordInvalid(验证失败:名称已被占用)导致的随机注册表推送失败。
DevOps采纳,gitlab-org组的安全扫描查询超时。
DevOps采纳,启用当前组时出错,请刷新页面。
发生错误时不清除 VSA 阶段表数据
无人机集成不起作用。
无法通过webhooks API禁用 repository_update_events。
管道电子邮件服务 PI返回“true”而不是 true。
如果正在运行的迁移需要暂停索引,GitLab 应该只阻止取消暂停 Elasticsearch索引。
不要计算sidekiq_enqueued_jobs_total中重新排队的作业。
禁用Gitlab问题后,无法从漏洞创建Jira问题。
启用Container Scanning 或 API Fuzzing 后,Vulnerability-Check Enable 按钮不会出现。
编辑 Cilium 策略时出现404错误。
编辑非 Cilium 网络策略时出现错误404。
使用SSH时,通过Geo辅助git代理删除远程分支挂起。
带有尾随点的项目的地理同步失败
不要为只读DB上的失败登录创建审计事件。
错误当我们不在合并请求中显示完整差异时不显示警告。
无法创建多行注释。
GraphQL SnippetBlob应该公开未更改的文本内容。
NOT 过滤器运算符不适用于多个过滤器。
当文件或文件夹很长时,无法在存储库中显示带有气泡的全名。
镜像不会下载新 LFS文件。
缺少Branches接口的分页标头。
问题页面:里程碑下拉菜单有两个滚动条。
时间跟踪报告错误。
时间跟踪不适用于小组项目的里程碑页面。
史诗计数图标缺乏适当的间距。
在 Epics 路线图上获取标签时出错。
固定板侧边栏顶部位置。
健康状态编辑按钮 DarkMode中不可见。
选择新的范围标签时,它不会应用更改。
史诗板定位不适用于封闭列表。
固定燃尽图中的问题数量不正确。
动态生成的管道因对象存储中的工件而失败。
性能改进
在每个版本中,都在努力提高 GitLab 的性能。在 GitLab 14.1 中,在为问题、项目、里程碑等提供性能改进,其中一些改进是:
转换包详细信息页面以使用 GraphQL。
[VSA][Discovery] 查询更改前的后端性能优化。
在 Repository Browser 中单击 Show More 后,不要为 page 上已经存在的文件获取 logs_tree。
立即在 Repository Browser 中显示父行。
将评论图标移动到存储库 diffs 中的 CSS。
在责备视图中延迟加载头像图像。
在加载到下一层时提高存储库比较分支/标签 API 的性能。
将 monaco 的版本更新到更新的版本。
调查并改进浏览器在 S2 层中查看文件(源)页面的总阻塞时间 (LCP) 性能。
改进 ./spec/lib/gitlab/git_access_snippet_spec.rb 中的慢速测试。
将 MR diff 行组件转换为功能组件。
不要在 MR 页面中渲染 File Finder,直到它被调用。
如果不需要,不要在 DOM 上的 Diff 文件中呈现折叠警告。
查看讨论时仅呈现 MR 概览选项卡。
Wiki::EventCreateService: Encoding::CompatibilityError: incompatible character encodings: ASCII-8BIT and UTF-8。
并发 wiki 更新会导致 git 异常。
内容编辑器中的 Cmd/Ctrl + Return 提交表单但不保存更改。
无法在使用内容编辑器编辑的页面末尾退出代码块。
在重构的看板侧边栏中使用截止日期小部件。.
在 GraphQL 中的史诗泳道之间移动问题时减少 SQL 查询的数量。
功能变更和删除
不合规的容器镜像会破坏垃圾收集
根据Docker Image Spec和OCI Image Spec,容器清单列表应该只引用清单。短期内,GitLab目标是解除对自建实例客户运行离线垃圾收集的阻止。目前,我新了容器注册表以解决此行为。
从长远来看,必须确保 GitLab Container Registry 执行OCI镜像规范。允许推送带有 blob 的清单列表会影响数据完整性和一致性。
作业日志的最大文件大小,默认为 100MB
GitLab重视更广泛的贡献者社区中所有用户的效率,一直在努力确保应用程序以可爱的用户体验在高水平上运行。在 14.2 中,计划引入作业日志文件大小限制,默认设置为100兆字节。自建实例的GitLab管理员可以将其自定义为任何值。所有超过此限制的作业都将被删除并标记为失败,从而有助于防止性能影响或资源过度使用。
删除对prometheus.listen_address和的支持prometheus.enable
删除日期:2021 年7月22日
已从GitLab中删除对prometheus.listen_address和的支持。使用和来设置实例连接到的 Prometheus 服务器。
这仅影响来自用户可能使用旧配置的源的新安装。
删除对旧浏览器的支持
删除日期:2021 年7月22日
GitLab 14.1 中,正清理和删除于不再支持的浏览器的旧代码。已删除对以下浏览器的支持:
Apple Safari 13及更早版本。
火狐 68。
Chromium内核之前的Microsoft Edge。
支持的最低浏览器版本为:
苹果 Safari 13.1
火狐浏览器 78
谷歌Chrome 84
Chromium 84
微软Edge 84
更新升级
Omnibus版
通过Omnibus安装的自建实例可直接使用Linux包管理器可以升级。例如对CentOS:
yum updata/install gitlab-ce
就能自动完成升级:
注意到,上面提示中,提示目前实例还在运行的数据为PostgreSQL12,而Gitlab 14 中最小的要求为PostgreSQL13,居然没有自动升级。
所以手动升级了下:
sudo gitlab-ctl pg-upgrade -V 13
可以通过gitlab实例的帮助查看版本信息以及是否升级到最新版本:
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
内容出处:,
声明:本网站所收集的部分公开资料来源于互联网,转载的目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。如果您发现网站上有侵犯您的知识产权的作品,请与我们取得联系,我们会及时修改或删除。文章链接:http://www.yixao.com/tech/26249.html