mirror of
https://github.com/status-im/consul.git
synced 2025-01-10 13:55:55 +00:00
76b5de5039
* Upgrade Go to 1.21 * ci: detect Go backwards compatibility test version automatically For our submodules and other places we choose to test against previous Go versions, detect this version automatically from the current one rather than hard-coding it.
114 lines
3.5 KiB
YAML
114 lines
3.5 KiB
YAML
# Copyright (c) HashiCorp, Inc.
|
|
# SPDX-License-Identifier: BUSL-1.1
|
|
|
|
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'
|
|
|
|
# Allow usage of deprecated values.
|
|
- linters: [ staticcheck ]
|
|
text: 'SA1019:'
|
|
path: "(agent/grpc-external)"
|
|
|
|
# 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 _ce(_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 CE, and will need to be excluded.
|
|
- linters: [unparam]
|
|
path: "(_ce.go|_ce_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:
|
|
rules:
|
|
main:
|
|
listMode: lax
|
|
deny:
|
|
- pkg: net/rpc
|
|
desc: "only use forked copy in github.com/hashicorp/consul-net-rpc/net/rpc"
|
|
- pkg: github.com/golang/protobuf
|
|
desc: "only use google.golang.org/protobuf"
|
|
|
|
run:
|
|
timeout: 10m
|
|
concurrency: 4
|
|
skip-dirs-use-default: false
|