# Copyright 2019 The Kubernetes Authors. # SPDX-License-Identifier: Apache-2.0 run: deadline: 5m go: "1.25" linters: enable-all: true disable: - cyclop - depguard - exhaustivestruct - forbidigo - funlen - gci - gocognit - godot - godox - goerr113 - gofumpt - ifshort # too many false positives - ireturn - nilnil - nlreturn - noctx - paralleltest - perfsprint - stylecheck - testifylint - varnamelen - wsl - exhaustruct - deadcode - scopelint - nonamedreturns - golint - maintidx - nosnakecase - testpackage # it's better to keep tests in the same package for now because kustomize does open box testing - structcheck # abandoned by author - varcheck # abandoned by author - maligned # abandoned by author - interfacer # archived by author # TODO(koba1t): temporarily disabled, will be addressed after upgrading to Go 1.24 - usetesting - mnd - copyloopvar - intrange linters-settings: dupl: threshold: 400 lll: line-length: 170 gocyclo: min-complexity: 30 revive: rules: - name: var-naming arguments: - ["ID", "API", "JSON"] # AllowList - [] # DenyList gomnd: ignored-functions: - os.WriteFile - make gomoddirectives: replace-local: true gosec: config: G306: "0644" wrapcheck: ignoreSigs: # defaults - .Errorf( - errors.New( - errors.Unwrap( - .Wrap( - .Wrapf( - .WithMessage( - .WithMessagef( - .WithStack( # from kyaml's errors package - .WrapPrefixf( issues: new-from-rev: c94b5d8f2 # enables us to enforce a larger set of linters for new code than pass on existing code max-same-issues: 0 exclude-rules: - linters: - revive text: "don't use leading" - linters: - staticcheck text: "SA1019: kioutil.Legacy"