status-im/status-go

View on GitHub
.golangci.yml

Summary

Maintainability
Test Coverage
run:
  concurrency: 0
  timeout: 10m
  issues-exit-code: 1
  modules-download-mode: vendor
  tests: true
  skip-dirs:
    - static
    - vendor
  skip-files:
    - bindata.go
    - .*_mock.go
    - contracts/
    - eth-node/crypto/ecies/ # copied
    - eth-node/keystore/ # copied

output:
  format: colored-line-number
  print-issued-lines: true
  print-linter-name: true

linters-settings:
  errcheck:
    check-type-assertions: false
    check-blank: false
  govet:
    check-shadowing: false
  golint:
    min-confidence: 0.8
  gofmt:
    simplify: true
  goimports:
    local-prefixes: github.com/ethereum/go-ethereum,github.com/status-im/status-go,github.com/waku-org/go-waku
  maligned:
    suggest-new: true
  dupl:
    threshold: 50
  goconst:
    min-len: 3
    min-occurrences: 2

linters:
  disable-all: true
  enable:
    - errcheck
    - gosec
    - goimports
    - govet
    - ineffassign
    - megacheck
    - misspell
    # You can't disable typecheck, see:
    # https://github.com/golangci/golangci-lint/blob/master/docs/src/docs/welcome/faq.mdx#why-do-you-have-typecheck-errors
    - typecheck
    - unconvert
  fast: false

issues:
  exclude:
    - "composite literal uses unkeyed fields" # govet
    - "G304: Potential file inclusion via variable" # gosec
    - "G104: Errors unhandled." #gosec
    - "lib._Ctype_char, which can be annoying to use" # golint
    - "SA1019" # staticcheck
  exclude-rules:
    - path: eth-node/keystore/passphrase\.go
      text: "make it a constant"
      linters:
        - goconst
    - path: protocol/message_handler\.go
      text: "make it a constant"
      linters:
        - goconst
    - path: protocol/.*_test\.go
      text: "make it a constant"
      linters:
        - goconst