Parse the v3 licenses payload
Parse the v3 payload format into a data object that exposes identifiers and
expressions separately. DataObjectFabricator has no v3 branch today and
CompressedPackageDataObject#spdx_identifiers assumes flat strings all the way
down.
- A v3-aware data object (
PackageDataObjectV3) reading the format the exporter emits:default_licensesis one set andother_licensesis a list of them. A set carrieslicensesas plain SPDX identifier strings,expressionsas raw expression strings, andversions; both lists may be present at once. Implemented as a standalone class rather than a subclass ofCompressedPackageDataObjectto avoid internal branching on the input type. - v3 branch in
DataObjectFabricatorvia theSyncConfiguration#v3?predicate (#611126 (closed)) - Keep expressions as opaque strings
CompressedPackageDataObject gains a no-op spdx_expressions stub so
LicenseIngestionTask can call both methods uniformly.
Dependencies
#606521 (closed) (schema column), #611126 (closed) (v3 predicate and routing)
Key files
ee/app/services/package_metadata/package_data_object_v3.rbee/app/services/package_metadata/data_object_fabricator.rbee/lib/package_metadata/sync_configuration.rb- Exporter schema:
data/licenses/v3/license.json
Edited by 🤖 GitLab Bot 🤖