CycloneDX 文件的许可证扫描
引入于 15.9 版本,功能标志 为
license_scanning_sbom_scanner
和package_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 将复合许可证定为拒绝,因为这是更安全的选择。
根据检测到的许可证阻止合并请求
用户可以要求合并请求的批准,要基于通过许可证批准策略检测过的许可证。