# options for analysis running
run:
  # default concurrency is a available CPU number
  concurrency: 4

  # timeout for analysis, e.g. 30s, 5m, default is 1m
  deadline: 2m

  # which files to skip: they will be analyzed, but issues from them
  # won't be reported. Default value is empty list, but there is
  # no need to include all autogenerated files, we confidently recognize
  # autogenerated files. If it's not please let us know.
  skip-files:
    - ".*generated.*"
    - dnsfilter/rule_to_regexp.go
    - util/pprof.go
    - ".*_test.go"
    - client/.*
    - build/.*
    - dist/.*


# all available settings of specific linters
linters-settings:
  errcheck:
    # [deprecated] comma-separated list of pairs of the form pkg:regex
    # the regex is used to ignore names within pkg. (default "fmt:.*").
    # see https://github.com/kisielk/errcheck#the-deprecated-method for details
    ignore: fmt:.*,net:SetReadDeadline,net/http:^Write
  gocyclo:
    min-complexity: 20
  lll:
    line-length: 200

linters:
  enable:
    - deadcode
    - errcheck
    - govet
    - ineffassign
    - staticcheck
    - structcheck
    - unused
    - varcheck
    - bodyclose
    - depguard
    - dupl
    - gocyclo
    - goimports
    - golint
    - gosec
    - misspell
    - stylecheck
    - unconvert
  disable-all: true
  fast: true

issues:
  # List of regexps of issue texts to exclude, empty list by default.
  # But independently from this option we use default exclude patterns,
  # it can be disabled by `exclude-use-default: false`. To list all
  # excluded by default patterns execute `golangci-lint run --help`
  exclude:
    # structcheck cannot detect usages while they're there
    - .parentalServer. is unused
    - .safeBrowsingServer. is unused
    # errcheck
    - Error return value of .s.closeConn. is not checked
    - Error return value of ..*.Shutdown.
    # goconst
    - string .forcesafesearch.google.com. has 3 occurrences
    # gosec: Profiling endpoint is automatically exposed on /debug/pprof
    - G108
    # gosec: Subprocess launched with function call as argument or cmd arguments
    - G204
    # gosec: Potential DoS vulnerability via decompression bomb
    - G110
    # gosec: Expect WriteFile permissions to be 0600 or less
    - G306
