CycloneDX 文件的许可证扫描

  • 在 SaaS 上引入于 15.9 版本,功能标志license_scanning_sbom_scannerpackage_metadata_synchronization。默认情况下禁用这两个标志,必须启用这两个标志才能使此功能生效。
  • 在 SaaS 上启用于 15.10 版本。
  • 在私有化部署版上引入于 15.10 版本,功能标志license_scanning_sbom_scannerpackage_metadata_synchronization,必须启用这两个标志才能使此功能生效,由于首次导入许可证数据库时的初始性能负载,这些标志在默认情况下处于禁用状态。
  • 在私有化部署版上默认启用于 15.11 版本。

为了检测正在使用的许可证,许可证合规依赖于运行 Dependency Scanning CI 作业,并分析这些作业生成的 CycloneDX 软件物料清单(SBOM)。

您也可以使用其他第三方扫描器,只要它们生成一个 CycloneDX 文件,其中包含我们支持的一种语言的依赖项列表。 这种扫描方法还能够解析和识别 500 多种不同类型的许可证,并可以从双重许可或具有多个不同许可证的包中提取许可证信息。

启用许可证扫描

先决条件:

.gitlab-ci.yml 文件中,删除不推荐使用的行 Jobs/License-Scanning.gitlab-ci.yml(如果存在)。

支持的语言和包管理器

以下语言和包管理器支持许可证扫描:

Language Package Manager
.NET NuGet
C#
C Conan
C++
Go Go
Java Gradle
Maven
JavaScript and TypeScript npm
pnpm
yarn
PHP Composer
Python setuptools
pip
Pipenv
Poetry
Ruby Bundler
Scala sbt

支持的文件和版本也是 Dependency Scanning 支持的文件和版本。

许可证表达式

极狐GitLab 对复合许可证的支持有限。 许可证合规可以读取多个许可证,但始终将它们视为使用 AND 运算符组合在一起。例如,一个依赖项有两个许可证,其中一个被允许,另一个被项目策略拒绝,那么极狐GitLab 将复合许可证定为拒绝,因为这是更安全的选择。

根据检测到的许可证阻止合并请求

用户可以要求合并请求的批准,要基于通过许可证批准策略检测过的许可证。