feat: sanitize spdx document name during conversion#24
Merged
facundo-herodevs merged 1 commit intomainfrom Feb 3, 2026
Merged
Conversation
e86085c to
2472d88
Compare
jeremymwells
previously approved these changes
Feb 3, 2026
7028909 to
3d82716
Compare
3d82716 to
e50b52b
Compare
v3nant
approved these changes
Feb 3, 2026
jeremymwells
approved these changes
Feb 3, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR consolidates and improves metadata component name resolution during SPDX to CycloneDX conversion.
Changes
stripVersionSuffix()function that strips trailing version suffixes from namesresolveMetadataComponentName()helper that centralizes name resolution with clear priority:@1.0.0,v1.2.3,-1.0.0-beta.1,version 3.0,(v2.0.0),[2.0.0]applicationtype component when no root package exists but a valid name is resolvedBehavior changes:
My App v1.2.3@scope/pkgMy App v1.2.3(doc name preserved as-is)My App@scope/pkg@1.0.0My App(doc name used, no fallback needed)@scope/pkg@scope/pkg(fallback, no version to strip)myapp@1.2.3myapp(fallback with version stripped)spring-core-6.0.0spring-core(fallback with version stripped)v1.2.3myapp v1.0.0v1.2.3(doc name preserved as-is)My AppMy AppCloses https://github.com/neverendingsupport/data-and-integrations/issues/525