From bb1dc3f020f823741513c53d9a6450787e9878eb Mon Sep 17 00:00:00 2001 From: Matthieu MOREL Date: Fri, 24 Jan 2025 11:51:35 +0100 Subject: [PATCH] chore: explicit revive rules Signed-off-by: Matthieu MOREL --- .golangci.yaml | 39 +++++++++++++++++++ magefiles/magefile.go | 8 ++-- pkg/dependency/parser/c/conan/parse.go | 7 ++-- pkg/dependency/parser/java/pom/parse.go | 15 +++---- pkg/dependency/parser/nodejs/yarn/parse.go | 19 +++++---- pkg/dependency/parser/ruby/bundler/parse.go | 5 +-- pkg/dependency/parser/rust/cargo/parse.go | 3 +- .../adapters/cloudformation/aws/s3/bucket.go | 10 ++--- .../scanners/azure/functions/date_time_add.go | 5 +-- .../cloudformation/parser/fn_find_in_map.go | 6 +-- .../scanners/cloudformation/parser/fn_if.go | 3 +- .../cloudformation/parser/fn_select.go | 7 ++-- .../cloudformation/parser/property.go | 3 +- pkg/iac/terraform/block.go | 12 +++--- pkg/rekortest/server.go | 6 +-- 15 files changed, 88 insertions(+), 60 deletions(-) diff --git a/.golangci.yaml b/.golangci.yaml index 9249f9308e91..a481641bd984 100644 --- a/.golangci.yaml +++ b/.golangci.yaml @@ -94,6 +94,45 @@ linters-settings: strconcat: false revive: ignore-generated-header: true + min-confidence: 0.8 + rules: + - name: blank-imports + - name: context-as-argument + arguments: + - allowTypesBefore: "*testing.T" + - name: context-keys-type + - name: dot-imports + - name: early-return + arguments: + - "preserveScope" + - name: empty-block + - name: error-naming + - name: error-return + - name: error-strings + - name: errorf + - name: increment-decrement + disabled: true + - name: indent-error-flow + arguments: + - "preserveScope" + - name: range + - name: receiver-naming + disabled: true + - name: redefines-builtin-id + - name: superfluous-else + arguments: + - "preserveScope" + - name: time-naming + - name: unexported-return + disabled: true + - name: unreachable-code + - name: unused-parameter + disabled: true + - name: use-any + - name: var-declaration + disabled: true + - name: var-naming + disabled: true testifylint: enable-all: true linters: diff --git a/magefiles/magefile.go b/magefiles/magefile.go index 87e556d86052..26487c89b92c 100644 --- a/magefiles/magefile.go +++ b/magefiles/magefile.go @@ -41,12 +41,12 @@ func init() { } func version() (string, error) { - if ver, err := sh.Output("git", "describe", "--tags", "--always"); err != nil { + ver, err := sh.Output("git", "describe", "--tags", "--always") + if err != nil { return "", err - } else { - // Strips the v prefix from the tag - return strings.TrimPrefix(ver, "v"), nil } + // Strips the v prefix from the tag + return strings.TrimPrefix(ver, "v"), nil } func buildLdflags() (string, error) { diff --git a/pkg/dependency/parser/c/conan/parse.go b/pkg/dependency/parser/c/conan/parse.go index cb277692bb7e..c5acd31346b8 100644 --- a/pkg/dependency/parser/c/conan/parse.go +++ b/pkg/dependency/parser/c/conan/parse.go @@ -131,11 +131,10 @@ func (p *Parser) Parse(r xio.ReadSeekerAt) ([]ftypes.Package, []ftypes.Dependenc if lock.GraphLock.Nodes != nil { p.logger.Debug("Handling conan lockfile as v1.x") return p.parseV1(lock) - } else { - // try to parse requirements as conan v2.x - p.logger.Debug("Handling conan lockfile as v2.x") - return p.parseV2(lock) } + // try to parse requirements as conan v2.x + p.logger.Debug("Handling conan lockfile as v2.x") + return p.parseV2(lock) } func parsePackage(text string) (string, string, error) { diff --git a/pkg/dependency/parser/java/pom/parse.go b/pkg/dependency/parser/java/pom/parse.go index 2ce4fb4e3936..1aa20b4313eb 100644 --- a/pkg/dependency/parser/java/pom/parse.go +++ b/pkg/dependency/parser/java/pom/parse.go @@ -549,28 +549,25 @@ func (p *Parser) retrieveParent(currentPath, relativePath string, target artifac // Try relativePath if relativePath != "" { pom, err := p.tryRelativePath(target, currentPath, relativePath) - if err != nil { - errs = multierror.Append(errs, err) - } else { + if err == nil { return pom, nil } + errs = multierror.Append(errs, err) } // If not found, search the parent director pom, err := p.tryRelativePath(target, currentPath, "../pom.xml") - if err != nil { - errs = multierror.Append(errs, err) - } else { + if err == nil { return pom, nil } + errs = multierror.Append(errs, err) // If not found, search local/remote remoteRepositories pom, err = p.tryRepository(target.GroupID, target.ArtifactID, target.Version.String()) - if err != nil { - errs = multierror.Append(errs, err) - } else { + if err == nil { return pom, nil } + errs = multierror.Append(errs, err) // Reaching here means the POM wasn't found return nil, errs diff --git a/pkg/dependency/parser/nodejs/yarn/parse.go b/pkg/dependency/parser/nodejs/yarn/parse.go index fbe77913a1e4..fc200d0eef25 100644 --- a/pkg/dependency/parser/nodejs/yarn/parse.go +++ b/pkg/dependency/parser/nodejs/yarn/parse.go @@ -221,11 +221,10 @@ func (p *Parser) parseBlock(block []byte, lineNum int) (lib Library, deps []stri continue } continue - } else { - lib.Patterns = patterns - lib.Name = name - continue } + lib.Patterns = patterns + lib.Name = name + continue } } @@ -251,23 +250,23 @@ func (p *Parser) parseBlock(block []byte, lineNum int) (lib Library, deps []stri func parseDependencies(scanner *LineScanner) (deps []string) { for scanner.Scan() { line := scanner.Text() - if dep, err := parseDependency(line); err != nil { + dep, err := parseDependency(line) + if err != nil { // finished dependencies block return deps - } else { - deps = append(deps, dep) } + deps = append(deps, dep) } return } func parseDependency(line string) (string, error) { - if name, version, err := getDependency(line); err != nil { + name, version, err := getDependency(line) + if err != nil { return "", err - } else { - return packageID(name, version), nil } + return packageID(name, version), nil } func (p *Parser) Parse(r xio.ReadSeekerAt) ([]ftypes.Package, []ftypes.Dependency, map[string][]string, error) { diff --git a/pkg/dependency/parser/ruby/bundler/parse.go b/pkg/dependency/parser/ruby/bundler/parse.go index 12dff78bc7c0..d203c148d1b3 100644 --- a/pkg/dependency/parser/ruby/bundler/parse.go +++ b/pkg/dependency/parser/ruby/bundler/parse.go @@ -111,11 +111,10 @@ func (p *Parser) Parse(r xio.ReadSeekerAt) ([]ftypes.Package, []ftypes.Dependenc func countLeadingSpace(line string) int { i := 0 for _, runeValue := range line { - if runeValue == ' ' { - i++ - } else { + if runeValue != ' ' { break } + i++ } return i } diff --git a/pkg/dependency/parser/rust/cargo/parse.go b/pkg/dependency/parser/rust/cargo/parse.go index d3fbbce00bb4..f7ec6d1926eb 100644 --- a/pkg/dependency/parser/rust/cargo/parse.go +++ b/pkg/dependency/parser/rust/cargo/parse.go @@ -121,9 +121,8 @@ func (p *Parser) parseDependencies(pkgId string, pkg cargoPkg, pkgs map[string]c ID: pkgId, DependsOn: dependOn, } - } else { - return nil } + return nil } func packageID(name, version string) string { diff --git a/pkg/iac/adapters/cloudformation/aws/s3/bucket.go b/pkg/iac/adapters/cloudformation/aws/s3/bucket.go index 957278a93a29..311e04343bcb 100644 --- a/pkg/iac/adapters/cloudformation/aws/s3/bucket.go +++ b/pkg/iac/adapters/cloudformation/aws/s3/bucket.go @@ -151,12 +151,12 @@ func getLifecycle(resource *parser.Resource) []s3.Rules { } func getWebsite(r *parser.Resource) *s3.Website { - if block := r.GetProperty("WebsiteConfiguration"); block.IsNil() { + block := r.GetProperty("WebsiteConfiguration") + if block.IsNil() { return nil - } else { - return &s3.Website{ - Metadata: block.Metadata(), - } + } + return &s3.Website{ + Metadata: block.Metadata(), } } diff --git a/pkg/iac/scanners/azure/functions/date_time_add.go b/pkg/iac/scanners/azure/functions/date_time_add.go index 2e3c06ae8220..39f88ddead80 100644 --- a/pkg/iac/scanners/azure/functions/date_time_add.go +++ b/pkg/iac/scanners/azure/functions/date_time_add.go @@ -63,11 +63,10 @@ func parseISO8601(from string) (Iso8601Duration, error) { var match []string var d Iso8601Duration - if pattern.MatchString(from) { - match = pattern.FindStringSubmatch(from) - } else { + if !pattern.MatchString(from) { return d, errors.New("could not parse duration string") } + match = pattern.FindStringSubmatch(from) for i, name := range pattern.SubexpNames() { part := match[i] diff --git a/pkg/iac/scanners/cloudformation/parser/fn_find_in_map.go b/pkg/iac/scanners/cloudformation/parser/fn_find_in_map.go index b379cba3527e..29af01adc3d9 100644 --- a/pkg/iac/scanners/cloudformation/parser/fn_find_in_map.go +++ b/pkg/iac/scanners/cloudformation/parser/fn_find_in_map.go @@ -37,9 +37,9 @@ func ResolveFindInMap(property *Property) (resolved *Property, success bool) { mapValues := k.(map[string]any) - if prop, ok := mapValues[secondaryLevelKey]; !ok { + prop, ok := mapValues[secondaryLevelKey] + if !ok { return abortIntrinsic(property, "could not find a value for %s in %s, returning original Property", secondaryLevelKey, topLevelKey) - } else { - return property.deriveResolved(cftypes.String, prop), true } + return property.deriveResolved(cftypes.String, prop), true } diff --git a/pkg/iac/scanners/cloudformation/parser/fn_if.go b/pkg/iac/scanners/cloudformation/parser/fn_if.go index d444952ff38a..97becbc90e21 100644 --- a/pkg/iac/scanners/cloudformation/parser/fn_if.go +++ b/pkg/iac/scanners/cloudformation/parser/fn_if.go @@ -34,7 +34,6 @@ func ResolveIf(property *Property) (resolved *Property, success bool) { if conditionMet { return trueState, true - } else { - return falseState, true } + return falseState, true } diff --git a/pkg/iac/scanners/cloudformation/parser/fn_select.go b/pkg/iac/scanners/cloudformation/parser/fn_select.go index c528223a2325..e18372e4a48f 100644 --- a/pkg/iac/scanners/cloudformation/parser/fn_select.go +++ b/pkg/iac/scanners/cloudformation/parser/fn_select.go @@ -19,12 +19,11 @@ func ResolveSelect(property *Property) (resolved *Property, success bool) { list := refValue[1] if index.IsNotInt() { - if index.IsConvertableTo(cftypes.Int) { - // - index = index.ConvertTo(cftypes.Int) - } else { + if !index.IsConvertableTo(cftypes.Int) { return abortIntrinsic(property, "index on property [%s] should be an int, returning original Property", property.name) } + // + index = index.ConvertTo(cftypes.Int) } if list.IsNotList() { diff --git a/pkg/iac/scanners/cloudformation/parser/property.go b/pkg/iac/scanners/cloudformation/parser/property.go index 606b9d28b341..fbb6f41c96ab 100644 --- a/pkg/iac/scanners/cloudformation/parser/property.go +++ b/pkg/iac/scanners/cloudformation/parser/property.go @@ -254,9 +254,8 @@ func (p *Property) GetProperty(path string) *Property { if nestedProperty.isFunction() { resolved, _ := nestedProperty.resolveValue() return resolved - } else { - return nestedProperty } + return nestedProperty } return &Property{} diff --git a/pkg/iac/terraform/block.go b/pkg/iac/terraform/block.go index 4e9f794e914c..d5889258304c 100644 --- a/pkg/iac/terraform/block.go +++ b/pkg/iac/terraform/block.go @@ -431,11 +431,11 @@ func (b *Block) GetNestedAttribute(name string) (*Attribute, *Block) { working := b for _, subBlock := range blocks { - if checkBlock := working.GetBlock(subBlock); checkBlock == nil { + checkBlock := working.GetBlock(subBlock) + if checkBlock == nil { return nil, working - } else { - working = checkBlock } + working = checkBlock } if working != nil { @@ -532,11 +532,11 @@ func (b *Block) MissingNestedChild(name string) bool { working := b for _, subBlock := range blocks { - if checkBlock := working.GetBlock(subBlock); checkBlock == nil { + checkBlock := working.GetBlock(subBlock) + if checkBlock == nil { return true - } else { - working = checkBlock } + working = checkBlock } return !working.HasChild(last) diff --git a/pkg/rekortest/server.go b/pkg/rekortest/server.go index 965ca82bfa38..3c818a7a72fc 100644 --- a/pkg/rekortest/server.go +++ b/pkg/rekortest/server.go @@ -332,12 +332,12 @@ func NewServer(t *testing.T) *Server { resEntries := models.LogEntry{} for _, uuid := range params.EntryUUIDs { - if e, ok := entries[uuid]; !ok { + e, ok := entries[uuid] + if !ok { http.Error(w, "no such uuid", http.StatusNotFound) return - } else { - resEntries[uuid] = e } + resEntries[uuid] = e } w.Header().Set("Content-Type", "application/json") err = json.NewEncoder(w).Encode([]models.LogEntry{resEntries})