github.com/devseccon/trivy@v0.47.1-0.20231123133102-bd902a0bd996/pkg/fanal/analyzer/language/dotnet/deps/deps.go (about) 1 package deps 2 3 import ( 4 "context" 5 "os" 6 "strings" 7 8 "golang.org/x/xerrors" 9 10 core "github.com/aquasecurity/go-dep-parser/pkg/dotnet/core_deps" 11 "github.com/devseccon/trivy/pkg/fanal/analyzer" 12 "github.com/devseccon/trivy/pkg/fanal/analyzer/language" 13 "github.com/devseccon/trivy/pkg/fanal/types" 14 ) 15 16 func init() { 17 analyzer.RegisterAnalyzer(&depsLibraryAnalyzer{}) 18 } 19 20 const ( 21 version = 1 22 depsExtension = ".deps.json" 23 ) 24 25 type depsLibraryAnalyzer struct{} 26 27 func (a depsLibraryAnalyzer) Analyze(_ context.Context, input analyzer.AnalysisInput) (*analyzer.AnalysisResult, error) { 28 parser := core.NewParser() 29 res, err := language.Analyze(types.DotNetCore, input.FilePath, input.Content, parser) 30 if err != nil { 31 return nil, xerrors.Errorf(".Net Core dependencies analysis error: %w", err) 32 } 33 34 return res, nil 35 } 36 37 func (a depsLibraryAnalyzer) Required(filePath string, _ os.FileInfo) bool { 38 return strings.HasSuffix(filePath, depsExtension) 39 } 40 41 func (a depsLibraryAnalyzer) Type() analyzer.Type { 42 return analyzer.TypeDotNetCore 43 } 44 45 func (a depsLibraryAnalyzer) Version() int { 46 return version 47 }