diff --git a/.github/workflows/backend-tests.yml b/.github/workflows/backend-tests.yml index 3ab7189..a3e4320 100644 --- a/.github/workflows/backend-tests.yml +++ b/.github/workflows/backend-tests.yml @@ -23,9 +23,9 @@ jobs: go mod tidy git diff --exit-code - name: golangci-lint - uses: golangci/golangci-lint-action@v6 + uses: golangci/golangci-lint-action@v7 with: - version: v1.61.0 + version: v2.0.2 args: --verbose --timeout=3m skip-cache: true diff --git a/.golangci.yaml b/.golangci.yaml index f10b5c2..b97938f 100644 --- a/.golangci.yaml +++ b/.golangci.yaml @@ -1,7 +1,7 @@ +version: "2" + linters: enable: - - errcheck - - goimports - revive - govet - staticcheck @@ -14,77 +14,88 @@ linters: - forbidigo - mirror - bodyclose + disable: + - errcheck + settings: + exhaustive: + explicit-exhaustive-switch: false + staticcheck: + checks: + - all + - -ST1000 + - -ST1003 + - -ST1021 + - -QF1003 + revive: + # Default to run all linters so that new rules in the future could automatically be added to the static check. + enable-all-rules: true + rules: + # The following rules are too strict and make coding harder. We do not enable them for now. + - name: file-header + disabled: true + - name: line-length-limit + disabled: true + - name: function-length + disabled: true + - name: max-public-structs + disabled: true + - name: function-result-limit + disabled: true + - name: banned-characters + disabled: true + - name: argument-limit + disabled: true + - name: cognitive-complexity + disabled: true + - name: cyclomatic + disabled: true + - name: confusing-results + disabled: true + - name: add-constant + disabled: true + - name: flag-parameter + disabled: true + - name: nested-structs + disabled: true + - name: import-shadowing + disabled: true + - name: early-return + disabled: true + - name: use-any + disabled: true + - name: exported + disabled: true + - name: unhandled-error + disabled: true + - name: if-return + disabled: true + - name: max-control-nesting + disabled: true + - name: redefines-builtin-id + disabled: true + - name: package-comments + disabled: true + gocritic: + disabled-checks: + - ifElseChain + govet: + settings: + printf: # The name of the analyzer, run `go tool vet help` to see the list of all analyzers + funcs: # Run `go tool vet help printf` to see the full configuration of `printf`. + - common.Errorf + enable-all: true + disable: + - fieldalignment + - shadow + forbidigo: + forbid: + - pattern: 'fmt\.Errorf(# Please use errors\.Wrap\|Wrapf\|Errorf instead)?' + - pattern: 'ioutil\.ReadDir(# Please use os\.ReadDir)?' -issues: - include: - # https://golangci-lint.run/usage/configuration/#command-line-options - exclude: - - Rollback - - fmt.Printf - -linters-settings: - goimports: - # Put imports beginning with prefix after 3rd-party packages. - local-prefixes: github.com/yourselfhosted/slash - revive: - # Default to run all linters so that new rules in the future could automatically be added to the static check. - enable-all-rules: true - rules: - # The following rules are too strict and make coding harder. We do not enable them for now. - - name: file-header - disabled: true - - name: line-length-limit - disabled: true - - name: function-length - disabled: true - - name: max-public-structs - disabled: true - - name: function-result-limit - disabled: true - - name: banned-characters - disabled: true - - name: argument-limit - disabled: true - - name: cognitive-complexity - disabled: true - - name: cyclomatic - disabled: true - - name: confusing-results - disabled: true - - name: add-constant - disabled: true - - name: flag-parameter - disabled: true - - name: nested-structs - disabled: true - - name: import-shadowing - disabled: true - - name: early-return - disabled: true - - name: use-any - disabled: true - - name: var-naming - disabled: true - - name: unchecked-type-assertion - disabled: true - - name: max-control-nesting - disabled: true - - name: exported - arguments: - - "disableStutteringCheck" - gocritic: - disabled-checks: - - ifElseChain - govet: - settings: - printf: # The name of the analyzer, run `go tool vet help` to see the list of all analyzers - funcs: # Run `go tool vet help printf` to see the full configuration of `printf`. - - common.Errorf - enable-all: true - disable: - - fieldalignment - - shadow - forbidigo: - forbid: - - 'fmt\.Errorf(# Please use errors\.Wrap\|Wrapf\|Errorf instead)?' - - 'ioutil\.ReadDir(# Please use os\.ReadDir)?' +formatters: + enable: + - goimports + settings: + goimports: + local-prefixes: + - github.com/usememos/memos