diff --git a/.github/workflows/go.yml b/.github/workflows/go.yml index 236acaa..dd62461 100644 --- a/.github/workflows/go.yml +++ b/.github/workflows/go.yml @@ -25,7 +25,7 @@ jobs: - name: Run golangci-lint uses: golangci/golangci-lint-action@v2 with: - version: v1.29 + version: v1.42.1 only-new-issues: true args: -c ./.golangci.yml skip-go-installation: true diff --git a/.golangci.yml b/.golangci.yml index ba5ffe0..38bb906 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -1,23 +1,40 @@ linters: enable-all: true disable: - - lll - - gochecknoinits - - gochecknoglobals + - cyclop + - exhaustivestruct + - forbidigo - funlen - - whitespace - - wsl - - gomnd - - goerr113 - - testpackage - - nestif + - gochecknoglobals + - gochecknoinits - gocognit - - noctx - gocyclo + - goerr113 + - gomnd + - ifshort + - lll + - nestif + - nlreturn + - noctx + - revive + - testpackage + - whitespace + - wrapcheck + - wsl linters-settings: + gci: + # put imports beginning with prefix after 3rd-party packages; + # only support one prefix + # if not set, use goimports.local-prefixes + local-prefixes: github.com/safing godox: # report any comments starting with keywords, this is useful for TODO or FIXME comments that # might be left in the code accidentally and should be resolved before merging keywords: - FIXME + gosec: + # To specify a set of rules to explicitly exclude. + # Available rules: https://github.com/securego/gosec#available-rules + excludes: + - G505 # We need crypto/sha1 for the HIBP API. diff --git a/test b/test index b8917ef..d029724 100755 --- a/test +++ b/test @@ -1,5 +1,9 @@ #!/bin/bash +# config +GOLANGCI_LINT_VERSION="1.42.1" + +# internal variables warnings=0 errors=0 scripted=0 @@ -123,8 +127,8 @@ if [[ $install -eq 1 ]]; then echo "$ go get -u golang.org/x/lint/golint" go get -u golang.org/x/lint/golint # TODO: update golangci-lint version regularly - echo "$ curl -sfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(go env GOPATH)/bin v1.24.0" - curl -sfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(go env GOPATH)/bin v1.24.0 + echo "$ curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(go env GOPATH)/bin v${GOLANGCI_LINT_VERSION}" + curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(go env GOPATH)/bin v${GOLANGCI_LINT_VERSION} exit 0 fi @@ -146,13 +150,17 @@ if [[ $testonly -eq 0 ]]; then fi if [[ $(which golangci-lint) == "" ]]; then echo "golangci-lint command not found" - echo "install with: curl -sfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(go env GOPATH)/bin vX.Y.Z" + echo "install with: curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(go env GOPATH)/bin vX.Y.Z" echo "don't forget to specify the version you want" echo "or run: ./test install" echo "" echo "alternatively, install the current dev version with: go get -u github.com/golangci/golangci-lint/cmd/golangci-lint" exit 1 fi + if [[ $(golangci-lint --version | cut -d" " -f4) != "${GOLANGCI_LINT_VERSION}" ]]; then + echo "detected different golangci-lint version $(golangci-lint --version | cut -d" " -f4), expected configured version ${GOLANGCI_LINT_VERSION}, please fix your environment, possibly try: ./test install" + exit 1 + fi fi # target selection