diff --git a/.golangci.yml b/.golangci.yml
index 83ea9d20d..86b71194a 100644
--- a/.golangci.yml
+++ b/.golangci.yml
@@ -4,91 +4,92 @@
#
# For GoToSocial we mostly take the default linters, but we add a few to catch style issues as well.
+version: "2"
# options for analysis running
run:
# include test files or not, default is true
tests: false
- # timeout for analysis, e.g. 30s, 5m, default is 1m
- timeout: 5m
-
linters:
# enable some extra linters, see here for the list: https://golangci-lint.run/usage/linters/
enable:
- gocritic
- - gofmt
- goheader
- gosec
- nilerr
- revive
+ # https://golangci-lint.run/usage/linters/#linters-configuration
+ settings:
+ # https://golangci-lint.run/usage/linters/#goheader
+ goheader:
+ template: |-
+ GoToSocial
+ Copyright (C) GoToSocial Authors admin@gotosocial.org
+ SPDX-License-Identifier: AGPL-3.0-or-later
-# https://golangci-lint.run/usage/linters/#linters-configuration
-linters-settings:
- # https://golangci-lint.run/usage/linters/#goheader
- goheader:
- template: |-
- GoToSocial
- Copyright (C) GoToSocial Authors admin@gotosocial.org
- SPDX-License-Identifier: AGPL-3.0-or-later
-
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU Affero General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Affero General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU Affero General Public License for more details.
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Affero General Public License for more details.
- You should have received a copy of the GNU Affero General Public License
- along with this program. If not, see .
- # https://golangci-lint.run/usage/linters/#govet
- govet:
- disable:
- - composites
- # https://golangci-lint.run/usage/linters/#revive
- revive:
- rules:
- # Enable most default rules.
- # See: https://github.com/mgechev/revive/blob/master/defaults.toml
- - name: blank-imports
- - name: context-as-argument
- - name: context-keys-type
- - name: dot-imports
- - name: error-naming
- - name: error-return
- - name: error-strings
- - name: exported
- - name: if-return
- - name: increment-decrement
- - name: var-naming
- - name: var-declaration
- - name: package-comments
- - name: range
- - name: receiver-naming
- - name: time-naming
- - name: unexported-return
- - name: indent-error-flow
- - name: errorf
- - name: empty-block
- - name: superfluous-else
- - name: unreachable-code
- # Disable below rules.
- - name: redefines-builtin-id
- disabled: true # This one is just annoying.
- - name: unused-parameter
- disabled: true # We often pass parameters to fulfil interfaces.
- # https://golangci-lint.run/usage/linters/#staticcheck
- staticcheck:
- # Enable all checks, but disable SA1012: nil context passing.
- # See: https://staticcheck.io/docs/configuration/options/#checks
- checks: ["all", "-SA1012"]
-
-issues:
- exclude-rules:
- # Exclude VSCode custom folding region comments in files that use them.
- # Already fixed in go-critic and can be removed next time go-critic is updated.
- - linters:
- - gocritic
- path: internal/db/filter.go
- text: 'commentFormatting: put a space between `//` and comment text'
+ You should have received a copy of the GNU Affero General Public License
+ along with this program. If not, see .
+ # https://golangci-lint.run/usage/linters/#govet
+ govet:
+ disable:
+ - composites
+ # https://golangci-lint.run/usage/linters/#revive
+ revive:
+ rules:
+ # Enable most default rules.
+ # See: https://github.com/mgechev/revive/blob/master/defaults.toml
+ - name: blank-imports
+ - name: context-as-argument
+ - name: context-keys-type
+ - name: dot-imports
+ - name: error-naming
+ - name: error-return
+ - name: error-strings
+ - name: exported
+ - name: if-return
+ - name: increment-decrement
+ - name: var-naming
+ - name: var-declaration
+ - name: package-comments
+ - name: range
+ - name: receiver-naming
+ - name: time-naming
+ - name: unexported-return
+ - name: indent-error-flow
+ - name: errorf
+ - name: empty-block
+ - name: superfluous-else
+ - name: unreachable-code
+ # Disable below rules.
+ - name: redefines-builtin-id
+ disabled: true
+ - name: unused-parameter
+ disabled: true
+ # https://golangci-lint.run/usage/linters/#staticcheck
+ staticcheck:
+ # Enable all checks, but disable SA1012: nil context passing.
+ # See: https://staticcheck.io/docs/configuration/options/#checks
+ checks:
+ - SA*
+ - -SA1012
+ exclusions:
+ generated: lax
+ presets:
+ - comments
+ - common-false-positives
+ - legacy
+ - std-error-handling
+formatters:
+ enable:
+ - gofmt
+ exclusions:
+ generated: lax
diff --git a/.woodpecker/pr.yaml b/.woodpecker/pr.yaml
index b1ff0fcec..050b989e4 100644
--- a/.woodpecker/pr.yaml
+++ b/.woodpecker/pr.yaml
@@ -22,7 +22,7 @@ steps:
# We use golangci-lint for linting.
# See: https://golangci-lint.run/
- image: golangci/golangci-lint:v1.64.8
+ image: golangci/golangci-lint:v2.1.6
pull: true
# https://woodpecker-ci.org/docs/administration/configuration/backends/docker#run-user