Add reported licenses support to license tab
What does this MR do and why?
This MR updates the Gitlab::LicenseScanning::SbomScanner to
- Add
componentswithlicensesdirectly to the::Gitlab::Ci::Reports::LicenseScanning::Report. - Pass
componentsthat don't havelicensestoPackageLicenses, and getpackage_licenses. - Add
package_licensesto report (same as before).
This change allows reported licenses to be displayed on the pipeline's license tab.
Related to: issue #415935 (closed) and MR !162631 (merged)
MR acceptance checklist
Please evaluate this MR against the MR acceptance checklist. It helps you analyze changes to reduce risks in quality, performance, reliability, security, and maintainability.
Screenshots or screen recordings
How to set up and validate locally
Numbered steps to set up and validate the change are strongly suggested.
- Enable the
license_scanning_with_sbom_licensesfeature flag on the rails console
Feature.enable(:license_scanning_with_sbom_licenses)
- Create a new project
- Add an empty Gemfile.lock file
- Add a file called
gl-sbom-gem-bundler.cdx.jsonwith the content
{
"bomFormat": "CycloneDX",
"specVersion": "1.4",
"serialNumber": "urn:uuid:a15e529c-2113-4a11-a694-6bc3ea4e2b53",
"version": 1,
"metadata": {
"timestamp": "2022-02-23T08:02:39Z",
"tools": [
{
"vendor": "GitLab",
"name": "Gemnasium",
"version": "2.34.0"
}
],
"authors": [
{
"name": "GitLab",
"email": "support@gitlab.com"
}
],
"properties": [
{
"name": "gitlab:dependency_scanning:input_file:path",
"value": "Gemfile.lock"
},
{
"name": "gitlab:dependency_scanning:package_manager:name",
"value": "bundler"
},
{
"name": "gitlab:meta:schema_version",
"value": "1"
}
]
},
"components": [
{
"name": "sidekiq",
"version": "4.2.10",
"purl": "pkg:gem/sidekiq@4.2.10",
"type": "library",
"bom-ref": "pkg:gem/sidekiq@4.2.10",
"licenses": [
{
"license": {
"name": "Custom-License"
}
}
]
}
]
}
- Add a
.gitlab-ci.ymlwith the content
include:
- template: Jobs/Dependency-Scanning.gitlab-ci.yml
gemnasium-dependency_scanning:
stage: test
script: 'pwd'
artifacts:
reports:
cyclonedx: gl-sbom-gem-bundler.cdx.json
- Wait for the pipeline to finish
- Click on the licenses tab and verify the component has the license defined in the report
Edited by Marcos Rocha
