sigs.k8s.io/controller-runtime@v0.18.2/.golangci.yml (about)

     1  linters:
     2    disable-all: true
     3    enable:
     4      - asasalint
     5      - asciicheck
     6      - bidichk
     7      - bodyclose
     8      - dogsled
     9      - dupl
    10      - errcheck
    11      - errchkjson
    12      - errorlint
    13      - exhaustive
    14      - exportloopref
    15      - ginkgolinter
    16      - goconst
    17      - gocritic
    18      - gocyclo
    19      - gofmt
    20      - goimports
    21      - goprintffuncname
    22      - gosec
    23      - gosimple
    24      - govet
    25      - importas
    26      - ineffassign
    27      - makezero
    28      - misspell
    29      - nakedret
    30      - nilerr
    31      - nolintlint
    32      - prealloc
    33      - revive
    34      - staticcheck
    35      - stylecheck
    36      - tagliatelle
    37      - typecheck
    38      - unconvert
    39      - unparam
    40      - unused
    41      - whitespace
    42  
    43  linters-settings:
    44    govet:
    45      enable-all: true
    46      disable:
    47        - fieldalignment
    48        - shadow
    49    importas:
    50      no-unaliased: true
    51      alias:
    52        # Kubernetes
    53        - pkg: k8s.io/api/core/v1
    54          alias: corev1
    55        - pkg: k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1
    56          alias: apiextensionsv1
    57        - pkg: k8s.io/apimachinery/pkg/apis/meta/v1
    58          alias: metav1
    59        - pkg: k8s.io/apimachinery/pkg/api/errors
    60          alias: apierrors
    61        - pkg: k8s.io/apimachinery/pkg/util/errors
    62          alias: kerrors
    63        # Controller Runtime
    64        - pkg: sigs.k8s.io/controller-runtime
    65          alias: ctrl
    66    revive:
    67      rules:
    68        # The following rules are recommended https://github.com/mgechev/revive#recommended-configuration
    69        - name: blank-imports
    70        - name: context-as-argument
    71        - name: context-keys-type
    72        - name: dot-imports
    73        - name: error-return
    74        - name: error-strings
    75        - name: error-naming
    76        - name: exported
    77        - name: if-return
    78        - name: increment-decrement
    79        - name: var-naming
    80        - name: var-declaration
    81        - name: range
    82        - name: receiver-naming
    83        - name: time-naming
    84        - name: unexported-return
    85        - name: indent-error-flow
    86        - name: errorf
    87        - name: superfluous-else
    88        - name: unreachable-code
    89        - name: redefines-builtin-id
    90        #
    91        # Rules in addition to the recommended configuration above.
    92        #
    93        - name: bool-literal-in-expr
    94        - name: constant-logical-expr
    95  
    96  issues:
    97    max-same-issues: 0
    98    max-issues-per-linter: 0
    99    # We are disabling default golangci exclusions because we want to help reviewers to focus on reviewing the most relevant
   100    # changes in PRs and avoid nitpicking.
   101    exclude-use-default: false
   102    # List of regexps of issue texts to exclude, empty list by default.
   103    exclude:
   104      # The following are being worked on to remove their exclusion. This list should be reduced or go away all together over time.
   105      # If it is decided they will not be addressed they should be moved above this comment.
   106      - Subprocess launch(ed with variable|ing should be audited)
   107      - (G204|G104|G307)
   108      - "ST1000: at least one file in a package should have a package comment"
   109    exclude-files:
   110      - "zz_generated.*\\.go$"
   111      - ".*conversion.*\\.go$"
   112    exclude-rules:
   113      - linters:
   114          - gosec
   115        text: "G108: Profiling endpoint is automatically exposed on /debug/pprof"
   116      - linters:
   117          - revive
   118        text: "exported: exported method .*\\.(Reconcile|SetupWithManager|SetupWebhookWithManager) should have comment or be unexported"
   119      - linters:
   120          - errcheck
   121        text: Error return value of .((os\.)?std(out|err)\..*|.*Close|.*Flush|os\.Remove(All)?|.*print(f|ln)?|os\.(Un)?Setenv). is not checked
   122      - linters:
   123          - staticcheck
   124        text: "SA1019: .*The component config package has been deprecated and will be removed in a future release."
   125      # With Go 1.16, the new embed directive can be used with an un-named import,
   126      # revive (previously, golint) only allows these to be imported in a main.go, which wouldn't work for us.
   127      # This directive allows the embed package to be imported with an underscore everywhere.
   128      - linters:
   129          - revive
   130        source: _ "embed"
   131      # Exclude some packages or code to require comments, for example test code, or fake clients.
   132      - linters:
   133          - revive
   134        text: exported (method|function|type|const) (.+) should have comment or be unexported
   135        source: (func|type).*Fake.*
   136      - linters:
   137          - revive
   138        text: exported (method|function|type|const) (.+) should have comment or be unexported
   139        path: fake_\.go
   140      # Disable unparam "always receives" which might not be really
   141      # useful when building libraries.
   142      - linters:
   143          - unparam
   144        text: always receives
   145      # Dot imports for gomega and ginkgo are allowed
   146      # within test files.
   147      - path: _test\.go
   148        text: should not use dot imports
   149      - path: _test\.go
   150        text: cyclomatic complexity
   151      - path: _test\.go
   152        text: "G107: Potential HTTP request made with variable url"
   153      # Append should be able to assign to a different var/slice.
   154      - linters:
   155          - gocritic
   156        text: "appendAssign: append result not assigned to the same slice"
   157      - linters:
   158          - gocritic
   159        text: "singleCaseSwitch: should rewrite switch statement to if statement"
   160      # It considers all file access to a filename that comes from a variable problematic,
   161      # which is naiv at best.
   162      - linters:
   163          - gosec
   164        text: "G304: Potential file inclusion via variable"
   165      - linters:
   166          - dupl
   167        path: _test\.go
   168  
   169  run:
   170    go: "1.22"
   171    timeout: 10m
   172    allow-parallel-runners: true