diff --git a/pkg/iac/rego/load.go b/pkg/iac/rego/load.go index 2de7162802..344e117d9e 100644 --- a/pkg/iac/rego/load.go +++ b/pkg/iac/rego/load.go @@ -344,6 +344,15 @@ func moduleHasLegacyInputFormat(module *ast.Module) bool { // filterModules filters the Rego modules based on metadata. func (s *Scanner) filterModules() error { filtered := make(map[string]*ast.Module) + tv, tverr := semver.Parse(s.trivyVersion) + if tverr != nil && s.trivyVersion != "dev" { + s.logger.Warn( + "Failed to parse Trivy version - cannot confirm if all modules will work with current version", + log.String("trivy_version", s.trivyVersion), + log.Err(tverr), + ) + } + for name, module := range s.policies { metadata, err := s.metadataForModule(context.Background(), name, module, nil) if err != nil { @@ -351,15 +360,7 @@ func (s *Scanner) filterModules() error { } if metadata != nil { - tv, err := semver.Parse(s.trivyVersion) - if err != nil { - s.logger.Warn( - "Failed to parse Trivy version - cannot confirm if module will work with current version", - log.String("trivy_version", s.trivyVersion), - log.FilePath(module.Package.Location.File), - log.Err(err), - ) - } else if !s.IsMinimumVersionSupported(metadata, module, tv) { + if tverr == nil && !s.IsMinimumVersionSupported(metadata, module, tv) { continue } diff --git a/pkg/iac/rego/load_test.go b/pkg/iac/rego/load_test.go index 07104cb846..955496a162 100644 --- a/pkg/iac/rego/load_test.go +++ b/pkg/iac/rego/load_test.go @@ -319,6 +319,12 @@ func TestIsMinimumTrivyVersion(t *testing.T) { MinimumTrivyVersion: "", expectedResults: 1, }, + { + name: "trivy version is dev", + trivyVersion: "dev", + MinimumTrivyVersion: "1.2.3", + expectedResults: 1, + }, } for _, tc := range testCases {