CycloneDX 文件的许可证扫描
- 在 SaaS 上引入于 15.9 版本,功能标志 为
license_scanning_sbom_scanner
和package_metadata_synchronization
。默认情况下禁用这两个标志,必须启用这两个标志才能使此功能生效。- 在 SaaS 上启用于 15.10 版本。
- 在私有化部署版上引入于 15.10 版本,功能标志 为
license_scanning_sbom_scanner
和package_metadata_synchronization
,必须启用这两个标志才能使此功能生效,由于首次导入许可证数据库时的初始性能负载,这些标志在默认情况下处于禁用状态。- 在私有化部署版上默认启用于 15.11 版本。
为了检测正在使用的许可证,许可证合规依赖于运行 Dependency Scanning CI 作业,并分析这些作业生成的 CycloneDX 软件物料清单(SBOM)。
您也可以使用其他第三方扫描器,只要它们生成一个 CycloneDX 文件,其中包含我们支持的一种语言的依赖项列表。 这种扫描方法还能够解析和识别 500 多种不同类型的许可证,并可以从双重许可或具有多个不同许可证的包中提取许可证信息。
启用许可证扫描
先决条件:
- 在极狐GitLab 实例的管理中心,启用与极狐GitLab 许可证数据库同步。
- 启用依赖扫描并确保满足其先决条件。
在 .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 将复合许可证定为拒绝,因为这是更安全的选择。
根据检测到的许可证阻止合并请求
用户可以要求合并请求的批准,要基于通过许可证批准策略检测过的许可证。