* (fix) Exclude dev dependencies from npm's package-lock.json * chore(integration) update * choir(integration) add lib scan names to makefile * fix(javadb) add schema version only once
		
			
				
	
	
		
			52 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			52 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
package scanner
 | 
						|
 | 
						|
import (
 | 
						|
	ftypes "github.com/aquasecurity/trivy/pkg/fanal/types"
 | 
						|
	"github.com/aquasecurity/trivy/pkg/purl"
 | 
						|
	"github.com/aquasecurity/trivy/pkg/types"
 | 
						|
	"github.com/samber/lo"
 | 
						|
 | 
						|
	"github.com/future-architect/vuls/logging"
 | 
						|
	"github.com/future-architect/vuls/models"
 | 
						|
)
 | 
						|
 | 
						|
func convertLibWithScanner(apps []ftypes.Application) ([]models.LibraryScanner, error) {
 | 
						|
	for i := range apps {
 | 
						|
		apps[i].Libraries = lo.Filter(apps[i].Libraries, func(lib ftypes.Package, index int) bool {
 | 
						|
			return !lib.Dev
 | 
						|
		})
 | 
						|
	}
 | 
						|
 | 
						|
	scanners := make([]models.LibraryScanner, 0, len(apps))
 | 
						|
	for _, app := range apps {
 | 
						|
		libs := make([]models.Library, 0, len(app.Libraries))
 | 
						|
		for _, lib := range app.Libraries {
 | 
						|
			libs = append(libs, models.Library{
 | 
						|
				Name:     lib.Name,
 | 
						|
				Version:  lib.Version,
 | 
						|
				PURL:     newPURL(app.Type, types.Metadata{}, lib),
 | 
						|
				FilePath: lib.FilePath,
 | 
						|
				Digest:   string(lib.Digest),
 | 
						|
			})
 | 
						|
		}
 | 
						|
		scanners = append(scanners, models.LibraryScanner{
 | 
						|
			Type:         app.Type,
 | 
						|
			LockfilePath: app.FilePath,
 | 
						|
			Libs:         libs,
 | 
						|
		})
 | 
						|
	}
 | 
						|
	return scanners, nil
 | 
						|
}
 | 
						|
 | 
						|
func newPURL(pkgType ftypes.TargetType, metadata types.Metadata, pkg ftypes.Package) string {
 | 
						|
	p, err := purl.New(pkgType, metadata, pkg)
 | 
						|
	if err != nil {
 | 
						|
		logging.Log.Errorf("Failed to create PackageURL: %+v", err)
 | 
						|
		return ""
 | 
						|
	}
 | 
						|
	if p == nil {
 | 
						|
		return ""
 | 
						|
	}
 | 
						|
	return p.Unwrap().ToString()
 | 
						|
}
 |