百度360必应搜狗淘宝本站头条
当前位置:网站首页 > IT知识 > 正文

GitLab 15.1发布,Python notebook图形渲染和SLSA 2级构建工件证明

liuian 2025-01-23 18:41 12 浏览

上周,按照管理Gitlab发布了新的一个月度版本 15.1,新版本中新增加了SAML Group Sync、SLSA 2 级构建工件证明、包含CI/CD 配置的链接、通过 DORA指标增强对价值流的可见性等。更多功能请和虫虫一起学习。

GitLab 15.1主要改进

SAML组同步(PREMIUM)

新版本中可以使用SAML组链接将身份提供者中的组映射到自建的GitLab实例组。以前,该功能仅适用于GitLab Saas。当用户通过其SAML提供程序登录到GitLab时,组成员资格会更新。

新功能减少了GitLab管理员的工作量。

使用DORA指标提高对价值流的可见性(PREMIUM)

通过将四个DORA 指标图块添加到价值流分析仪表板,现在可以跟踪从构思到客户交付的团队绩效和价值流。

此外, DORA Time to restore service指标也添加了新的趋势图,以提供对软件稳定性和可靠性趋势的洞察。这个新图表显示了有关组织需要多长时间才能从生产故障中恢复的信息。

这是GitLab中开箱即用的第三个DOR图表。未来计划将继续提高DORA指标的可见性,并为第四个指标添加图表:更改失败率。

构建工件的SLSA-2证明

软件工件的供应链级别(SLSA)是一个安全框架,有助于确保软件供应链的安全性和完整性。默认情况下,GitLab Runner 现在能够为构建工件生成和生成符合SLSA-2的证明元数据。

如果工件存储在注册表中,则证明元数据与工件一起存储在该注册表中。否则,元数据将呈现在与工件一起存储的纯文本.json文件中。

这个新的证明信息可以帮助用户更轻松地验证构建工件没有被篡改。要启用该功能,只需在.gitlab-ci.yml文件配置:

RUNNER_GENERATE_ARTIFACTS_METADATA = "true"

https://youtu.be/MlIdqrDgI8U

管道编辑器链接到包含的CI/CD配置

典型的CI/CD配置使用include关键字来导入存储在其他文件或CI/CD模板中的配置。但是,在编辑或故障排除配置时,可能很难理解所有配置如何协同工作,include配置在.gitlab-ci-yml中不能直接查看。

在新版本中,将所有包含的配置文件和模板的链接添加到管道编辑器。现在,可以轻松访问和查看管道使用的所有CI/CD配置,从而更轻松地管理大型和复杂的管道。

API包含有关谁添加了成员​的其他详细信息

成员API现在返回有关谁将用户添加到新created_by字段中的项目或组的更多信息。

改进了价值流分析中的洞察发现

价值流分析仪表板对每个阶段的数据的方式进行了多项增强。在阶段表中,新添加Last even列以显示最近的工作流事件,可以按持续时间对项目进行排序。

这些更改使用户可以更轻松地重新安排事件并更快地发现见解。这些见解可能用于检测减缓交付速度的瓶颈,或寻找减少软件供应链每个阶段所花费时间的机会。

使用API按ID搜索PAT

用户现在可以通过PAT ID 搜索其个人访问令牌 (PAT)。之前,用户只能用 API列出所有的个人访问令牌。而没有接口提供查询。

GitLab Workflow

GitLab Workflowfor VS Code 的入门一直具有挑战性:安装扩展程序,只是为了了解需要遵循几个额外的步骤才能正确设置扩展程序。入门最困难的方面是生成具有正确范围的个人访问令牌并将其添加到扩展中。

GitLab Workflow 的 v3.47.0版本现在支持GitLabOAuth,无需手动生成令牌。这使得VS Code中更轻松地开始使用GitLab。

查看组项目的共享运行器使用情况

对公共项目使用共享SaaS运行程序具有与项目所在的相应层相同的CI/CD时间限制。管理组的用户可以看到整个组的总runner使用情况,但无法在一个地方查看单个项目的使用情况。这使得很难确定组内哪些项目使用的CI/CD时间最多。

新版本中,可以按项目查看组的SaaS运行程序使用情况,就像在个人命名空间中一样。现在可以更轻松地找到使用最多CI/CD项目,并在必要时提高其管道效率。

使用GraphQL Release API创建带注释的标签

以前,只能在使用GraphQL API创建发布时创建轻量级标签。新版中可以添加一个可选tagMessage参数以在创建发布时创建带注释的标签。可以将相关信息与新标签一起包含在内,因此下游用户和应用程序可以拥有额外的上下文。

