gitlab最新版本 (gitlab推送本地代码)

按照惯例,在上个月22日发布了GitLab又一个年度大把本16.0,本周则发布了16版本系列的第二个月度版本16.1中启用了GitLab的全新的导航系统,让GitLab的用户体验更加无缝丝滑,还有其他更多功能变化和更新,请和虫虫一起学习。

gitlab最新版本,gitlab推送代码

主要功能改进

全新导航体验

GitLab 16.1带来全新的导航体验。已默认为所有用户启用该功能。主要变化有:

首先,转到用户界面右上角的头像,就可以打开“新导航”开关。

新的导航旨在解决三个关键的反馈问题:导航会让人不知所措,很难从上次停下的地方继续,而且无法自定义导航。

新的导航包括简化和改进的左侧边栏,可以在其中:

固定经常访问的项目。

完全隐藏侧边栏并“偷看”它回到视图中。

使用新的“你的工作”和“探索”选项轻松切换上下文、搜索和查看数据子集。

由于顶级菜单项较少,扫描速度更快。

gitlab最新版本,gitlab推送代码

在GitLab中可视化Kubernetes资源

如何检查集群中运行的应用程序的状态?管道状态和环境页面提供有关最新部署运行的见解。在GitLab 16.1中,用户可以查看Kubernetes部署中主要资源的概述。

gitlab最新版本,gitlab推送代码

功能适用于每个连接Kubernetes集群,使用CI/CD集成或者GitOps部署的工作负载都可以。

使用服务帐户进行身份验证(PREMIUM)

在许多用例中,非交互性用户可能需要进行身份验证。以前,根据所需范围,用户可以使用个人、项目或组访问令牌来满足此需求。然而这些令牌确还有不合理之处,因为仍然需要与用户(对于个人访问令牌)或不必要的特权角色(对于组和项目访问令牌)绑定。

gitlab最新版本,gitlab推送代码

新增加的服务账户不与用户绑定,并且范围更细化。服务帐户的创建和管理仅支持API。

GitLab Dedicated现已全面推出(ULTIMATE)

GitLab Dedicated 是综合DevSecOps平台的完全托管、单租户SaaS部署,旨在满足具有严格合规性要求的客户的需求。

由于数据隔离等严格的合规性要求,受到严格监管的行业的客户无法采用多租户SaaS产品。借助GitLab Dedicated,企业可以享受DevSecOps平台的所有优势,包括更快的发布、更好的安全性和更高的开发人员生产力,同时满足数据驻留、隔离和专用网络等合规性要求。

gitlab最新版本,gitlab推送代码

工件页面管理

以前,如果想要查看或管理作业工件,必须转到每个作业的详细信息页面,或使用 API。现在,可以通过“构建”>“工件”访问“工件”页面来查看和管理作业工件。

具有维护者角色的用户也可以使用这个新界面来删除工件。可以删除单个工件,或者手动选择或选中页面顶部的全选选项一次批量删除最多100个工件。

gitlab最新版本,gitlab推送代码

改进的CI/CD变量列表视图

CI/CD变量是所有管道的关键部分,可以在多个位置定义,包括在项目和组设置中。为了准备进行更大的改进,以帮助用户直观地在不同层次结构的变量之间导航,新版本中改进变量列表的可用性和布局。

在GitLab 16.1中,将看到这些改进的第一次迭代。“类型”和“选项”列被合并到一个新的属性列中,该列可以更好地表示这些相关属性。

gitlab最新版本,gitlab推送代码

改进的域验证

域验证在GitLab中具有多种用途。以前,为了验证域,必须完成GitLab Pages向导,即使出于GitLab Pages之外的目的验证域也是如此。

新版本中,域验证位于组级别,并且已得到简化。这使得验证域变得更加容易。

SCIM身份包含在用户API响应中(PREMIUM)

用户API现在可返回用户的SCIM身份。以前,此信息包含在UI中,但不包含在API中。

在GitLab Page中配置静态文件目录

现在可以将GitLab Pages的静态文件目录配置为任何名称(默认情况下public)。这使得将Pages与流行的静态站点框架(例如 Next.js、Astro 或 Eleventy)一起使用变得更加容易,而无需更改其配置中的输出文件夹。

gitlab最新版本,gitlab推送代码

GitLab CLI创建变更日志

更改日志根据项目提交生成全面的更改列表。它们可能难以自动化或查看,并且与GitLab API进行交互。

