chore(veans): add veans-local golangci config
This commit is contained in:
parent
35aa486eb5
commit
8ef796f016
|
|
@ -0,0 +1,106 @@
|
|||
version: "2"
|
||||
run:
|
||||
tests: true
|
||||
build-tags:
|
||||
- mage
|
||||
linters:
|
||||
enable:
|
||||
- asasalint
|
||||
- asciicheck
|
||||
- bidichk
|
||||
- bodyclose
|
||||
- contextcheck
|
||||
- err113
|
||||
- errchkjson
|
||||
- errorlint
|
||||
- exhaustive
|
||||
- gocheckcompilerdirectives
|
||||
- gochecksumtype
|
||||
- gocritic
|
||||
- gocyclo
|
||||
- goheader
|
||||
- gosec
|
||||
- gosmopolitan
|
||||
- loggercheck
|
||||
- makezero
|
||||
- misspell
|
||||
- nilerr
|
||||
- nilnesserr
|
||||
- noctx
|
||||
- protogetter
|
||||
- reassign
|
||||
- recvcheck
|
||||
- revive
|
||||
- rowserrcheck
|
||||
- testifylint
|
||||
- unparam
|
||||
disable:
|
||||
- durationcheck
|
||||
- goconst
|
||||
- musttag
|
||||
settings:
|
||||
goheader:
|
||||
template-path: code-header-template.txt
|
||||
exclusions:
|
||||
generated: lax
|
||||
presets:
|
||||
- comments
|
||||
- common-false-positives
|
||||
- legacy
|
||||
- std-error-handling
|
||||
rules:
|
||||
# Tests compose dynamic error messages and exercise edge cases — let
|
||||
# them. Mirrors the parent repo's _test.go carve-outs.
|
||||
- linters:
|
||||
- err113
|
||||
- errorlint
|
||||
- gocyclo
|
||||
path: _test\.go
|
||||
- linters:
|
||||
- gocritic
|
||||
text: 'commentFormatting: put a space between `//` and comment text'
|
||||
# The veans CLI uses fmt.Errorf and output.New/Wrap intentionally —
|
||||
# err113's "no dynamic errors" rule isn't a fit for user-facing CLI
|
||||
# errors that are routinely templated with parameters.
|
||||
- linters:
|
||||
- err113
|
||||
path: ".*"
|
||||
text: 'do not define dynamic errors, use wrapped static errors instead:'
|
||||
# mage build tooling is internal — gosec subprocess flags don't apply.
|
||||
- linters:
|
||||
- err113
|
||||
- gosec
|
||||
path: magefile.go
|
||||
# term.ReadPassword takes int(*os.File.Fd()) — canonical Go idiom.
|
||||
- linters:
|
||||
- gosec
|
||||
text: 'G115: integer overflow conversion uintptr -> int'
|
||||
# Password / AccessToken / RefreshToken are intentional API model
|
||||
# fields, mirroring the parent repo's exclusion.
|
||||
- linters:
|
||||
- gosec
|
||||
text: 'G117:'
|
||||
# veans is an HTTP CLI: G704 (SSRF) and G705 (XSS via Fprintf to a
|
||||
# terminal) are categorically false positives for this codebase.
|
||||
- linters:
|
||||
- gosec
|
||||
text: 'G70[45]:'
|
||||
# E2E helpers run subprocesses with controlled inputs (git, the
|
||||
# built veans binary). G204 (subprocess) and G703 (path traversal)
|
||||
# don't apply to test infrastructure.
|
||||
- linters:
|
||||
- gosec
|
||||
path: e2e/
|
||||
text: 'G(204|306|703):'
|
||||
# .veans.yml is committed to the repo and intentionally world-
|
||||
# readable; 0o644 is correct.
|
||||
- linters:
|
||||
- gosec
|
||||
path: internal/config/config\.go
|
||||
text: 'G306:'
|
||||
formatters:
|
||||
enable:
|
||||
- gofmt
|
||||
- goimports
|
||||
exclusions:
|
||||
generated: lax
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
Vikunja is a to-do list application to facilitate your life.
|
||||
Copyright 2018-present Vikunja and contributors. All rights reserved.
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
Loading…
Reference in New Issue