通过用户API部署密钥

以前,要为一组项目启用部署密钥,需要管理员访问权限才能检索id部署密钥。

此版本添加了一个新的API 接口

GET /users/:id_or_username/project_deploy_keys

检索给定用户可访问的所有密钥,因此无需等待管理员即可完成此任务。在未来的迭代中,API 还将包括公共部署密钥。

改进GitLab Saas的 SAML Group Link 稳健性(PREMIUM)

以前,GitLab群组维护者必须确保为所有使用SAML登录的用户创建群组链接。否则,不在任何链接组中的用户可以成功进行身份验证,但会立即删除他们的访问权限和 SAML 身份。

现在,用户不会被删除,而是自动分配了默认角色。这减轻了组维护者必须确保每个用户都有一个组链接的负担。

Python notebook MR中的渲染图像

Python notebook是数据科学家和机器学习工程师工作流程的关键。这些文件通常通过静态图像显示图表和图形,以帮助可视化笔记本。

在此版本中,在合并请求和提交视图中可以呈现这些图像,从而在查看代码更改(包括带有图像的Python笔记本)时提供更好的用户体验。

从管道图中重试下游管道

以前,要重试下游管道,必须导航到管道并选择重试。这行得通,但是当有多个下游管道时,这是一个具有挑战性的体验。必须进入要重试的每个单独的管道并找到重试选项,这很麻烦。

在新版本中,通过添加直接从管道图重试下游管道的选项来改进用户体验,而无需进入每个管道的详细信息页面。

允许CI_JOB_TOKEN对 Release Links API 进行身份验证

以前,Release links API 只接受个人访问令牌或项目访问令牌进行身份验证。通过此更新,CI_JOB_TOKEN现在接受a进行身份验证,以与 API 一起使用来操 GitLab发布链接。

使用 Releases API 创建带注释的标签

以前,只能在使用Releases API创建发布时创建轻量级标签。新版本中可选tag_message参数以在创建发布时创建带注释的标签。这使能够将相关信息与新标签一起包含在内,因此下游用户和应用程序可以拥有额外的上下文。

强制停止环境

在15.1中, force为停止环境 API 调用添加了一个选项。这允许在不需要on_stop运行这些定义的操作的情况下删除活动环境而不运行指定的作业。

Kubernetes的GitLab代理支持代理连接

许多用户需要代理才能将 ubernetes集群连接到GitLab。之前,Kubernetes 的GitLab代理的默认安装方法不支持代理连接。现在,可以使Helm包HTTP_PROXY中的环境变量agentk来支持代理连接。

Omnibus套件更新

GitLab 15.1中Mattermost版本更新为6.7,其最新版本包括 Playbooks 任务到期日期等等功能,另外还有安全更新,建议从早期版本升级。

Debian 9 (stretch) 将于2022 6月终止长期支持。因此,GitLab 15.1将停止在Debian 9 (stretch) Omnibus安装包。

Gitlab Runner 15.1

同期还还发布了GitLab Runner 15.1。新功能包括:

Docker执行器中使用Podman作为容器运行时,添加软件证明(元数据)以在 GitLab CI 中启用 SLSA 2

Bug修复

Kubernetes 执行器忽略Docker ENTRYPOINT的runner助手镜像。GitLab Runner 15.0.0 的 Docker Hub镜像只有amd64、没有arm64或ppc64le

GitLab Chart改进

Helm图表中默认启用Kubernetes代理服务器

在自建实例中使用Kubernetes代理的第一步是启用代理服务器,这是Kubernetes代理的后端服务。在GitLab 14.8中,对Omnibus的安装启用了代理服务器。

该功能在过去几个月中已经成熟,因此现在在GitLab Helm中默认启用代理服务器,以简化GitLab管理员的设置。除了默认启用之外,代理服务器还接受各种配置选项以根据您的需要对其进行自定义。

kubectl对代理 CI/CD 工作流程的更多要求

如果使用GitLab Kubernetes代理和GitLab CI/CD,之前无法使用kubectl exec、attach、cp或port-forward调用。基本中。基于SPDY协议支持这些调用。如果负载均衡器或反向代理支持SPDY,现在可以在CI作业中使用kubectl exec、attach、cp或port-forward。GitLab 的 Helm Chart 和 Linux (Omnibus) 安装都使用 NGINX 并配置为支持开箱即用的 SPDY。

不幸的是,一些云供应商不支持 SPDY。GitLab正在与Kubernetes社区合作,在Kubernetes中提供Websockets支持,这将成为许多云托管 GitLab 实例的解决方案,包括GitLab SaaS。

