@@ -24,6 +24,7 @@ import (
2424 "github.com/package-url/packageurl-go"
2525 "github.com/rs/zerolog"
2626 "github.com/spdx/tools-golang/spdx"
27+ "github.com/spdx/tools-golang/spdx/v2/common"
2728 "github.com/spdx/tools-golang/spdx/v2/v2_3"
2829
2930 "github.com/snyk/parlay/ecosystems/packages"
@@ -53,6 +54,7 @@ func enrichSPDX(bom *spdx.Document, logger *zerolog.Logger) {
5354 enrichSPDXDescription (pkg , pkgData )
5455 enrichSPDXLicense (pkg , pkgData )
5556 enrichSPDXHomepage (pkg , pkgData )
57+ enrichSPDXSupplier (pkg , pkgData )
5658 }
5759}
5860
@@ -70,6 +72,20 @@ func extractPurl(pkg *v2_3.Package) (*packageurl.PackageURL, error) {
7072 return nil , errors .New ("no purl found on SPDX package" )
7173}
7274
75+ func enrichSPDXSupplier (pkg * v2_3.Package , data * packages.Package ) {
76+ if data .RepoMetadata != nil {
77+ meta := * data .RepoMetadata
78+ if ownerRecord , ok := meta ["owner_record" ].(map [string ]interface {}); ok {
79+ if name , ok := ownerRecord ["name" ].(string ); ok {
80+ pkg .PackageSupplier = & common.Supplier {
81+ SupplierType : "Organization" ,
82+ Supplier : name ,
83+ }
84+ }
85+ }
86+ }
87+ }
88+
7389func enrichSPDXLicense (pkg * v2_3.Package , data * packages.Package ) {
7490 if len (data .NormalizedLicenses ) == 1 {
7591 pkg .PackageLicenseConcluded = data .NormalizedLicenses [0 ]
0 commit comments