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

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

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

上周,按照管理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

相关推荐

2023年最新微信小程序抓包教程(微信小程序 抓包)

声明:本公众号大部分文章来自作者日常学习笔记,部分文章经作者授权及其他公众号白名单转载。未经授权严禁转载。如需转载,请联系开百。请不要利用文章中的相关技术从事非法测试。由此产生的任何不良后果与文...

测试人员必看的软件测试面试文档(软件测试面试怎么说)

前言又到了毕业季,我们将会迎来许多需要面试的小伙伴,在这里呢笔者给从事软件测试的小伙伴准备了一份顶级的面试文档。1、什么是bug?bug由哪些字段(要素)组成?1)将在电脑系统或程序中,隐藏着的...

复活,视频号一键下载,有手就会,长期更新(2023-12-21)

视频号下载的话题,也算是流量密码了。但也是比较麻烦的问题,频频失效不说,使用方法也难以入手。今天,奶酪就来讲讲视频号下载的新方案,更关键的是,它们有手就会有用,最后一个方法万能。实测2023-12-...

新款HTTP代理抓包工具Proxyman(界面美观、功能强大)

不论是普通的前后端开发人员,还是做爬虫、逆向的爬虫工程师和安全逆向工程,必不可少会使用的一种工具就是HTTP抓包工具。说到抓包工具,脱口而出的肯定是浏览器F12开发者调试界面、Charles(青花瓷)...

使用Charles工具对手机进行HTTPS抓包

本次用到的工具:Charles、雷电模拟器。比较常用的抓包工具有fiddler和Charles,今天讲Charles如何对手机端的HTTS包进行抓包。fiddler抓包工具不做讲解,网上有很多fidd...

苹果手机下载 TikTok 旧版本安装包教程

目前苹果手机能在国内免拔卡使用的TikTok版本只有21.1.0版本,而AppStore是高于21.1.0版本,本次教程就是解决如何下载TikTok旧版本安装包。前期准备准备美区...

【0基础学爬虫】爬虫基础之抓包工具的使用

大数据时代,各行各业对数据采集的需求日益增多,网络爬虫的运用也更为广泛,越来越多的人开始学习网络爬虫这项技术,K哥爬虫此前已经推出不少爬虫进阶、逆向相关文章,为实现从易到难全方位覆盖,特设【0基础学爬...

防止应用调试分析IP被扫描加固实战教程

防止应用调试分析IP被扫描加固实战教程一、概述在当今数字化时代,应用程序的安全性已成为开发者关注的焦点。特别是在应用调试过程中,保护应用的网络安全显得尤为重要。为了防止应用调试过程中IP被扫描和潜在的...

一文了解 Telerik Test Studio 测试神器

1.简介TelerikTestStudio(以下称TestStudio)是一个易于使用的自动化测试工具,可用于Web、WPF应用的界面功能测试,也可以用于API测试,以及负载和性能测试。Te...

HLS实战之Wireshark抓包分析(wireshark抓包总结)

0.引言Wireshark(前称Ethereal)是一个网络封包分析软件。网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料。Wireshark使用WinPCAP作为接口,直接...

信息安全之HTTPS协议详解(加密方式、证书原理、中间人攻击 )

HTTPS协议详解(加密方式、证书原理、中间人攻击)HTTPS协议的加密方式有哪些?HTTPS证书的原理是什么?如何防止中间人攻击?一:HTTPS基本介绍:1.HTTPS是什么:HTTPS也是一个...

Fiddler 怎么抓取手机APP:抖音、小程序、小红书数据接口

使用Fiddler抓取移动应用程序(APP)的数据接口需要进行以下步骤:首先,确保手机与计算机连接在同一网络下。在计算机上安装Fiddler工具,并打开它。将手机的代理设置为Fiddler代理。具体方...

python爬虫教程:教你通过 Fiddler 进行手机抓包

今天要说说怎么在我们的手机抓包有时候我们想对请求的数据或者响应的数据进行篡改怎么做呢?我们经常在用的手机手机里面的数据怎么对它抓包呢?那么...接下来就是学习python的正确姿势我们要用到一款强...

Fiddler入门教程全家桶,建议收藏

学习Fiddler工具之前,我们先了解一下Fiddler工具的特点,Fiddler能做什么?如何使用Fidder捕获数据包、修改请求、模拟客户端向服务端发送请求、实施越权的安全性测试等相关知识。本章节...

fiddler如何抓取https请求实现手机抓包(100%成功解决)

一、HTTP协议和HTTPS协议。(1)HTTPS协议=HTTP协议+SSL协议,默认端口:443(2)HTTP协议(HyperTextTransferProtocol):超文本传输协议。默认...