-
Notifications
You must be signed in to change notification settings - Fork 593
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix: only generate PURL on empty string #1312
Merged
Merged
Conversation
This file contains 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
Signed-off-by: Christopher Phillips <[email protected]>
Benchmark Test ResultsBenchmark results from the latest changes vs base branch
|
Signed-off-by: Christopher Phillips <[email protected]>
wagoodman
approved these changes
Nov 3, 2022
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
Purl Generation has changed a bit between v0.59.x and v0.60.x
A good example of this can be demonstrated by the following values for alpine:
There are two places within syft that can generate two different values for PURL given a certain package type:
Let’s look at the above alpine case:
Here is the first section where a PURL can be set:
syft/syft/pkg/cataloger/apkdb/package.go
Lines 29 to 57 in e0acfa9
This can be found when the "apkdb-cataloger" is running and parsing the apk DB.
Syft gets a second pass at PURL generation here in catalog.go for all packages
syft/syft/pkg/cataloger/catalog.go
Lines 67 to 91 in e0acfa9
The function that gets a crack at each package post the catalogers running is
func URL
from thepackage pkg
syft/syft/pkg/url.go
Lines 28 to 60 in e0acfa9
Previously alpine packages were gated behind the
urlIdentifier interface
I believe moving to the generic cataloger removed this method PackageURL from certain package metadata types causing this check to no longer short circuit PURL generation:
There is a pretty simple hack to fix this where we only do a PURL generation in
catalog.go
if one has not already been setif p.PURL="" {try again}
, but I wanted to run it by everyone to talk about since we had a stricter check on the interface earlier vs just covering for a blank string.Signed-off-by: Christopher Phillips [email protected]