mirror of
https://github.com/lunchcat/sif.git
synced 2026-04-28 11:33:06 -07:00
- add golangci-lint job to go.yml (parallel with build+test) - add Go 1.23/1.24 version matrix, coverage only on 1.24 - upgrade setup-go@v4 to v5, codecov@v4 to v5 across all workflows - fix check-large-files bug (find|while never exits 1), exclude .git/ - add concurrency groups to push+PR workflows (no duplicate runs) - lowercase all workflow names to match project voice - add gosec, errorlint, gocognit, nilnil, wastedassign, usetesting linters - remove deprecated exportloopref (Go 1.22 fixed loop var capture) - new: govulncheck.yml - Go vuln scanner with call-graph analysis - new: scorecard.yml - OpenSSF supply chain scorecard - new: dependabot.yml - auto-update Go deps + Actions versions - release: SHA256 checksums + SBOM generation for all artifacts - add CODEOWNERS
51 lines
1.4 KiB
YAML
51 lines
1.4 KiB
YAML
linters:
|
|
enable:
|
|
- errcheck # check error returns
|
|
- govet # suspicious constructs
|
|
- staticcheck # advanced static analysis
|
|
- unused # unused code
|
|
- gosimple # simplifications
|
|
- ineffassign # useless assignments
|
|
- misspell # spelling mistakes
|
|
- gocritic # opinionated lints
|
|
- revive # replacement for golint
|
|
- unconvert # unnecessary type conversions
|
|
- prealloc # slice preallocation hints
|
|
- bodyclose # http response body not closed
|
|
- noctx # http requests without context
|
|
- gosec # security issues
|
|
- errorlint # error wrapping and comparison
|
|
- gocognit # cognitive complexity
|
|
- nilnil # return nil, nil
|
|
- wastedassign # assignments to variables never read
|
|
- usetesting # os.Setenv in tests instead of t.Setenv, etc.
|
|
|
|
linters-settings:
|
|
govet:
|
|
enable-all: true
|
|
errcheck:
|
|
check-blank: false
|
|
revive:
|
|
rules:
|
|
- name: exported
|
|
arguments: [checkPrivateReceivers]
|
|
gocritic:
|
|
enabled-tags:
|
|
- diagnostic
|
|
- style
|
|
- performance
|
|
gosec:
|
|
excludes:
|
|
- G104 # errcheck covers this
|
|
- G304 # sif reads user-supplied wordlist paths — intentional
|
|
gocognit:
|
|
min-complexity: 30
|
|
|
|
run:
|
|
timeout: 5m
|
|
issues-exit-code: 1
|
|
|
|
issues:
|
|
max-issues-per-linter: 50
|
|
max-same-issues: 3
|