113 lines
3.6 KiB
YAML
113 lines
3.6 KiB
YAML
# Copyright (c) HashiCorp, Inc.
|
|
# SPDX-License-Identifier: MPL-2.0
|
|
|
|
linters:
|
|
disable-all: true
|
|
enable:
|
|
- gofmt
|
|
- govet
|
|
- unconvert
|
|
- staticcheck
|
|
- ineffassign
|
|
- unparam
|
|
- forbidigo
|
|
- gomodguard
|
|
- depguard
|
|
|
|
issues:
|
|
# Disable the default exclude list so that all excludes are explicitly
|
|
# defined in this file.
|
|
exclude-use-default: false
|
|
|
|
exclude-rules:
|
|
# Temp Ignore SA9004: only the first constant in this group has an explicit type
|
|
# https://staticcheck.io/docs/checks#SA9004
|
|
- linters: [staticcheck]
|
|
text: "SA9004:"
|
|
|
|
- linters: [staticcheck]
|
|
text: 'SA1019: "io/ioutil" has been deprecated since Go 1.16'
|
|
|
|
# An argument that always receives the same value is often not a problem.
|
|
- linters: [unparam]
|
|
text: "always receives"
|
|
|
|
# Often functions will implement an interface that returns an error without
|
|
# needing to return an error. Sometimes the error return value is unnecessary
|
|
# but a linter can not tell the difference.
|
|
- linters: [unparam]
|
|
text: 'result \d+ \(error\) is always nil'
|
|
|
|
# Allow unused parameters to start with an underscore. Arguments with a name
|
|
# of '_' are already ignored.
|
|
# Ignoring longer names that start with underscore allow for better
|
|
# self-documentation than a single underscore by itself. Underscore arguments
|
|
# should generally only be used when a function is implementing an interface.
|
|
- linters: [unparam]
|
|
text: "`_[^`]*` is unused"
|
|
|
|
# Temp ignore some common unused parameters so that unparam can be added
|
|
# incrementally.
|
|
- linters: [unparam]
|
|
text: "`(t|resp|req|entMeta)` is unused"
|
|
|
|
# Temp ignore everything in _oss(_test).go and _ent(_test).go. Many of these
|
|
# could use underscore to ignore the unused arguments, but the "always returns"
|
|
# issue will likely remain in oss, and will need to be excluded.
|
|
- linters: [unparam]
|
|
path: "(_oss.go|_oss_test.go|_ent.go|_ent_test.go)"
|
|
|
|
linters-settings:
|
|
govet:
|
|
check-shadowing: true
|
|
enable-all: true
|
|
disable:
|
|
- fieldalignment
|
|
- nilness
|
|
- shadow
|
|
- unusedwrite
|
|
gofmt:
|
|
simplify: true
|
|
forbidigo:
|
|
# Forbid the following identifiers (list of regexp).
|
|
forbid:
|
|
- '\bioutil\b(# Use io and os packages instead of ioutil)?'
|
|
- '\brequire\.New\b(# Use package-level functions with explicit TestingT)?'
|
|
- '\bassert\.New\b(# Use package-level functions with explicit TestingT)?'
|
|
# Exclude godoc examples from forbidigo checks.
|
|
# Default: true
|
|
exclude_godoc_examples: false
|
|
gomodguard:
|
|
blocked:
|
|
# List of blocked modules.
|
|
modules:
|
|
# Blocked module.
|
|
- github.com/hashicorp/net-rpc-msgpackrpc:
|
|
recommendations:
|
|
- github.com/hashicorp/consul-net-rpc/net-rpc-msgpackrpc
|
|
- github.com/hashicorp/go-msgpack:
|
|
recommendations:
|
|
- github.com/hashicorp/consul-net-rpc/go-msgpack
|
|
- github.com/golang/protobuf:
|
|
recommendations:
|
|
- google.golang.org/protobuf
|
|
|
|
depguard:
|
|
list-type: denylist
|
|
include-go-root: true
|
|
# A list of packages for the list type specified.
|
|
# Default: []
|
|
packages:
|
|
- net/rpc
|
|
# A list of packages for the list type specified.
|
|
# Specify an error message to output when a denied package is used.
|
|
# Default: []
|
|
packages-with-error-message:
|
|
- net/rpc: "only use forked copy in github.com/hashicorp/consul-net-rpc/net/rpc"
|
|
- github.com/golang/protobuf: "only use google.golang.org/protobuf"
|
|
|
|
run:
|
|
timeout: 10m
|
|
concurrency: 4
|
|
skip-dirs-use-default: false
|