按照Gitlab一贯的发版规律,上周四Gitlab官方发布了又一个里程碑大版本GitLab14.1。本版本中新增加Helm图表的支持,可以在GitLab14.1中构建,发布和共享Helm图表,另外新增加了呼叫上报策略、K8SC/ICD隧道,Wiki中表格和图像上传支持。更多详尽的功能请随虫虫一起学习。
GitLab14.1主要功能
构建、发布和共享Helm图表
Helm图表定义为Helm包,其中包含在Kubernetes集群内运行应用程序、工具或服务所需的所有资源定义。对于创建和管理自己的Helm图表的组织来说,拥有一个中央存储库来收集和共享它们非常重要。
GitLab已经支持多种其他包管理器格式。
可以使用GitLab项目来发布和共享打包的Helm图表。只需将项目添加为远程项目,使用个人访问、部署或CI/CD作业令牌进行身份验证。完成后,可以使用Helm客户端或GitLabCI/CD来管理Helm图表。还可以使用API或用户界面下载图表。
上报政策(PREMIUM)
随叫随到是一项压力很大的24/7工作。尽管尽了最大的努力和意图,也有可能会错过通知。维护关键系统的团队不能错过停电或服务中断的警报。升级政策是应对这些问题的最后防线。升级策略包含有时间限制的步骤,如果之前步骤中的响应者没有响应,这些步骤会在下一个升级步骤中自动呼叫响应者。为了防止受错过关键警报,在GitLab项目中创建一个升级策略,可以在其中管理随叫随到计划。
在GitLab14.1中,用户可以创建、查看或删除升级策略。
Kubernetes集群的CI/CD隧道(PREMIUM)
截止目前,连接Kubernetes集群连接到GitLabCI/CD需要用户向GitLab开放其集群。出于安全考虑,一些组织不鼓励在外部开放防火墙。
GitLab现在附带一个CI/CD隧道它使用GitLabKubernetes代理将GitLabRunners与Kubernetes集群连接起来。这支持通用的GitOps工作流,其中可以在管道中对部署逻辑进行编码。
这样用户可以安全地使用首选工具,很安全的运行部署本身kubectl,helm,kpt,tanka,或其他任何东西。
要使用隧道,只需在GitLabCI/CD管道中定义kubecontext,连接到代理。为了简化这个过程,在未来的迭代中自动注入kubecontextCI/CD环境。
CI/CD隧道目前仅在配置了代理的项目中受支持,正在努力添加组级支持。可以安全地开始在GitLabSaaS和自建实例上使用隧道。
代码覆盖合并请求批准规则(PREMIUM)
为了保持高代码测试覆盖率,需要确保对代码库的合并请求永远不会降低测试覆盖率。以前,强制执行此操作的唯一方法是要求用户批准,他们将检查测试覆盖率是否降低作为其审查的一部分。
现在,可以使用新的Coveragecheck批准规则强制执行此组织策略。这是确保不会合并会降低测试覆盖率的合并请求的简单方法。
DatadogCI可见性集成
与Datadog持续集成可见性的集成提供了GitLab管道、单元测试和集成测试的详细细分。查看一段时间内的高级指标:执行状态、持续时间、百分位数(p50和p95)、失败率、排队时间等。Datadog仪表板可帮助筛选GitLabCI/CD数据,以识别导致管道最常失败的有问题的作业。
在Wiki内容编辑器中创建表格并上传图像
在GitLab14.0为了增wiki编辑体验,引入了新的WYSIWYGMarkdown编辑器的MVC。它支持最常见的Markdown格式选项,但有一些明显的差距。GitLab14.1继续改进对图像和表格的编辑体验。现在可以将图像直接上传到编辑器中。还可以插入和编辑表格,包括从流行的电子表格应用程序复制和粘贴内容,以将其他来源的表格引入wiki。
选择项目访问令牌角色
用户现在可以在创建时指定项目令牌在项目级别应具有的访问级别,并且可以查看现有项目访问令牌角色。
在此版本之前,项目访问令牌具有维护者角色。对于某些用户,此角色包括不需要的提升权限。
为避免滥用,除免费的GitLabSaaS帐户外,所有用户都可以使用此功能。所有自建实例的用户以及高级和黄金版SaaS客户现在都可以轻松选择和查看其项目访问令牌。
合并请求的外部状态检查(ULTIMATE)
现在可以联系外部API以在合并请求中执行状态检查。这是GitLab与第三方系统集成的好方法:
在外部系统中运行并且没有特定的管道作业。
需要在另一个系统中手动批准。
在项目中,可以配置状态检查的API(使用GitLabUI或GitLabAPI),然后当对合并请求进行更改时,该API会被调用,并提供有关合并请求的各种详细信息。然后,外部API可以使用返回代码进行响应,以指示检查是否已通过。然后在合并请求中显示此结果。
这使团队可以轻松保持同步,并在合并之前很容易看到合并请求已满足外部要求,从而添加额外的方法来确保满足合规性要求。
将Jira问题链接到MR(ULTIMATE)
现在可以要求项目中的所有合并请求都创建了一个关联的Jira问题。这是确保GitLab中的代码更改反映在Jira问题中并且团队可以更好地保持同步的好方法。
组迁移现在包括Epic
新的GitLab组迁移功能现在包括带有所有相关信息的Epics,例如标签、评论、事件和奖励表情符号。现有用户被匹配并分配到Epic。添加Epics是为基于文件的组导出/导入功能提供更好替代方案的重要一步。
记录从GitHub导入的对象数量
当从GitHub导入时,日志中现在包含所有导入对象的计数。此信息可帮助用户验证其导入的数据并解决任何导入问题。
跟踪整体DevOps采纳的进展(ULTIMATE)
使用DevOps采纳中的新进度条查看整个组织采用的关键DevOps功能的总数。进度条可帮助用户了解团队从GitLab获得的价值并评估DevOps转型状态。
在VisualStudioCode中查看合并请求的分支
在VisualStudioCode中查看合并请求(MR)时,查看提议更改的分支会很有帮助。查找源分支的名称然后切换上下文来检查它可能具有挑战性。
现在,在使用GitLabWorkflowforVisualStudioCode查看MR时,可以右键单击MR标题以查看其源分支。这使得在更大的上下文中查看提议的更改、在本地测试项目以及在源分支上执行其他操作变得更加容易。
在VSCode中创建和应用补丁
在审查合并请求(MR)时,对许多已更改的文件提出建议会很有帮助。这通常是通过创建包含建议的补丁文件并与他人共享来完成的。问题是这需要几个手动步骤,例如运行Git命令并将补丁文件上传到其他人可以下载的地方。
借助适用于VSCode的GitLabWorkflowv3.26.0,现在可以直接在编辑器中创建和应用补丁。新GitLab:Createsnippetpatch命令在编辑器中创建一个包含更改的补丁,并将该补丁作为GitLab代码段上传。
任何人都可以在项目的代码片段中搜索补丁,并使用GitLab:Applysnippetpatch命令直接在VSCode中应用它们。然后可以将应用的更改提交给MR。
在可读的表格视图中显示CSV文件
CSV(逗号分隔值)文件中的数据在显示为包含列和行的表格时更容易理解,尤其是在文件很大的情况下。之前CSV信息在GitLab存储库中显示为原始文本。CSV现在会被渲染为表格,RAW视图表示实际的逗号分隔值。
Wiki内容编辑器中的新内容类型
GitLab14.0,在Wiki中引入了内容编辑器,这是一个新的WYSIWYGMarkdown编辑器,支持粗体、斜体、code、引号和链接等基本内容类型。在14.1中,新添加了使用删除线格式化文本和插入水平线的功能。添加这些常用的内容类型使我们更接近我们的目标,即在不学习Markdown的情况下为所有用户提供丰富的编辑体验,完全支持GitLabFlavoredMarkdown规范,使其成为Wiki的默认编辑体验。
从管道编辑器访问CI/CD模板库
模板为用户提供了一种熟悉GitLabCI/CD的简单方法。GitLab中有大量模板,但访问它们并不直观。在此版本中,新添加了一种从管道编辑器直接导航到模板库的方法。这使得浏览GitLab可用的不同模板变得容易,因此可以更轻松地将相关部分直接复制并粘贴到您的管道配置中。
修复创建/编辑/删除发布权限以匹配标签创建权限
在GitLab14.1中,正在修复创建/编辑/删除发布权限以匹配标签创建权限,以便用户拥有一致的体验。此错误修复单独突出显示,因为对于具有与受保护标签关联的版本的项目,用户必须对版本和受保护标签具有写访问权限才能访问该版本。
可在用户个人资料快照中查看的代词
现在,当将鼠标悬停在问题或合并请求上的某人姓名上时,可以在用户个人资料的快照视图中看到代词。这有助于用户使用正确的代词更好地回应评论,而无需导航到用户的个人资料。
Vault集成与环境变量支持(PREMIUM)
通过使用GitLabVault集成,Vault用户可以轻松地从GitLabCI/CD中检索机密。集成最初创建了file类型秘密变量,这种方法有一些缺点。为了克服这些问题,引入了一个新的布尔file关键字,可以在其中指定返回的变量是应该存储为普通环境变量还是文件。
此功能需要GitLabRunner版本14.1.0。为了向后兼容,默认情况下将变量存储为文件类型(file:true)。
VSCode中合并请求审查的注释指示器
在VisualStudioCode中响应对合并请求的反馈时,要知道哪些文件有注释并不容易。在GitLab工作流程v3.24.0,现在显示哪些文件具有的合并请求评论。有助于轻松识别可能需要查看的文件,以解决他们的意见。
默认分支名称重定向
此前,当项目重命名默认分支时,当前URL将导致NotFound.当尝试在分支之间导航时,这是一种令人沮丧的体验。现在,如果导航到默认分支已重命名的文件或目录路径,将被自动重定向到更新后的路径。
GitHub格式的锚链接正确突出显示
直接链接到单行突出显示的代码或文本支持单行协作,但讨论通常涉及多行代码或文本。某些代码编辑器插件(例如用于JetBrainsIDE的GitLink)从多行的选定范围生成锚链接。以前,不能在GitLab存储库中使用此类链接,因为GitLab和GitHub的锚链接格式不兼容,以突出显示多行。以前,只有在GitLab中手动修改不兼容的URL才能突出显示多行。GitLab现在支持GitLab和GitHub格式,用于覆盖多行的代码突出显示锚链接。
用户设置显示绝对时间
GitLab在很多地方显示相对时间(例如,30分钟前)。现在可以更改用户配置文件首选项以显示绝对时间,
绝对时间尊重的浏览器设置,并根据首选区域设置格式日期和时间,例如,英式英语而不是美式英语。这个新的显示选项为需要它的用户提供了更多信息一目了然,以用于工作流,例如将GitLab中的操作与外部系统相关联。
默认启用GraphQLRunnerAPI
以前,要以编程方式管理Runner,必须使用RESTAPI获取和操作数据。作为改进Runner管理计划的一部分,正在实施将GraphQL作为在Runner的管理区域中提供更好的用户体验的一个基本元素。在新版本中,可以使用GraphQL查询和更改以编程方式管理GitLab实例的运行程序。
限制团体和项目的Runner注册
现在,可以默认在GitLab实例中在组和项目级别注册Runner。对于一些安全控制比较严格的组织,管理员需要限制项目和组运行器的注册。此社区贡献在管理区域中添加了两个配置选项,以便可以在项目和组级别关闭Runner注册选项。
更新管理区域的Runner页面
现在,可以从管理区域的Runne页面管理GitLab实例中的所有Runner。但是,此页面上的功能对于管理和操作大量Runner的GitLab管理员没有帮助。在许多计划的迭代中的第一个中,管理区域的Runners页面现在使用Vue.js和GraphQL。在此版本中,会注意到列表和详细信息视图现在与GitLabUI的其他区域一致。这种新架构使能够拥有更具交互性的UI、更快地迭代并添加新特性和功能,以帮助大规模管理和操作运行器。
从流水线编辑器中的分支工作
以前,只能使用管道编辑器来处理项目默认分支中的管道配置。在新版本中,向管道编辑器添加了一个分支选择器。现在,可以从任何喜欢的分支使用管道编辑器,这使得在默认分支上实现更改之前测试更改变得更加容易。
问题中的相关功能标志(PREMIUM)
在GitLab13.2中,我们添加了将问题与功能标志相关联的功能。在此版本中,我们添加了将功能标志与问题相关联的功能。一个问题通常有“为什么”的上下文。允许用户能够从问题导航到功能标志,然后再返回将使用户能够了解功能标志的用途的完整上下文。
支持基于UBI的容器扫描镜像(ULTIMATE)
GitLab现在支持容器扫描镜像的通用基线镜像(UBI)版本。默认情况下,GitLab容器扫描在基于Alpine的映像上运行。但是,可能更喜欢或要求它在基于UBI的映像上运行。
注册功能(ULTIMATE)
注册功能为运行GitLabEE免费、自建实例用户引入了通过在GitLab注册并通过ServicePing共享活动数据来访问付费功能的能力。引入的第一个功能是来自GitLab的电子邮件,使实例管理员能够向其实例内的用户发送电子邮件。
GitlabRunner14.1
同期还发布了GitLabRunner14.1其中新添加的功能和更新包括:
添加对WindowsServer版本20H2(半年频道)的支持。
将作业负载传递给GitLabRunner自定义executor。
停止将Docker镜像拉取视为运行器系统故障。
Bug修复:
Docker作业失败,退出代码为。
修复大日志行的跟踪短写。
Omnibus改进
综合改进
GitLab14.1包括Mattermost5.36,这是一个开源Slack替代品,其最新版本包括添加匈牙利语言支持、Focalboard项目管理集成(测试版)等。该版本还包括安全更新,建议从早期版本升级。
GitLab14.1还引入了为不使用Geo或多节点设置的全新单节点安装选择加入PostgreSQL13的功能。
安全和合规性审计
快速访问合规报告条目(ULTIMATE)
合规性仪表板引入了一个新的快速访问视图,可查看合并请求。单击列表中的合并请求将打开视图。直接在合规性仪表板内轻松快速查看合并请求的状态和详细信息。
这有助于通过显示有关每个合并请求的信息(例如作者、标题、批准者、评论者等)来节省时间。不再需要单独打开每个合并请求来查看该信息。合规团队可以快速查看合并请求的完整列表并找到需要