diff options
author | Jaime Martinez <jmartinez@gitlab.com> | 2020-05-21 03:52:19 +0300 |
---|---|---|
committer | Jaime Martinez <jmartinez@gitlab.com> | 2020-05-28 04:10:14 +0300 |
commit | f6dfa5d0043aeaa616c16f8babb64c0d0e8f72dd (patch) | |
tree | f8cbab7f2c4a30c07f827a50d7877c388e18616f /.golangci.yml | |
parent | 559311801a1e9114f8dee71faa388dcefab3dcbe (diff) |
Add .golangci.yml linter configuration
As part of https://gitlab.com/gitlab-org/gitlab-pages/-/issues/385
we have introduced the use of a custom `.golangci.yml` file with some
custom rules for linting.
This replaces the need of downloading and using `golint`, `gofmt`
`go vet` and `gocyclo` manually. We take advantage of the custom
`golangci-lint` docker image as stated in the [Automatic lintinb]
(https://docs.gitlab.com/ee/development/go_guide/#automatic-linting)
section of the Go standards and style guidelines.
This iteration enables a subset of linters, with the remaining
of them enabled on a separate MR as described in the issue above.
The main changes introduced by this linter include:
- gosec: potential hardcoded credentials
- goconst: DRY by declaring and using constants
- gosimple: reduce statements complexity and improve return statements
Diffstat (limited to '.golangci.yml')
-rw-r--r-- | .golangci.yml | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/.golangci.yml b/.golangci.yml new file mode 100644 index 00000000..9545dd52 --- /dev/null +++ b/.golangci.yml @@ -0,0 +1,60 @@ +run: + concurrency: 8 + deadline: 1m + issues-exit-code: 1 + modules-download-mode: vendor + tests: true + skip-dirs: + - vendor + - internal/httputil # from github.com/golang/gddo + skip-files: + - mock_*.go + +output: + format: colored-line-number + print-issued-lines: true + print-linter-name: true + +linters-settings: + gocyclo: + min-complexity: 10 + govet: + check-shadowing: false + goconst: + min-len: 3 + min-occurrences: 3 + +linters: + disable-all: true + enable: +# TODO: enable these linters on a separate MR https://gitlab.com/gitlab-org/gitlab-pages/-/issues/385#linters +# - bodyclose +# - deadcode +# - dogsled + - goconst + - gocyclo + - goimports + - golint + - gosimple + - govet + - gosec +# - ineffassign +# - misspell +# - structcheck +# - typecheck +# - unconvert +# - unused +# - varcheck +# - whitespace + fast: false + +issues: +# # Excluding configuration per-path, per-linter, per-text and per-source + exclude-rules: + - path: ".*_test.go" + linters: + - bodyclose + - gosec + - path: "internal/fixture/fixtures.go" + linters: + - gosec |