mirror of
https://github.com/anchore/syft.git
synced 2026-10-31 14:36:33 +01:00
Extract language and package type from pURLs on SBOM decode (#777)
* add language detection from pURLs Signed-off-by: Alex Goodman <alex.goodman@anchore.com> * add package type detection from pURLs Signed-off-by: Alex Goodman <alex.goodman@anchore.com> * add cargo and npm pURL support Signed-off-by: Alex Goodman <alex.goodman@anchore.com> * fix npm tests and linting Signed-off-by: Alex Goodman <alex.goodman@anchore.com>
This commit is contained in:
@@ -66,3 +66,35 @@ func (t Type) PackageURLType() string {
|
||||
return ""
|
||||
}
|
||||
}
|
||||
|
||||
func TypeFromPURL(p string) Type {
|
||||
purl, err := packageurl.FromString(p)
|
||||
if err != nil {
|
||||
return UnknownPkg
|
||||
}
|
||||
|
||||
switch purl.Type {
|
||||
case packageurl.TypeDebian, "deb":
|
||||
return DebPkg
|
||||
case packageurl.TypeRPM:
|
||||
return RpmPkg
|
||||
case "alpine":
|
||||
return ApkPkg
|
||||
case packageurl.TypeMaven:
|
||||
return JavaPkg
|
||||
case packageurl.TypeComposer:
|
||||
return PhpComposerPkg
|
||||
case packageurl.TypeGolang:
|
||||
return GoModulePkg
|
||||
case packageurl.TypeNPM:
|
||||
return NpmPkg
|
||||
case packageurl.TypePyPi:
|
||||
return PythonPkg
|
||||
case packageurl.TypeGem:
|
||||
return GemPkg
|
||||
case "cargo", "crate":
|
||||
return RustPkg
|
||||
default:
|
||||
return UnknownPkg
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user