linters:
    enable:
        - bodyclose
        - errcheck
        - gosimple
        - govet
        - gosec
        - goconst
        - gocritic
        - gocyclo
        - gofmt
        - goimports
        - ineffassign
        - misspell
        - nakedret
        - prealloc
        #- revive
        - staticcheck
        - typecheck
        - unused
        - unconvert
        - unparam
linters-settings:
    gosec:
      excludes:
        - G115
    errcheck:
      exclude-functions:
        - fmt.Fprint
        - fmt.Fprintf
    goconst:
        # minimal length of string constant
        # default: 3
        min-len: 2
        # minimum number of occurrences of string constant
        # default: 3
        min-occurences: 2
    misspell:
        locale: UK
        ignore-words:
            - color
issues:
    # Maximum count of issues with the same text. Set to 0 to disable. Default is 3.
    # We have chosen an arbitrary value that works based on practical usage.
    max-same: 20
    # See cmdline flag documentation for more info about default excludes --exclude-use-default
    # Nothing is excluded by default
    exclude-use-default: false
    # Excluding configuration per-path, per-linter, per-text and per-source
    exclude-rules:
        # Exclude some linters from running on tests files. # TODO: Add examples why this is good

        - path: _test\.go
          linters:
              # Tests should be simple? Add example why this is good?
              - gocyclo
              # Error checking adds verbosity and complexity for minimal value
              - errcheck
              # Table test encourage duplication in defining the table tests.
              - dupl
              # Hard coded example tokens, SQL injection and other bad practices may
              # want to be tested
              - gosec