随着GitLab CLI v1.30.0的发布,用户现在可以直接从shell生成项目的变更日志。

glab changelog generate命令使审查、自动化和发布变更日志变得更加容易。

CI/CD 作业令牌范围API接口

从GitLab 16.0开始,所有新项目的默认CI/CD 作业令牌 (CI_JOB_TOKEN)范围都发生了变化。这提高了新项目的安全性,但为使用自动化创建项目的用户增加了额外的步骤。自动化有时还必须配置作业令牌范围,这只能使用GraphQL(或在 UI 中手动)完成,而不是REST API。

为了使此设置也可以通过REST API进行配置,在16.1中添加了一个新接口来控制作业令牌范围。

在服务台电子邮件中发出URL占位符

对于服务台请求者来说,直接访问服务台问题比仅通过电子邮件与服务台请求交互会更有帮助。新引入了一个新的占位符%{ISSUE_URL},可以在电子邮件模板(例如“谢谢”电子邮件)中使用它,将请求者直接链接到服务台问题。

代码质量分析器更新

GitLab Code Quality 支持集成已经运行的工具,还提供运行CodeClimate扫描系统的CI/CD 模板。16.1版本中发布了基于CodeClimate的分析器的以下更新:

将CodeClimate更新至版本0.96.0。该版本包括:

一个新的插件golangci-lint。

该插件的新可用版本bundler-audit。

添加了对Docker API套接字的可配置路径的支持。

备份增加了跳过项目的能力

内置的备份和恢复工具增加了跳过特定存储库的功能。Rake 任务现在接受以逗号分隔的组或项目路径列表,以便在使用新SKIP_REPOSITORIES_PATHS环境变量进行备份或还原期间跳过。例如,这将允许跳过不随时间变化的陈旧或存档项目,从而:

a) 通过加快备份运行速度来节省时间,

b) 通过不在备份文件中包含此数据来节省空间。

已完成的GitHub项目导入摘要中的更多详细信息

当GitHub项目完成导入时,GitLab会显示导入实体的简单摘要。但是,GitLab没有准确显示哪些GitHub实体导入失败,也没有显示导致导入失败的错误。这使得很难确定导入结果是否令人满意。

在新版本中,扩展了导入摘要,以包含未导入的GitHub实体列表,并在可能的情况下提供GitHub上这些实体的直接链接。GitLab现在还会显示每次失败的错误。这可以帮助了解导入的效果并帮助解决问题。

在管理模式下选择个人访问令牌的管理员访问权限

GitLab管理员可以使用管理模式以非管理员用户身份工作,并在需要时打开管理员访问权限。以前,管理员的个人访问令牌(PAT)始终有权以管理员身份执行API操作。现在,在添加PAT时,管理员可以通过选择管理模式范围来决定该 PAT是否具有执行API操作的管理员访问权限。管理员必须为实例启用管理模式才能使用此功能。

为设计上传添加描述

之前,设计上传没有元数据来解释其目的或上传原因。新版中添加了一个文本框作为描述,以便可以帮助用户更好地理解图像。

gitlab最新版本,gitlab推送代码

在合并请求中对整个文件进行评论

合并请求现在支持对整个文件进行注释,因为并非所有合并请求反馈都是特定于行的。如果文件被删除,可能需要有关原因的更多信息。可能还想提供有关文件名的反馈或有关结构的一般评论。

gitlab最新版本,gitlab推送代码

美化CI/CD管道和作业的UI

GitLab最常用的功能之一是CI/CD。在16.1中,重点改进了CI/CD管道和作业列表视图以及管道详细信息页面的可用性和体验。现在可以更轻松地找到寻找的信息。

CI/CD:needs用于rules

needs:关键字定义作业之间的依赖关系,可以使用它将作业设置为不按阶段顺序运行。在新版本中,添加了针对特定条件定义该关系的功能rules。当条件与规则匹配时,作业的needs配置将完全替换为needs规则中的配置。当作业可以比正常情况更早开始时,这可以帮助根据定义的条件加快管道速度。还可以使用此功能强制作业等待较早的作业完成后再开始,现在有更灵活的needs选择。

增加 Linux 上 GitLab SaaS 运行程序的存储空间(PREMIUM)

最近在Linux上扩大了GitLab SaaS运行程序的medium vCPU和RAM规模后,新版本还增加了机器类型的存储空间large。

现在,可以无缝构建、测试和部署需要与 GitLab CI/CD 完全集成的安全、按需GitLab Runner Linux环境的大型应用程序。

