github.com/nextlinux/gosbom@v0.81.1-0.20230627115839-1ff50c281391/gosbom/pkg/cataloger/java/package_url.go (about)

     1  package java
     2  
     3  import (
     4  	"github.com/nextlinux/gosbom/gosbom/pkg"
     5  	"github.com/nextlinux/gosbom/gosbom/pkg/cataloger/common/cpe"
     6  
     7  	"github.com/anchore/packageurl-go"
     8  )
     9  
    10  // PackageURL returns the PURL for the specific java package (see https://github.com/package-url/purl-spec)
    11  func packageURL(name, version string, metadata pkg.JavaMetadata) string {
    12  	var groupID = name
    13  	groupIDs := cpe.GroupIDsFromJavaMetadata(metadata)
    14  	if len(groupIDs) > 0 {
    15  		groupID = groupIDs[0]
    16  	}
    17  
    18  	pURL := packageurl.NewPackageURL(
    19  		packageurl.TypeMaven, // TODO: should we filter down by package types here?
    20  		groupID,
    21  		name,
    22  		version,
    23  		nil, // TODO: there are probably several qualifiers that can be specified here
    24  		"")
    25  	return pURL.ToString()
    26  }