Commit 806142a
authored
π€ ci: run golangci-lint via go tool with vendored deps (#25)
## Summary
Switch the CI lint job to run `golangci-lint` via Go tool dependencies
in vendored mode, so CI can reuse vendored project deps instead of
downloading modules during lint execution.
## Background
The lint workflow was invoking formatter checks with `go run
...@v2.8.0`, which forces a network module download of golangci-lint and
its transitive dependencies on each run. We already vendor dependencies
in this repo, so lint should use that same source of truth.
## Implementation
- Added `github.com/golangci/golangci-lint/v2/cmd/golangci-lint` to the
`tool (...)` block in `go.mod`.
- Regenerated module metadata and vendoring (`go mod tidy`, `go mod
vendor`), updating `go.sum` and `vendor/`.
- Updated `.github/workflows/ci.yaml` lint job to:
- set `GOFLAGS: -mod=vendor` at job scope,
- replace `golangci/golangci-lint-action` invocation with:
- `go tool golangci-lint run --timeout=5m ./...`
- `go tool golangci-lint fmt --diff`
## Validation
- `go mod tidy`
- `go mod vendor`
- `GOPROXY=off GOFLAGS=-mod=vendor go tool golangci-lint fmt --diff`
- `GOPROXY=off GOFLAGS=-mod=vendor go tool golangci-lint run
--timeout=5m ./...`
- `make test`
- `make build`
- `go run github.com/rhysd/actionlint/cmd/actionlint@v1.7.10`
## Risks
- **Low functional risk**: behavior change is isolated to CI
workflow/tool invocation.
- **Review noise risk**: vendoring the linter introduces a large
`vendor/` diff, but this is expected from pinning golangci-lint as a
vendored Go tool.
---
_Generated with `mux` β’ Model: `openai:gpt-5.3-codex` β’ Thinking:
`xhigh` β’ Cost: `$0.24`_
<!-- mux-attribution: model=openai:gpt-5.3-codex thinking=xhigh
costs=0.24 -->1 parent c1fbc5b commit 806142a
3,584 files changed
Lines changed: 624142 additions & 1027 deletions
File tree
- .github/workflows
- vendor
- 4d63.com
- gocheckcompilerdirectives
- checkcompilerdirectives
- gochecknoglobals
- checknoglobals
- codeberg.org
- chavacava/garif
- polyfloyd/go-errorlint
- errorlint
- dev.gaijin.team/go
- exhaustruct/v4
- analyzer
- internal
- comment
- pattern
- structure
- golib
- e
- fields
- github.com
- 4meepo/tagalign
- Abirdcfly/dupword
- AdminBenni/iota-mixing
- pkg/analyzer
- flags
- AlwxSin/noinlineerr
- Antonboom
- errname
- pkg/analyzer
- nilnil
- pkg/analyzer
- testifylint
- analyzer
- internal
- analysisutil
- checkers
- printf
- config
- testify
- BurntSushi/toml
- internal
- Djarvur/go-err113
- MirrexOne/unqueryvet
- internal/analyzer
- sqlbuilders
- pkg/config
- OpenPeeDeeP/depguard/v2
- internal/utils
- alecthomas
- chroma/v2
- formatters
- html
- svg
- lexers
- embedded
- quick
- styles
- go-check-sumtype
- alexkohler
- nakedret/v2
- prealloc
- pkg
- alfatraining/structtag
- alingse
- asasalint
- nilnesserr
- internal/typeparams
- ashanbrown
- forbidigo/v2
- forbidigo
- makezero/v2
- makezero
- aymanbagabas/go-osc52/v2
- bkielbasa/cyclop
- pkg/analyzer
- blizzy78/varnamelen
- bmatcuk/doublestar/v4
- bombsimon/wsl
- v4
- v5
- breml
- bidichk
- pkg/bidichk
- errchkjson
- butuzov
- ireturn
- analyzer
- internal
- config
- types
- mirror
- internal/checker
- catenacyber/perfsprint
- analyzer
- ccojocar/zxcvbn-go
- adjacency
- data
- entropy
- frequency
- matching
- match
- scoring
- utils/math
- charithe/durationcheck
- charmbracelet
- colorprofile
- lipgloss
- x
- ansi
- kitty
- parser
- cellbuf
- term
- ckaznocha/intrange
- curioswitch/go-reassign
- internal/analyzer
- daixiang0/gci
- pkg
- config
- format
- gci
- io
- log
- parse
- section
- specificity
- utils
- dave/dst
- decorator
- resolver
- gopackages
- gotypes
- dstutil
- denis-tingaikin/go-header
- dlclark/regexp2
- syntax
- ettle/strcase
- fatih/structtag
- firefart/nonamedreturns
- analyzer
- fzipp/gocyclo
- ghostiam/protogetter
- go-critic/go-critic
- checkers
- internal
- astwalk
- lintutil
- rulesdata
- linter
- go-toolsmith
- astcast
- astcopy
- astequal
- astfmt
- astp
- strparse
- typep
- go-viper/mapstructure/v2
- internal/errors
- go-xmlfmt/xmlfmt
- gobwas/glob
- compiler
- match
- syntax
- ast
- lexer
- util
- runes
- strings
- godoc-lint/godoc-lint
- pkg
- analysis
- check
- deprecated
- max_len
- no_unused_link
- pkg_doc
- require_doc
- start_with_name
- stdlib_doclink
- internal
- compose
- config
- inspect
- model
- util
- gofrs/flock
- golangci
- asciicheck
- dupl
- job
- lib
- printer
- suffixtree
- syntax
- golang
- go-printf-func-name
- pkg/analyzer
- gofmt/gofmt
- golangci-lint/v2
- cmd/golangci-lint
- internal
- cache
- errorutil
- go
- base
- cacheprog
- cache
- mmap
- quoted
- x
- tools
- analysisflags
- analysisinternal
- diff
- lcs
- pkg
- commands
- internal
- migrate
- fakeloader
- parser
- ptr
- versionone
- versiontwo
- config
- exitcodes
- fsutils
- goanalysis
- load
- pkgerrors
- goformatters
- gci
- internal
- config
- section
- gofmt
- gofumpt
- goimports
- golines
- internal
- swaggo
- goformat
- golinters
- arangolint
- asasalint
- asciicheck
- bidichk
- bodyclose
- canonicalheader
- containedctx
- contextcheck
- copyloopvar
- cyclop
- decorder
- depguard
- dogsled
- dupl
- dupword
- durationcheck
- embeddedstructfieldcheck
- err113
- errcheck
- errchkjson
- errname
- errorlint
- exhaustive
- exhaustruct
- exptostd
- fatcontext
- forbidigo
- forcetypeassert
- funcorder
- funlen
- gci
- ginkgolinter
- gocheckcompilerdirectives
- gochecknoglobals
- gochecknoinits
- gochecksumtype
- gocognit
- goconst
- gocritic
- gocyclo
- godoclint
- godot
- godox
- gofmt
- gofumpt
- goheader
- goimports
- golines
- gomoddirectives
- gomodguard
- goprintffuncname
- gosec
- gosmopolitan
- govet
- grouper
- iface
- importas
- inamedparam
- ineffassign
- interfacebloat
- internal
- intrange
- iotamixing
- ireturn
- lll
- loggercheck
- maintidx
- makezero
- mirror
- misspell
- mnd
- modernize
- musttag
- nakedret
- nestif
- nilerr
- nilnesserr
- nilnil
- nlreturn
- noctx
- noinlineerr
- nolintlint
- internal
- nonamedreturns
- nosprintfhostport
- paralleltest
- perfsprint
- prealloc
- predeclared
- promlinter
- protogetter
- reassign
- recvcheck
- revive
- rowserrcheck
- sloglint
- spancheck
- sqlclosecheck
- staticcheck
- swaggo
- tagalign
- tagliatelle
- testableexamples
- testifylint
- testpackage
- thelper
- tparallel
- unconvert
- unparam
- unqueryvet
- unused
- usestdlibvars
- usetesting
- varnamelen
- wastedassign
- whitespace
- wrapcheck
- wsl
- zerologlint
- goutil
- lint
- lintersdb
- linter
- logutils
- printers
- report
- result
- processors
- timeutils
- golines
- shorten
- internal
- annotation
- comments
- graph
- tags
- misspell
- plugin-module-register
- register
- revgrep
- swaggoswag
- unconvert
- google/go-cmp
- cmp
- internal
- diff
- flags
- function
- value
- gordonklaus/ineffassign
- pkg/ineffassign
- gostaticanalysis
- analysisutil
- comment
- passes/commentmap
- forcetypeassert
- nilerr
- hashicorp
- go-immutable-radix/v2
- go-version
- golang-lru/v2
- internal
- simplelru
- hcl
- hcl
- ast
- parser
- printer
- scanner
- strconv
- token
- json
- parser
- scanner
- token
- hexops/gotextdiff
- myers
- span
- jgautheron/goconst
- jingyugao/rowserrcheck
- passes/rowserr
- jjti/go-spancheck
- julz/importas
- karamaru-alpha/copyloopvar
- kisielk/errcheck
- errcheck
- kkHAIKE/contextcheck
- kulti/thelper
- pkg/analyzer
- kunwardeep/paralleltest
- pkg/paralleltest
- lasiar/canonicalheader
- ldez
- exptostd
- gomoddirectives
- grignotin
- goenv
- gomod
- structtags
- parser
- tagliatelle
- usetesting
- leonklingele/grouper
- pkg/analyzer
- consts
- globals
- imports
- types
- vars
- lucasb-eyer/go-colorful
- macabu/inamedparam
- magiconair/properties
- manuelarte
- embeddedstructfieldcheck
- analyzer
- internal
- funcorder
- analyzer
- internal
- maratori
- testableexamples
- pkg/testableexamples
- testpackage
- pkg/testpackage
- matoous/godox
- mattn
- go-colorable
- go-runewidth
- go-shellwords
- mgechev/revive
- config
- formatter
- internal
- astutils
- ifelse
- rule
- typeparams
- lint
- logging
- rule
- mitchellh
- go-homedir
- mapstructure
- moricho/tparallel
- pkg
- ssafunc
- ssainstr
- muesli/termenv
- nakabonne/nestif
- nishanths
- exhaustive
- predeclared
- passes/predeclared
- nunnatsa/ginkgolinter
- config
- internal
- expression
- actual
- matcher
- value
- formatter
- ginkgohandler
- ginkgoinfo
- gomegahandler
- gomegainfo
- intervals
- reports
- reverseassertion
- rules
- typecheck
- linter
- version
- pelletier/go-toml
- v2
- internal
- characters
- danger
- tracker
- unstable
- quasilyte
- go-ruleguard
- dsl
- types
- internal
- goenv
- golist
- xsrcimporter
- xtypes
- ruleguard
- goutil
- irconv
- ir
- profiling
- quasigo
- stdlib
- qfmt
- qstrconv
- qstrings
- textmatch
- typematch
- gogrep
- internal/stdinfo
- nodetag
- regex/syntax
- stdinfo
- raeperd/recvcheck
- rhysd/actionlint
- cmd/actionlint
- rivo/uniseg
- robfig/cron/v3
- rogpeppe/go-internal
- diff
- internal/syscall/windows
- sysdll
- lockedfile
- internal/filelock
- robustio
- ryancurrah/gomodguard
- ryanrolds/sqlclosecheck
- pkg/analyzer
- sanposhiho/wastedassign/v2
- santhosh-tekuri/jsonschema/v6
- kind
- metaschemas
- draft-04
- draft-06
- draft-07
- draft
- 2019-09
- meta
- 2020-12
- meta
- sashamelentyev
- interfacebloat
- pkg/analyzer
- usestdlibvars
- pkg/analyzer
- internal/mapping
- securego/gosec/v2
- analyzers
- cwe
- issue
- rules
- sirupsen/logrus
- sivchari/containedctx
- sonatard/noctx
- sourcegraph/go-diff
- diff
- spf13
- afero
- mem
- jwalterweatherman
- viper
- internal/encoding
- dotenv
- hcl
- ini
- javaproperties
- json
- toml
- yaml
- ssgreg/nlreturn/v2
- pkg/nlreturn
- stbenjam/no-sprintf-host-port
- pkg/analyzer
- stretchr
- objx
- testify
- assert
- yaml
- mock
- subosito/gotenv
- tetafro/godot
- timakin/bodyclose
- passes/bodyclose
- timonwong/loggercheck
- internal
- checkers
- printf
- rules
- sets
- stringutil
- tomarrell/wrapcheck/v2
- wrapcheck
- tommy-muehle/go-mnd/v2
- checks
- config
- ultraware
- funlen
- whitespace
- uudashr
- gocognit
- iface
- identical
- internal/directive
- opaque
- unexported
- unused
- xen0n/gosmopolitan
- xo/terminfo
- yagipy/maintidx
- pkg
- cyc
- halstvol
- yeya24/promlinter
- ykadowak/zerologlint
- gitlab.com/bosi/decorder
- go-simpler.org
- musttag
- sloglint
- go.augendre.info
- arangolint
- pkg/analyzer
- fatcontext
- pkg/analyzer
- go.opentelemetry.io/otel
- sdk
- resource
- trace
- semconv/v1.34.0
- trace
- go.uber.org/automaxprocs
- internal
- cgroups
- runtime
- maxprocs
- go.yaml.in/yaml/v4
- internal/libyaml
- golang.org/x
- exp/typeparams
- mod
- modfile
- sumdb/dirhash
- sync/semaphore
- sys/execabs
- telemetry
- counter
- internal
- configstore
- config
- counter
- crashmonitor
- mmap
- telemetry
- upload
- text/width
- tools/go/analysis
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
74 | 74 | | |
75 | 75 | | |
76 | 76 | | |
| 77 | + | |
| 78 | + | |
77 | 79 | | |
78 | 80 | | |
79 | 81 | | |
| |||
98 | 100 | | |
99 | 101 | | |
100 | 102 | | |
101 | | - | |
102 | | - | |
103 | | - | |
104 | | - | |
| 103 | + | |
105 | 104 | | |
106 | 105 | | |
107 | | - | |
108 | | - | |
109 | | - | |
110 | | - | |
111 | | - | |
112 | | - | |
113 | | - | |
114 | | - | |
115 | | - | |
116 | | - | |
117 | | - | |
118 | | - | |
119 | | - | |
120 | | - | |
121 | | - | |
| 106 | + | |
122 | 107 | | |
123 | 108 | | |
124 | | - | |
125 | | - | |
126 | | - | |
127 | | - | |
| 109 | + | |
128 | 110 | | |
129 | 111 | | |
130 | 112 | | |
| |||
235 | 217 | | |
236 | 218 | | |
237 | 219 | | |
| 220 | + | |
| 221 | + | |
238 | 222 | | |
239 | 223 | | |
240 | 224 | | |
| |||
248 | 232 | | |
249 | 233 | | |
250 | 234 | | |
251 | | - | |
| 235 | + | |
252 | 236 | | |
253 | 237 | | |
254 | 238 | | |
| |||
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 106 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
0 commit comments