安全和合规性

启用FIPS的红帽UBI依赖扫描镜像(PREMIUM)

Java依赖扫描(gemnasium-maven) 现在可在启用FIPS的Red Hat UBI镜像上使用。启用FIPS模式后,该镜像使RedHat UBI 8 OpenJDK包,而不是asdf-java默认使用的不符合FIPS的包。启用FIPS模式后,仅支持Java 7、11和17。

要开始使用符合FIPS的依赖扫描镜像进行扫描,只需在CI/CD文件中包含依赖扫描模板并将DS_IMAGE_SUFFIX变量设置为"-fips".

静态分析分析器更新

GitLab 静态分析包括GitLab 静态分析团队积极管理、维护和更新的许多安全分析器。15.1版本里分析器更新主要变化:

Kics分析器更新到 1.5.0 版:

为 Ansible、CloudFormation、Docker Compose、Kubernetes 和 Terraform 添加82个新查询(规则);

修复/更新现有查询;

修复扫描和分析中的错误;

提高性能。

秘密检测分析器:新版本提供更好的离线支持和更轻松的调试:

改进日志记录;

git fetch如果失败,请使用存储库的签出副本;

如果自动差异检测失败,则回退到扫描最新提交;

安全代码扫描分析器

Semgrep分析器更新为使用最新版本的 GitLab 管理的规则集。

删除到Gosec规则 ID G104 的不正确映射。

添加规则G402 以检测1.2之前的TLS版本的使用。

SpotBugs分析器已更新至 SpotBugs 4.7.0和find-sec-bugs 1.12.0。主要更新:

更新gradle并grails支持 Java 17;

将 Java 17 设置为系统范围的默认版本;

对 Gradle 项目使用“assemble”任务,而不是“build”,以支持自定义GRADLE_CLI_OPTS;

添加额外的检测规则。

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

防止用户使用已知的不安全公钥

当尝试将新的SSH密钥添加到GitLab帐户时,会根据已知已泄露的SSH 钥列表检查该密钥。用户无法将此列表中的密钥添加到任GitLab 帐户。这有助于保护您GitLab实例。

在组级别阻止Git访问协议

为了提高安全性,现在可以阻止非组级别使用的Git访问协议。这类似于 GitLab 管理员设置,但现在可以按组设置。默认情况下,HTTP(S)和SSH均已启用。在组的Settings > General > Permissions中,滚动到启用git访问协议并删除不使用的任何协议。

查看runner的升级状态(ULTIMATE)

随着组织中安装的运行器数量增加到数百或数千,确定哪些运行器已过时变得更具挑战性。未能更新的运行器的GitLab Runner版本不仅意味着没有使用最新功能,还可能意味着可能存在安全隐患。

在管理区域中,现在可以一目了然地查看环境中哪些运行器已过时。徽章指示是否推荐升级(针对补丁)和/或升级是否可用(针对次要或主要升级)。新功能可以更轻松地维护runner并降低使用过时版本的风险。

可选择忽略扫描 NPM 开发依赖项(ULTIMATE)

GitLab Dependency Scanner分析项目中使用的应用程序库中的漏洞,无论这些库是常规依赖项还是开发依赖项。一些用户希望只关注常规依赖项,而忽略在开发依赖项中发现的任何漏洞。

现在可以通过将DS_INCLUDE_DEV_DEPENDENCIES变量设置为NPM项目从扫描中排除这些开发依赖项"false"。

容器扫描分析器更新

GitLab Container Scanning支持Trivy和Grype分析器。新版中更新如下:

Trivy分析器更新到版本0.28.1。

Grype分析器更新到版本0.38.0。

CS_DISABLE_LANGUAGE_VULNERABILITY_SCAN: "false"添加了对设置变量时检测.NET 包中的漏洞的支持。

这些更新带来了额外的覆盖范围、错误修复和改进。

GitLab Geo集群

Geo通过复制视图的链接提高可观察性(PREMIUM)

Geo链接直接从主站点的管理仪表板链接到辅助站点上每种数据类型的复制视图。现在可以使用主站点管理仪表板上的可点击链接深入了解辅助站点上每种数据类型的单个对象列表。

这将有助于解决辅助站点的复制和验证问题,允许系统管理员触发重新同步并重新验证任何无法同步的对象。它还通过显示进度详细信息以及每个对象的下一次同步尝试、上次成功同步和验证时间等信息,提高了复制和验证过程的整体可观察性。

Geo支持 OCI 容器镜像(PREMIUM)

