CycloneDX 文件的许可证扫描

引入于 15.9 版本,功能标志license_scanning_sbom_scannerpackage_metadata_synchronization。默认情况下禁用这两个标志,必须启用这两个标志才能使此功能生效。

在私有化部署版中,此功能不可用。

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

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

要在项目中使用依赖扫描启用许可证检测,在其 CI 配置中包含 Jobs/Dependency-Scanning.yml 模板,但不包含 Jobs/License-Scanning.yml 模板。

要求

许可证扫描的要求与依赖扫描的要求相同。

支持的语言和包管理器

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

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

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

配置

要启用 CycloneDX 文件的许可证扫描,您必须配置 Dependency Scanning

许可证表达式

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

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

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