从组或子组安装npm软件包

可以使用项目的包注册表来发布和安装npm包。只需使用访问令牌(个人、作业、部署或项目)进行身份验证,然后开始将包发布到GitLab项目。

如果项目数量较少,这非常有用。不幸的是,如果有多个项目,可能很快就会发现自己添加了数十甚至数百个不同的源。大型组织中的团队通常将包与源代码和管道一起发布到项目的包注册表中。同时,他们需要能够轻松安装组织中组和子组内其他项目的依赖项。

为了使项目之间共享包更容易,现在可以从组安装包,这样就不必记住哪个包位于哪个项目中。使用选择的身份验证令牌,在将的组添加为npm软件包的源后,可以安装任何组npm软件包。

在服务台问题中将外部用户显示为评论作者

当请求者回复服务台电子邮件时,服务台代理了解谁发表了评论非常有用。但由于请求者可能是没有GitLab账户或无法访问GitLab项目的外部用户,因此这些评论之前被归因于GitLab支持机器人。从现在开始,请求者的电子邮件回复将归属于外部用户,从而更清楚地表明谁在GitLab问题中发表了评论。

gitlab最新版本,gitlab推送代码

Omnibus套件更新

GitLab 16.1中添加了对刚刚发布的Debian 12 Bookworm构建和发布包的支持。

GitLab Runner 16.1

同期发布了 GitLab Runner 16.1,新功能和变化如下

适用于Azure虚拟机的 GitLab Runner Fleeting 插件(实验性)。

Runner详细信息-整合共享配置的Runner

新的运行程序创建方法使能够在可能需要注册多个具有相同功能的运行程序的场景中重复使用运行程序配置。使用相同身份验证令牌注册的运行者共享配置,并在新的详细视图中分组。

gitlab最新版本,gitlab推送代码

GitLab图表改进

GitLab 16.1中将busybox Docker 镜像替换为gitlab-base Docker镜像,以便与其他GitLab Docker镜像共享层。该实现将gitlab-base其视为辅助镜像(如kubectl和certificates),并具有可选的本地覆盖。

Geo高可以架构部署

Geo 验证设计存储库(ULTIMATE)

将设计添加到问题时,将创建或更新设计Git存储库,并创建LFS对象和上传(用于缩略图)。Geo已经验证了LFS对象和上传,现在它还验证了设计存储库。现在,设计管理的所有基础数​据都经过验证,可以确保设计数据在传输或静态时不会被损坏。如果Geo用作灾难恢复策略的一部分,这可以保护免遭数据丢失。

Geo为所有组件添加了按复制状态进行过滤的功能(PREMIUM)

Geo向自助服务框架管理的所有组件添加了按复制状态进行的过滤。现在,可以按“进行中”、“失败”和“已同步”状态筛选复制详细信息视图中的项目,从而更轻松、更快速地找到无法同步的数据。

Geo ssh代理更改

Geo更改了代理SSH Git推送请求的工作流程。针对辅助站点发出的推送请求现在通过GitLab shell(而不是Puma)代理到主站点。此更改消除了1.0 GB 推送大小限制,该限制阻止大型推送请求成功。推送大小限制现在为 1.86 GB,目标是在未来的版本中取消该限制。在某些情况下,通过 GitLab shell 的新调用流程还将吞吐量提高了50%。这是幕后的改变。无需用户任何行动。

安全和合规性

密码重置电子邮件发送至任何经过验证的电子邮件地址

如果忘记了GitLab密码,现在可以使用任何经过验证的电子邮件地址通过电子邮件重置密码。以前,只有主电子邮件地址用于重置请求。如果主电子邮件收件箱无法访问,会让密码重置过程变得困难。

防止用户删除帐户(PREMIUM)

管理员可以使用新的用户限制配置设置来阻止用户删除其帐户。如果启用此设置,用户将无法再删除其帐户,从而保留可审核的帐户信息。

查看漏洞报告作为可自定义权限(ULTIMATE)

查看漏洞报告的功能现在被拆分为单独的权限,使GitLab管理员和组所有者能够创建具有此权限的自定义角色。此前,查看漏洞报告仅限于开发人员及以上角色。现在,任何用户都可以查看漏洞报告,只需为其分配具有该权限的自定义角色即可。

自动响应泄露的 Google Cloud 机密(ULTIMATE)