在GitLab 15.1 中,Geo支持OCI 容器镜像格式的复制。OCI容器镜像越来越受欢迎,现在可以跨地理站点复制这些镜像,类似于Docker manifest V1和 V2 镜像。

对特定于站点的URL的Geo代理支持(PREMIUM)

在GitLab 14.6 中,Geo 允许辅助站点透明地将写入请求代理到主站点,同时加速大多数读取请求。到目前为止,该能需要配置统一的URL。

在GitLab 15.1中,Geo 的Web UI代理功能默认使用辅助站点特定URL。喜欢为网站维护不同URL的客户现在可以利用完整的Web UI体验。

对象存储复制的本机Geo支持普遍可用(PREMIUM)

经过广泛的测试和修复一些突出的问题,对象存储复制的原生Geo支持现已普遍可用。Geo现在原生支持在对象存储中复制数据,例如LFS对象、作业工件和上传。以前,可以Geo 配置为使用对象存储,但是内容的复制始终留给对象存储提供者。当用户依赖不支持任何复制逻辑的本地存储设备时,这会施加限制。

可以使用Geo将数据复制到不同地区的不同对象存储提供商(例如欧洲的 Amazon 和美国的 Microsoft),以及使用本地存储(例如通过 MinIO)并使用 Geo 将数据复制到辅助网站。

数据验证将在以后的迭代中添加。

Bug修复

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

PyPI包不符合PEP 503。

审核员无法查看依赖代理页面。

未达到 Debian 版本的最后一个正则表达式组。

项目的非成员可以订阅新的发布通知,但不会发送给他们。

当作业存在结构完整性问题时,部署记录保持在运行状态。

修复标签页上关联的发布链接。

从问题列表中删除需求。

Epic 批量更新意外复制和删除标签。

错误:NoMethodError: undefined method 'key_from_fallback_message_id' for Gitl。

错误:Encoding::UndefinedConversionError: "\xEF" from ASCII-8BIT to UTF-8。

错误:NoMethodError: undefined method 'find' for nil:NilClass。

切换到旧版本时,新设计版本消失。

在导航栏中显示活动的CRM路线。

组访问令牌(机器人用户)不应是最后一个明确的顶级组所有者。

修复2FA提示阻止QR码扫描。

传递COVFUZZ_ADDITIONAL_ARGS到下划线模糊器引擎。

身份验证配置字段无法正确处理转义序列 (\H)。

错误:ActiveRecord::NotNullViolation: PG::NotNullViolation: ERROR: null value。

确保在后续扫描中显示的已解决漏洞标记为已检测到。

author_id在数据库中设置时删除用户失败。

GitLab 14.5 迁移UpdateVulnerabilityOccurrencesLocation不会将自身标记为完成。

审计员看不到项目政策。

项目导出失败。

Gitlab 迁移的合并请求评论导入不一致。

迁移组和项目时的竞争条件。

删除时未从 Elasticsearch 中清除提交。

用户未登录时导航栏搜索字段无法正确展开。

在 GitLab 15.0 中使用 OpenSearch 在 UI 中显示错误“Elasticsearch version not co。

跨具有不同默认分支的多个存储库进行查询时,代码搜索返回 404。

CI_DEPLOY_*gitlab-deploy-token如果在组设置中定义了变量,则未设置。

自定义SVG徽标在某些邮件客户端中未正确显示。

未经身份验证访问 Terraform 模块的行为不一致。

500删除基于证书的 Kubernetes 集群时出错。

KAS不使用相对URL。

内部服务器关闭顺序不正确。

从v14.8.4升级到v14.9.1时的Redmine 集成问题。

测试报告屏幕应包括矩阵 ID 作为作业名称的一部分,以区分矩阵元素。

覆盖图上的x轴不成比例。

未显示JUnit测试报告。

在问题板侧边栏上,受让人弹出框不显示数据。

Vue 问题列表过滤栏中的标记行为不正确。

迭代报告错误。

错误:ActiveModel::MissingAttributeError: missing attribute: noteable_id。

不发送“漏洞”Slack 通知。

性能改进

在GitLab15.1 中,在问题、项目、里程碑等提供了性能改进,其主要改进包括:

减小包页面包大小;

优化Notes::CopyServiceSQL 查询;

提高 Elasticsearch 限制项目和命名空间检查的性能;

使用 Kubernetes 代理提高部署速度;

问题创建很慢,因为它尝试更新项目计数器缓存;

转换为新的 GraphQL 解释器运行时。

可用性改进

在GitLab 15.1 中,在问题、项目、里程碑等提供了可用性改进。其主要改进包括:

.gitlab-ci.yml架构缺少对!reference。

重新设计包细节加载体验。

改进容器注册表复制工具提示。

