沿袭我们的月度发布传统,极狐GitLab 发布了 17.4 版本,该版本带来了当所有检查通过就会自动合并、Web IDE 中的扩展市场现已可用以及获取 Kubernetes 资源事件等几十个重点功能的改进。下面是部分重点功能的详细解读。
关于极狐GitLab 的安装升级,可以查看官方指导文档。
registry.gitlab.cn/omnibus/gitlab-jh:17.4.0-jh.0
helm search repo gitlab-jh
NAME CHART VERSION APP VERSION
gitlab-jh/gitlab 8.4.0 v17.4.0
gitlab-jh/gitlab-runner 0.69.0 17.4.0
|
|
|
|
|
|
|
|
|
|
|
|
当调用 API 去创建 CI/CD 流水线时,可以通过新增的参数 ci_config_path
来动态指定流水线配置文件的地址。这样当同一个项目的多个用户通过 API 创建 CI/CD 流水线时,他们可以分别指定各自流水线的配置文件,互不干扰。
|
|
|
|
|
|
|
|
|
|
|
|
合并请求有许多必须通过的必要检查,才能进行合并。这些检查可能包括审批、未解决的主题、流水线以及其他一些必须要满足的条件。当你负责对代码进行合并时,让你对所有的事件(指合并所需的必要条件)进行追踪是非常困难的,而且也很难知道什么时候应该回来检查一下合并请求是否可以被合并。
现在,极狐GitLab 支持在合并请求中对所有检查进行自动合并。自动合并能够让有权限合并代码的用户将合并请求设置为自动合并,甚至在所有必要检查通过之前。随着合并请求的进行,当最后一个失败检查通过后,合并请求会自动完成合并。
我们真心希望这项改进能够帮你加速你的合并请求流程。
|
|
|
|
|
|
|
|
|
|
|
|
我们很高兴地宣布在极狐GitLab SaaS(JihuLab.com)Web IDE 上正式上线了扩展市场。有了扩展市场,你就可以发现、安装以及管理第三方扩展,并以此来增强你的研发体验。但是有一些扩展和 web 专属的版本不相兼容,因为它们需要本地运行时环境。然而,你依旧可以从数千款扩展中找到你想要的,并且用它们来提高你的生产力或者对工作流进行自定义。
扩展市场默认情况下是禁用的。如果想用的话,你可以在你用户偏好设置中的集成部分中来开启扩展市场功能。对于企业用户来讲,只有顶级用户群组中拥有所有者角色的用户才能够开启这一功能。
|
|
|
|
|
|
|
|
|
|
|
|
极狐GitLab 为你的 Kubernetes pod 和流日志提供一个实时的视角。然而直到现在,我们都无法从 UI 上为你展示与资源相关的事件信息,因此,你不得不使用第三方工具来对 Kubernetes deployment 进行调试。此版本在 Kubernetes 仪表盘的资源详情视图中新增了事件功能。
这是我们首次将事件添加到 UI 上。当前,每当你打开资源详情视图的时候都会对事件进行刷新。
|
|
|
|
|
|
|
|
|
|
|
|
之前,为了创建一个极狐GitLab Pages 项目,你需要一个域名,格式如 name.example.io
或者 name.pages.example.io
。此项需求意味着你不得不设置通配 DNS 记录和 TLS 证书。在此版本中,无需对 DNS 通配就能够创建极狐GitLab Pages 项目这一功能已经从 beta 变为正式可用。
移除对通配符证书的要求减少了与极狐GitLab Pages 相关的管理开销。有些客户无法使用极狐GitLab Pages 的原因就是组织内部严格限制对通配 DNS 记录或证书的使用。
|
|
|
|
|
|
|
|
|
|
|
|
此版本引入了 Pages 并行部署功能,且处于 beta。你现在可以轻松预览更改并管理 GitLab Pages 站点的并行部署。此增强功能允许无缝地尝试新想法,因此你可以放心地测试和优化你的站点。通过及早发现问题,就能够确保你站点的稳定性。
此外,并行部署在本地化时也非常实用,当你部署的应用程序或网站有不同语言版本时。
|
|
|
|
|
|
|
|
|
|
|
|
我们现在很高兴地宣布:我们的高级静态应用程序安全测试分析器已经对所有极狐GitLab 旗舰版用户正式可用。
高级 SAST 是一种新扫描器,由我们今年早些时候从 Oxeye 收购的技术驱动。它使用一个专有的检测引擎,结合内部安全研究提供的规则,来识别第一方代码中的可利用漏洞。它的结果更精确,因此开发者和安全团队无需在假阳性结果的噪音中对信息进行筛选。
伴随着新的扫描引擎,极狐GitLab 17.4 还发布了:
|
|
|
|
|
|
|
|
|
|
|
|
当变量被存储到项目设置以后,你可能不想让任何人看到它们的值。现在,当你创建 CI/CD 变量时,可以选择新的被掩盖和隐藏可视化选项。选择此选项后,变量的值会在 CI/CD 设置界面上永远被隐藏,限制了变量的值在将来某一天被展示给任何人,而且降低了数据的可见性。
|
|
|
|
|
|
|
|
|
|
|
|
在此版本中,我们支持在 webhook 请求的头部中使用幂等性键。
幂等性键是一个唯一的 ID,它在 webhook 重试中保持一致,这使得 webhook 客户端能够检测到重试。使用 Idempotency-Key
标头能够确保在集成中 webhook 的幂等性。
|
|
|
|
|
|
|
|
|
|
|
|
现在,你可以通过调整 wiki 的侧边栏来查看更长的页面标题,这提高了内容的整体可发现性。随着 wiki 内容的增多,大小可调整的侧边栏可以更有效地管理和浏览复杂的层级结构或大量的页面列表。
|
|
|
|
|
|
|
|
|
|
|
|
GitLab 中的代码智能在浏览代码库时提供代码导航功能。使用代码导航往往很复杂,因为你必须要配置 CI/CD 作业。此作业要求自定义脚本能够提供正确的输出和制品。
现在,极狐GitLab 提供了一种更易设置的代码智能 CI/CD 组件。遵循 CI/CD 组件使用指南将其添加到你的仓库中即可。这大大简化了在极狐GitLab 中对代码智能的采用。
当前,组件支持如下语言:
我们将继续评估可用的 SCIP 索引器,以期扩大新组件的语言支持。如果你有兴趣为某种语言添加支持,请在代码智能组件项目中提交合并请求。
|
|
|
|
|
|
|
|
|
|
|
|
我们还发布了极狐GitLab Runner 17.4。极狐GitLab Runner 是一个轻量级、高扩展的代理,用来运行你的 CI/CD 作业并且将结果发送回极狐GitLab 实例。极狐GitLab Runner 和极狐GitLab CI/CD 绑定在一起,而极狐GitLab CI/CD 是一个开源且内置在极狐GitLab 里面的服务。
新功能:
修复的缺陷:
after_script
部分会有 step_script
的完整内容
|
|
|
|
|
|
|
|
|
|
|
|
由于实现原因,当在受保护环境中执行 action:prepare
、action:verify
以及 action:acces
作业时,它们会变成手动作业。这些作业需要人工介入才能运行,尽管它们不需要任何额外的批准。
390025 议题的目的就是想解决这个问题,以便这些作业不再变为手动作业。在这次提议的更改之后,为了保持当前的行为,你需要明确将作业设置为手动。
现在,你可以通过开启 prevent_blocking_non_deployment_jobs
功能开关来体验此功能。
任何提议的重要变更都是为了区分 environment.action: prepare | verify | access
的值所代表的行为。关键字environment.action: access
将保持最接近其当前的行为。
为了防止将来的兼容性问题,当前你应该重新审视你所使用的这些关键字。
|
|
|
|
|
|
|
|
|
|
|
|
在极狐GitLab 17.0、16.0 以及 15.4 中,我们对极狐GitLab SAST 进行了优化,使其在扫描代码中的漏洞时使用的独立分析器更少。
现在,当你升级到极狐GitLab 17.3.1 及以后版本后,一次性数据迁移将自动解决那些已达到支持终止的分析器所留下的漏洞问题。这将有助于对漏洞报告进行清理,以便你可以聚焦在那些依旧被最新分析器所发现的漏洞上。
迁移只能够解决那些你还没有确认或者被忽略的漏洞,并且不影响自动转换为基于 Semgrep 扫描的漏洞。
|
|
|
|
|
|
|
|
|
|
|
|
在极狐GitLab 15.3 中增加了对于 CycloneDX SBOM 的提取支持。
在极狐GitLab 17.4 中,我们增加了对于 CycloneDX 1.6 SBOM 的支持。
与硬件(HBOM)、服务(SaaSBOM)以及 AI/ML 模型(AI/ML-BOM)相关的字段当前还不支持。如果 SBOM 中包含与上述 BOM 相关的数据,流程也会继续处理,但是却不会对数据进行分析或者呈现给用户。当然,对于其他类型 BOM 的支持也在紧锣密鼓研发中。
|
|
|
|
|
|
|
|
|
|
|
|
现在,管理员可以决定是否要对个人、项目和群组访问令牌的强制过期时间进行强制执行。如果管理员禁用了此设置,任何新生成的访问令牌都将不会要求有必需的过期时间。默认情况下,该设置是禁用的,而且过期时间必须小于生命周期所允许的最大时间。该设置在极狐GitLab 16.11 及以后版本中可用。
|
|
|
|
|
|
|
|
|
|
|
|
作为极狐GitLab 17.2 发布的流水线执行策略的强化,策略创建器现在可以通过配置流水线执行策略来平滑处理作业名称的冲突问题。在流水线执行策略文件 policy.yml
中,你可以配置如下选项:
suffix: on_conflict
配置策略以在发生冲突时通过重命名策略作业来优雅地处理冲突。
suffix: never
强制所有作业名称都是唯一的,如果出现冲突,流水线将会失败,这是自 GitLab 17.2 版本以来的默认行为。
有了这项改进,你可以确保在流水线执行策略中执行的安全和合规作业总是被运行,同时还避免了对下游开发者造成不必要的影响。
在后续的增强功能中,我们将在策略编辑器中引入配置选项。
|
|
|
|
|
|
|
|
|
|
|
|
极狐GitLab 17.4 默认保护你 PostgreSQL 16,而且适用于所有新安装的极狐GitLab。
极狐GitLab 17.5 还将包含 OpenSSL V3。这将影响那些未满足TLS 1.2或更高版本出站连接的最低要求,以及至少112位加密的TLS证书的外部集成设置的Omnibus实例。如果你确信你的实例将受到影响,那么请仔细阅读我们的 OpenSSL 升级文档。
|
|
|
|
|
|
|
|
|
|
|
|
之前,只能在 UI 界面上在顶级群组上添加域名限制。现在,你可以通过群组 API 中新增的 allowed_email_domains_list
字段来实现这一功能。
|
|
|
|
|
|
|
|
|
|
|
|
之前,极狐GitLab 仅提供在 UI 对 webhook 请求进行重新发送的能力,如果有很多请求发生了失败,那么这种方式就显得很低效。
因此你可以通过编程的方式来处理失败的 webhook 请求,在此版本中,感谢社区成员的贡献,我们增加了通过 API 端点来重新发送:
现在,你可以:
|
|
|
|
|
|
|
|
|
|
|
|
当你在合并请求中分享一个特定文件的链接时,通常是因为你想让对方查看该文件中的某些内容。之前,合并请求需要加载所有文件后,才能滚动到你引用的特定位置。在合并请求中直接链接到文件是提高协作效率的重要方式:
|
|
|
|
|
|
|
|
|
|
|
|
现在可以使用 JaCoCo 覆盖报告了,这是一个流行的测试覆盖率计算标准,而且内嵌到了合并请求中。该功能在 Beta 中可用,对于任何想要使用 JaCoCo 测试报告的用户来说都可马上使用。
|
|
|
|
|
|
|
|
|
|
|
|
尽管可以通过配置 Flux 来实现以特定间隔进行变更同步,但是总会遇到一些你想要立即同步的场景。在过去的版本中,你只能通过 CI/CD 流水线或者命令行来触发同步。在极狐GitLab 17.4 中,你可以从 Kubernetes 仪表盘上进行触发,而无需任何配置。
如果要触发同步,前往配置好的仪表盘然后选择 Flux 状态徽章即可。
|
|
|
|
|
|
|
|
|
|
|
|
不管是流水线还是客户端的密钥检测功能,现在都支持对 Anthropic API key 进行检测。
|
|
|
|
|
|
|
|
|
|
|
|
在极狐GitLab 17.4 中,我们在安全策略中新加了一个设置,你可以使用该设置为所有关联的项目赋予 pipeline-execution.yml
文件的读取权限。此项设置给你提供了更多的灵活性,以便能在跨项目中启用可以强制执行流水线的用户、机器人或者令牌。比如,你可以确保群组或项目访问令牌能够读取安全策略配置,以便在流水线执行期间触发流水线。但是,你依旧无法直接查看安全策略项目仓库或者 YAML 文件,且配置仅可在流水线创建时使用。
如果要配置此设置,前往你想分享的安全策略项目。选择设置 --> 通用 --> 可见性、项目功能、权限,下拉找到流水线执行策略,然后开启授予对这个仓库的访问权限,对于将其作为安全策略项目源与安全策略相关联的项目开关。
|
|
|
|
|
|
|
|
|
|
|
|
在极狐GitLab 17.3 中,我们给用户提供了将多个合规框架添加到一个项目中的能力。
现在,可以按多个合规框架进行搜索了,这对于本身含有多个合规框架的项目来说,搜索变得更容易了。
|
|
|
|
|
|
|
|
|
|
|
|
我们简化了组和项目成员页面上来源列的显示。直接成员依旧显示为 直接成员
。继承成员现在展示为 继承自
,而且后面跟着群组名称。通过邀请群组成员到群组或者项目的方式添加的成员会展示为 被邀请群组
,后面跟着群组名称。对于那些继承自被邀请群组(该群组被添加到父群组)的成员来说,我们现在显示最后一步,以保持显示对管理成员具有可操作性。
|
|
|
|
|
|
|
|
|
|
|
|
我们新增了一个群组 API 和项目 API 端点来获取被邀请到群组或项目中的群组。此项功能仅在群组或项目成员页面上可用。我们希望此项功能能够让群组和项目的成员关系自动管理变得更加容易。该端点的速率限制为每个用户每分钟 60 次请求。