diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 356b8ff..fa2dd4e 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -24,7 +24,7 @@ jobs: go-version: 1.25 - name: golangci-lint - uses: golangci/golangci-lint-action@v6 + uses: golangci/golangci-lint-action@v8 with: version: latest diff --git a/.github/workflows/buildPR.yaml b/.github/workflows/buildPR.yaml index 021d0c0..dba85cf 100644 --- a/.github/workflows/buildPR.yaml +++ b/.github/workflows/buildPR.yaml @@ -23,7 +23,7 @@ jobs: go-version: 1.25 - name: golangci-lint - uses: golangci/golangci-lint-action@v6 + uses: golangci/golangci-lint-action@v8 with: version: latest diff --git a/.golangci.yaml b/.golangci.yaml index 931b938..1576faf 100644 --- a/.golangci.yaml +++ b/.golangci.yaml @@ -1,169 +1,60 @@ -# This file contains all available configuration options -# with their default values. - -# options for analysis running +version: "2" run: - # exit code when at least one issue was found, default is 1 - issues-exit-code: 0 - - timeout: 10m - - # which dirs to skip: issues from them won't be reported; - # can use regexp here: generated.*, regexp is applied on full path; - # default value is empty list, but default dirs are skipped independently - # from this option's value (see skip-dirs-use-default). - # "/" will be replaced by current OS file path separator to properly work - # on Windows. -# skip-dirs: -# - clients/ - - # which files to skip: they will be analyzed, but issues from them - # won't be reported. Default value is empty list, but there is - # no need to include all autogenerated files, we confidently recognize - # autogenerated files. If it's not please let us know. - # "/" will be replaced by current OS file path separator to properly work - # on Windows. -# skip-files: -# - version.go - - # by default isn't set. If set we pass it to "go list -mod={option}". From "go help modules": - # If invoked with -mod=readonly, the go command is disallowed from the implicit - # automatic updating of go.mod described above. Instead, it fails when any changes - # to go.mod are needed. This setting is most useful to check that go.mod does - # not need updates, such as in a continuous integration and testing system. - # If invoked with -mod=vendor, the go command assumes that the vendor - # directory holds the correct copies of dependencies and ignores - # the dependency descriptions in go.mod. modules-download-mode: readonly - -# output configuration options + issues-exit-code: 0 output: - # colored-line-number|line-number|json|tab|checkstyle|code-climate|junit-xml|github-actions - # default is "colored-line-number" - formats: - - format: colored-line-number - - # sorts results by: filepath, line and column - sort-results: true - - -# all available settings of specific linters -linters-settings: - tagliatelle: - case: - # use the struct field name to check the name of the struct tag - use-field-name: false - rules: - json: camel - yaml: camel - envconfig: lower - + formats: + text: + path: stdout + colors: true linters: - disable-all: true + default: none enable: - # unused - - ineffassign - # - deadcode - # - structcheck - #complexity - - nestif - - gocyclo - # import - - gci - #- depguard may come in handy - # bugs - bodyclose - - errcheck - - govet - - staticcheck - - typecheck - #- noctx maybe - #- exhaustive will see - #- gosec needs to be implemented - # comment - - godot - #- prealloc - # format - - gofumpt - #style - - gosimple - dogsled + - errcheck - errname - goconst + - gocyclo + - godot + - govet + - ineffassign - mnd + - nestif + - staticcheck - unconvert - fast: false - - + settings: + tagliatelle: + case: + rules: + envconfig: lower + json: camel + yaml: camel + use-field-name: false + exclusions: + generated: lax + presets: + - comments + - common-false-positives + - legacy + - std-error-handling + paths: + - third_party$ + - builtin$ + - examples$ issues: - # List of regexps of issue texts to exclude, empty list by default. - # But independently from this option we use default exclude patterns, - # it can be disabled by `exclude-use-default: false`. To list all - # excluded by default patterns execute `golangci-lint run --help` - # exclude: - # - abcdef - - # Excluding configuration per-path, per-linter, per-text and per-source - # exclude-rules: - # # Exclude some linters from running on tests files. - # - path: _test\.go - # linters: - # - gocyclo - # - errcheck - # - dupl - # - gosec - # - # # Exclude known linters from partially hard-vendored code, - # # which is impossible to exclude via "nolint" comments. - # - path: internal/hmac/ - # text: "weak cryptographic primitive" - # linters: - # - gosec - # - # # Exclude some staticcheck messages - # - linters: - # - staticcheck - # text: "SA9003:" - # - # # Exclude lll issues for long lines with go:generate - # - linters: - # - lll - # source: "^//go:generate " - - # Maximum issues count per one linter. Set to 0 to disable. Default is 50. max-issues-per-linter: 0 - - # Maximum count of issues with the same text. Set to 0 to disable. Default is 3. max-same-issues: 0 - - # The default value is false. If set to true exclude and exclude-rules - # regular expressions become case sensitive. - exclude-case-sensitive: false - - # Fix found issues (if it's supported by the linter) fix: false - severity: - # Default value is empty string. - # Set the default severity for issues. If severity rules are defined and the issues - # do not match or no severity is provided to the rule this will be the default - # severity applied. Severities should match the supported severity names of the - # selected out format. - # - Code climate: https://docs.codeclimate.com/docs/issues#issue-severity - # - Checkstyle: https://checkstyle.sourceforge.io/property_types.html#severity - # - Github: https://help.github.com/en/actions/reference/workflow-commands-for-github-actions#setting-an-error-message - default-severity: info - - # The default value is false. - # If set to true severity-rules regular expressions become case sensitive. - case-sensitive: false - - # Default value is empty list. - # When a list of severity rules are provided, severity information will be added to lint - # issues. Severity rules have the same filtering capability as exclude rules except you - # are allowed to specify one matcher per severity rule. - # Only affects out formats that support setting severity information. -# rules: -# - linters: -# - dupl -# severity: info \ No newline at end of file + default: info +formatters: + enable: + - gci + - gofumpt + exclusions: + generated: lax + paths: + - third_party$ + - builtin$ + - examples$