使用时澄清allow_failure默认值rules。

在组使用配额页面上显示子组中的项目。

按使用配额页面上使用的分钟数对项目进行排。

允许OPTIONSOAuth2 令牌接口的方法。

功能删除和变更

相关信息请查看官方页面实时在线信息。

升级更新

Omnibus

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

yum updata/install gitlab-ce

就能自动完成升级。

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

相关推荐

【常识】如何优化Windows 7

优化Windows7可以让这个经典系统运行更流畅,特别是在老旧硬件上。以下是经过整理的实用优化方案,分为基础优化和进阶优化两部分:一、基础优化(适合所有用户)1.关闭不必要的视觉效果右键计算机...

系统优化!Windows 11/10 必做的十个优化配置

以下是为Windows10/11用户整理的10个必做优化配置,涵盖性能提升、隐私保护和系统精简等方面,操作安全且无需第三方工具:1.禁用不必要的开机启动项操作路径:`Ctrl+S...

最好用音频剪辑的软件,使用方法?

QVE音频剪辑是一款简单实用的软件,功能丰富,可编辑全格式音频。支持音频转换、合并、淡入淡出、变速、音量调节等,无时长限制,用户可自由剪辑。剪辑后文件音质无损,支持多格式转换,便于存储与跨设备播放,满...

Vue2 开发总踩坑?这 8 个实战技巧让代码秒变丝滑

前端开发的小伙伴们,在和Vue2打交道的日子里,是不是总被各种奇奇怪怪的问题搞得头大?数据不响应、组件传值混乱、页面加载慢……别慌!今天带来8个超实用的Vue2实战技巧,每一个都能直击痛...

Motion for Vue:为Vue量身定制的强大动画库

在前端开发中,动画效果是提升用户体验的重要手段。Vue生态系统中虽然有许多动画库,但真正能做到高性能、易用且功能丰富的并不多。今天,我们要介绍的是MotionforVue(motion-v),...

CSS view():JavaScript 滚动动画的终结

前言CSSview()方法可能会标志着JavaScript在制作滚动动画方面的衰落。如何用5行CSS代码取代50多行繁琐的JavaScript,彻底改变网页动画每次和UI/U...

「大数据」 hive入门

前言最近会介入数据中台项目,所以会推出一系列的跟大数据相关的组件博客与文档。Hive这个大数据组件自从Hadoop诞生之日起,便作为Hadoop生态体系(HDFS、MR/YARN、HIVE、HBASE...

青铜时代的终结:对奖牌架构的反思

作者|AdamBellemare译者|王强策划|Tina要点运维和分析用例无法可靠地访问相关、完整和可信赖的数据。需要一种新的数据处理方法。虽然多跳架构已经存在了几十年,并且可以对...

解析IBM SQL-on-Hadoop的优化思路

对于BigSQL的优化,您需要注意以下六个方面:1.平衡的物理设计在进行集群的物理设计需要考虑数据节点的配置要一致,避免某个数据节点性能短板而影响整体性能。而对于管理节点,它虽然不保存业务数据,但作...

交易型数据湖 - Apache Iceberg、Apache Hudi和Delta Lake的比较

图片由作者提供简介构建数据湖最重要的决定之一是选择数据的存储格式,因为它可以大大影响系统的性能、可用性和兼容性。通过仔细考虑数据存储的格式,我们可以增强数据湖的功能和性能。有几种不同的选择,每一种都有...

深入解析全新 AWS S3 Tables:重塑数据湖仓架构

在AWSre:Invent2024大会中,AWS发布了AmazonS3Tables:一项专为可扩展存储和管理结构化数据而设计的解决方案,基于ApacheIceberg开放表格...

Apache DataFusion查询引擎简介

简介DataFusion是一个查询引擎,其本身不具备存储数据的能力。正因为不依赖底层存储的格式,使其成为了一个灵活可扩展的查询引擎。它原生支持了查询CSV,Parquet,Avro,Json等存储格式...

大数据Hadoop之——Flink Table API 和 SQL(单机Kafka)

一、TableAPI和FlinkSQL是什么TableAPI和SQL集成在同一套API中。这套API的核心概念是Table,用作查询的输入和输出,这套API都是批处理和...

比较前 3 名Schema管理工具

关注留言点赞,带你了解最流行的软件开发知识与最新科技行业趋势。在本文中,读者将了解三种顶级schema管理工具,如AWSGlue、ConfluentSchemaRegistry和Memph...

大数据技术之Flume

第1章概述1.1Flume定义Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统。Flume基于流式架构,灵活简单。1.2Flume的优点1.可以和...