mirror of
https://github.com/navidrome/navidrome.git
synced 2026-06-19 07:37:15 +00:00
32ac53dc9f
Thread the context.Context that goose.UpContext already passes into every migration through to all DB calls: tx.Exec/Query/QueryRow become tx.ExecContext/QueryContext/QueryRowContext with ctx. The shared helpers in migration.go (notice, forceFullRescan, isDBInitialized) gain a ctx parameter and all call sites are updated. No-op migration functions use blank params (_ context.Context, _ *sql.Tx). This is a behavior-preserving change: the SQL, arguments, and ordering of every migration are unchanged; only cancellation/deadline propagation is added. Add a forbidigo lint rule scoped to db/migrations/ that forbids the non-context tx.Exec/Query/QueryRow forms, preventing regression. Signed-off-by: Deluan <deluan@navidrome.org>
79 lines
1.5 KiB
YAML
79 lines
1.5 KiB
YAML
version: "2"
|
|
run:
|
|
build-tags:
|
|
- netgo
|
|
- sqlite_fts5
|
|
linters:
|
|
enable:
|
|
- asasalint
|
|
- asciicheck
|
|
- bidichk
|
|
- bodyclose
|
|
- copyloopvar
|
|
- dogsled
|
|
- durationcheck
|
|
- errorlint
|
|
- forbidigo
|
|
- gocritic
|
|
- gocyclo
|
|
- goprintffuncname
|
|
- gosec
|
|
- misspell
|
|
- nakedret
|
|
- nilerr
|
|
- rowserrcheck
|
|
- unconvert
|
|
- whitespace
|
|
disable:
|
|
- staticcheck
|
|
settings:
|
|
gocritic:
|
|
disable-all: true
|
|
enabled-checks:
|
|
- deprecatedComment
|
|
gosec:
|
|
excludes:
|
|
- G501
|
|
- G401
|
|
- G505
|
|
- G115
|
|
forbidigo:
|
|
forbid:
|
|
- pattern: 'tx\.Exec$'
|
|
msg: "use tx.ExecContext(ctx, ...) in migrations to propagate context"
|
|
- pattern: 'tx\.Query$'
|
|
msg: "use tx.QueryContext(ctx, ...) in migrations to propagate context"
|
|
- pattern: 'tx\.QueryRow$'
|
|
msg: "use tx.QueryRowContext(ctx, ...) in migrations to propagate context"
|
|
govet:
|
|
enable:
|
|
- nilness
|
|
exclusions:
|
|
rules:
|
|
- linters:
|
|
- gosec
|
|
path: _test\.go
|
|
text: "G703"
|
|
- path-except: 'db/migrations/'
|
|
linters:
|
|
- forbidigo
|
|
generated: lax
|
|
presets:
|
|
- comments
|
|
- common-false-positives
|
|
- legacy
|
|
- std-error-handling
|
|
paths:
|
|
- third_party$
|
|
- builtin$
|
|
- examples$
|
|
- node_modules
|
|
formatters:
|
|
exclusions:
|
|
generated: lax
|
|
paths:
|
|
- third_party$
|
|
- builtin$
|
|
- examples$
|
|
- node_modules
|