新版本已将秘密检测与Google Cloud集成,以更好地保护使用GitLab在 Google Cloud上开发应用程序的客户。现在,如果用户将Google Cloud凭证泄露给GitLab Saas上的公共项目,GitLab可以通过与Google Cloud合作来保护帐户,从而自动保护该组织。

秘密检测会搜索Google Cloud发布的三种类型的秘密:

服务帐户密钥、API密钥和OAuth客户端机密。

公开泄露的秘密在被发现后会发送到Google Cloud。Google Cloud会验证泄露情况,然后努力保护客户帐户免遭滥用。

对于在GitLab 上启用秘密检测的项目,此集成默认处于启用状态。秘密检测扫描可在所有GitLab层中使用,但对泄露秘密的自动响应目前仅在Ultimate 版本项目中可用。

SAST、IaC 扫描和秘密检测中的共享规则集自定义(ULTIMATE)

现在可以设置CI/CD变量,以便在多个项目*共中**享SAST、IaC 扫描或秘密检测的规则集自定义。

共享规则集可以帮助:

禁用不想在项目中关注的预定义规则。

更改预定义规则中的字段(包括描述、消息、名称或严重性)以反映组织首选项。例如,可以调整规则的默认严重性或添加有关如何修复发现结果的信息。

通过添加或替换规则来构建自定义规则集。

个人访问令牌last_used值更新更频繁

个人访问令牌(PAT)的值last_used之前每24小时更新一次。新版本中改成了每10分钟更新一次。这提高了PAT使用情况的可见性,并且在PAT遭到破坏的情况下,还可以降低风险。

重新引入OmniAuth Shibboleth支持

GitLab已重新引入Shibboleth OmniAuth 支持。由于缺乏上游支持,曾在 GitLab 15.9中被删除。由于承接了上游支持,omniauth-shibboleth-redux重新被支持。

SAST规则更清晰的指导和更好的覆盖范围

新版本中将GitLab SAST规则更新为:

更清楚地解释每个规则针对的弱点类型以及如何修复它。到目前为止,已经更新了C、C#、Go 和Java规则的描述和指导文本。

捕获现有Java规则中的其他漏洞。

这些改进是GitLab静态分析和漏洞研究团队之间合作的一部分,旨在改进默认的静态分析规则集。

SAST分析仪更新

GitLab SAST包含许多由GitLab静态分析团队积极维护、更新和支持的安全分析器。在16.1版本里有以下更新:

基于Semgrep的分析器已更新为使用Semgrep引擎版本1.23.0。

用于扫描C、C#、Go和Java的GitLab管理规则的指导并提高了其效率。基于SpotBugs的分析器现在支持通过设置SAST_SCANNER_ALLOWED_CLI_OPTSCI/CD 变量来更改“工作量级别”。

因安全策略批准检查无效而关闭失败(ULTIMATE)

安全和合规策略允许组织在多个项目之间实施检查和平衡,以与其安全和治理计划保持一致。对于用户来说,确保影响政策的变化不会导致护栏倒塌至关重要。通过此更新,无效规则将“失败关闭”,从而阻止 MR,直到解决任何扫描结果策略中的无效规则。

错误修复、性能改进和可用性改进

查看GitLab文档对应部分。

功能删除和变更

功能删除和变更完整列表可以在GitLab文档中查阅。该版本中的主要涉及:

在GitLab Runner中不在支持Windows CMD;

GraphQL中删除dependencyProxyTotalSizeInBytes字段;

不推荐运行单个数据库;

废弃统一审批规则;

提供基于Alpine 3.12、3.13、3.14 的 GitLab Runner镜像。

代码建议(测试版)现已适用于自我管理实例

代码建议(测试版)对GitLab自建实例开放,用户使用该功能时,相关源代*会码**安全地传输到GitLab的基础设施,该基础设施会返回AI生成的代码建议。除了发送来生成代码建议的代码之外,GitLab对自自建实例用户的代码没有任何可见性。GitLab不会保留用户发送的任何客户代码,也不会训练客户数据。有。

升级更新

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

关于升级到 GitLab 16.1 的重要说明

Geo更改了代理SSH Git推送请求的工作流程。针对辅助站点发出的推送请求现在通过GitLab shell(而不是Puma)代理到主站点。此更改消除了1.0 GB 推送大小限制,该限制阻止大型推送请求成功。推送大小限制现在为 1.86 GB,目标是在未来的版本中取消该限制。在某些情况下,通过 GitLab shell 的新调用流程还将吞吐量提高了50%。这是幕后的改变。无需用户任何行动。