# 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
    - ".*_test.go"


# 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-all: true
  disable:
    - interfacer
    - gocritic
    - scopelint
    - gochecknoglobals
    - gochecknoinits
    - prealloc
    - maligned
    - goconst # disabled until it's possible to configure
  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