Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-pages.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJaime Martinez <jmartinez@gitlab.com>2020-05-21 03:52:19 +0300
committerJaime Martinez <jmartinez@gitlab.com>2020-05-28 04:10:14 +0300
commitf6dfa5d0043aeaa616c16f8babb64c0d0e8f72dd (patch)
treef8cbab7f2c4a30c07f827a50d7877c388e18616f /.golangci.yml
parent559311801a1e9114f8dee71faa388dcefab3dcbe (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.yml60
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