Skip to content

Commit

Permalink
add golangci config
Browse files Browse the repository at this point in the history
  • Loading branch information
mfleader committed Feb 1, 2024
1 parent ccc8a57 commit 767dc08
Showing 1 changed file with 88 additions and 0 deletions.
88 changes: 88 additions & 0 deletions .golangci.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
run:
timeout: 5m
linters:
enable:
# region General

# Add depguard to prevent adding additional dependencies. This is a client library, we really don't want
# additional dependencies.
- depguard
# Prevent improper directives in go.mod.
- gomoddirectives
# Prevent improper nolint directives.
- nolintlint

# endregion


# region Code Quality and Comments

# Inspect source code for potential security problems. This check has a fairly high false positive rate,
# comment with // nolint:gosec where not relevant.
- gosec
# Complain about deeply nested if cases.
- nestif
# Prevent naked returns in long functions.
- nakedret
# Make Go code more readable.
- gocritic
# Check if comments end in a period. This helps prevent incomplete comment lines, such as half-written sentences.
- godot
# Complain about comments as these indicate incomplete code.
- godox
# Keep the cyclomatic complexity of functions to a reasonable level.
- gocyclo
# Find repeated strings that could be converted into constants.
- goconst
# Complain about unnecessary type conversions.
- unconvert
# Complain about unused parameters. These should be replaced with underscores.
- unparam
# Check for non-ASCII identifiers.
- asciicheck
# Check for HTTP response body being closed. Sometimes, you may need to disable this using // nolint:bodyclose.
- bodyclose
# Check for duplicate code. You may want to disable this with // nolint:dupl if the source code is the same, but
# legitimately exists for different reasons.
- dupl
# Check for pointers in loops. This is a typical bug source.
- exportloopref
# Prevent dogsledding (mass-ignoring return values). This typically indicates missing error handling.
- dogsled
# Enforce consistent import aliases across all files.
- importas
# Make code properly formatted.
- gofmt
# Prevent faulty error checks.
- nilerr
# Prevent direct error checks that won't work with wrapped errors.
- errorlint
# Find slice usage that could potentially be preallocated.
- prealloc
# Check for improper duration handling.
- durationcheck


# endregion
linters-settings:
depguard:
rules:
main:
list-mode: strict
allow:
- $gostd
- go.flow.arcalot.io/
- go.arcalot.io/
- k8s.io/
govet:
enable-all: true
check-shadowing: false
disable:
# We don't care about variable shadowing.
- shadow
- fieldalignment
stylecheck:
checks:
- all
issues:
exclude-use-default: false

0 comments on commit 767dc08

Please sign in to comment.