mirror of
https://github.com/woodpecker-ci/woodpecker.git
synced 2025-04-07 20:09:35 +00:00
Bump golangci-lint to v2 (#5034)
This commit is contained in:
parent
6865e9d5f0
commit
286794a800
11 changed files with 216 additions and 199 deletions
382
.golangci.yaml
382
.golangci.yaml
|
@ -1,188 +1,202 @@
|
|||
linters-settings:
|
||||
gofmt:
|
||||
simplify: true
|
||||
rewrite-rules:
|
||||
- pattern: interface{}
|
||||
replacement: any
|
||||
misspell:
|
||||
locale: US
|
||||
gofumpt:
|
||||
extra-rules: true
|
||||
forbidigo:
|
||||
forbid:
|
||||
- context\.WithCancel$
|
||||
- ^print.*$
|
||||
- panic
|
||||
- ^log.Fatal().*$
|
||||
errorlint:
|
||||
errorf-multi: true
|
||||
depguard:
|
||||
rules:
|
||||
pipeline:
|
||||
list-mode: lax
|
||||
files:
|
||||
- '**/pipeline/**/*.go'
|
||||
- '**/pipeline/*.go'
|
||||
- '!**/cli/pipeline/*.go'
|
||||
- '!**/cli/pipeline/**/*.go'
|
||||
- '!**/server/pipeline/*.go'
|
||||
- '!**/server/pipeline/**/*.go'
|
||||
deny:
|
||||
- pkg: 'go.woodpecker-ci.org/woodpecker/v3/agent'
|
||||
- pkg: 'go.woodpecker-ci.org/woodpecker/v3/cli'
|
||||
- pkg: 'go.woodpecker-ci.org/woodpecker/v3/cmd'
|
||||
- pkg: 'go.woodpecker-ci.org/woodpecker/v3/server'
|
||||
- pkg: 'go.woodpecker-ci.org/woodpecker/v3/web'
|
||||
shared:
|
||||
list-mode: lax
|
||||
files:
|
||||
- '**/shared/**/*.go'
|
||||
- '**/shared/*.go'
|
||||
- '!**/pipeline/shared/*.go'
|
||||
- '!**/pipeline/shared/**/*.go'
|
||||
deny:
|
||||
- pkg: 'go.woodpecker-ci.org/woodpecker/v3/agent'
|
||||
- pkg: 'go.woodpecker-ci.org/woodpecker/v3/cli'
|
||||
- pkg: 'go.woodpecker-ci.org/woodpecker/v3/cmd'
|
||||
- pkg: 'go.woodpecker-ci.org/woodpecker/v3/pipeline'
|
||||
- pkg: 'go.woodpecker-ci.org/woodpecker/v3/server'
|
||||
- pkg: 'go.woodpecker-ci.org/woodpecker/v3/web'
|
||||
woodpecker-go:
|
||||
list-mode: lax
|
||||
files:
|
||||
- '**/woodpecker-go/woodpecker/**/*.go'
|
||||
- '**/woodpecker-go/woodpecker/*.go'
|
||||
deny:
|
||||
- pkg: 'go.woodpecker-ci.org/woodpecker/v3/agent'
|
||||
- pkg: 'go.woodpecker-ci.org/woodpecker/v3/cli'
|
||||
- pkg: 'go.woodpecker-ci.org/woodpecker/v3/cmd'
|
||||
- pkg: 'go.woodpecker-ci.org/woodpecker/v3/pipeline'
|
||||
- pkg: 'go.woodpecker-ci.org/woodpecker/v3/server'
|
||||
- pkg: 'go.woodpecker-ci.org/woodpecker/v3/shared'
|
||||
- pkg: 'go.woodpecker-ci.org/woodpecker/v3/web'
|
||||
agent:
|
||||
list-mode: lax
|
||||
files:
|
||||
- '**/agent/**/*.go'
|
||||
- '**/agent/*.go'
|
||||
- '**/cmd/agent/**/*.go'
|
||||
- '**/cmd/agent/*.go'
|
||||
deny:
|
||||
- pkg: 'go.woodpecker-ci.org/woodpecker/v3/cli'
|
||||
- pkg: 'go.woodpecker-ci.org/woodpecker/v3/cmd/cli'
|
||||
- pkg: 'go.woodpecker-ci.org/woodpecker/v3/cmd/server'
|
||||
- pkg: 'go.woodpecker-ci.org/woodpecker/v3/server'
|
||||
- pkg: 'go.woodpecker-ci.org/woodpecker/v3/web'
|
||||
- pkg: 'go.woodpecker-ci.org/woodpecker/v3/woodpecker-go/woodpecker'
|
||||
cli:
|
||||
list-mode: lax
|
||||
files:
|
||||
- '**/cli/**/*.go'
|
||||
- '**/cli/*.go'
|
||||
- '**/cmd/cli/**/*.go'
|
||||
- '**/cmd/cli/*.go'
|
||||
deny:
|
||||
- pkg: 'go.woodpecker-ci.org/woodpecker/v3/agent'
|
||||
- pkg: 'go.woodpecker-ci.org/woodpecker/v3/server'
|
||||
- pkg: 'go.woodpecker-ci.org/woodpecker/v3/cmd/agent'
|
||||
- pkg: 'go.woodpecker-ci.org/woodpecker/v3/cmd/server'
|
||||
- pkg: 'go.woodpecker-ci.org/woodpecker/v3/web'
|
||||
server:
|
||||
list-mode: lax
|
||||
files:
|
||||
- '**/server/**/*.go'
|
||||
- '**/server/*.go'
|
||||
- '**/cmd/server/**/*.go'
|
||||
- '**/cmd/server/*.go'
|
||||
- '**/web/**/*.go'
|
||||
- '**/web/*.go'
|
||||
deny:
|
||||
- pkg: 'go.woodpecker-ci.org/woodpecker/v3/agent'
|
||||
- pkg: 'go.woodpecker-ci.org/woodpecker/v3/cli'
|
||||
- pkg: 'go.woodpecker-ci.org/woodpecker/v3/cmd/agent'
|
||||
- pkg: 'go.woodpecker-ci.org/woodpecker/v3/cmd/cli'
|
||||
- pkg: 'go.woodpecker-ci.org/woodpecker/v3/woodpecker-go/woodpecker'
|
||||
gci:
|
||||
custom-order: true
|
||||
sections:
|
||||
- standard
|
||||
- default
|
||||
- prefix(go.woodpecker-ci.org/woodpecker)
|
||||
mnd:
|
||||
ignored-numbers:
|
||||
- '0o600'
|
||||
- '0o660'
|
||||
- '0o644'
|
||||
- '0o755'
|
||||
- '0o700'
|
||||
ignored-functions:
|
||||
- make
|
||||
- time.*
|
||||
- strings.Split
|
||||
- callerName
|
||||
- securecookie.GenerateRandomKey
|
||||
godot:
|
||||
scope: toplevel
|
||||
period: true
|
||||
capital: true
|
||||
exclude:
|
||||
- '^\s*cSpell:'
|
||||
- '^\s*TODO:'
|
||||
|
||||
linters:
|
||||
disable-all: true
|
||||
enable:
|
||||
- bidichk
|
||||
- errcheck
|
||||
- gofmt
|
||||
- gosimple
|
||||
- govet
|
||||
- ineffassign
|
||||
- misspell
|
||||
- revive
|
||||
- staticcheck
|
||||
- typecheck
|
||||
- unused
|
||||
- gofumpt
|
||||
- errorlint
|
||||
- forbidigo
|
||||
- zerologlint
|
||||
- depguard
|
||||
- asciicheck
|
||||
- bodyclose
|
||||
- dogsled
|
||||
- durationcheck
|
||||
- errchkjson
|
||||
- gochecknoinits
|
||||
- goheader
|
||||
- gomoddirectives
|
||||
- gomodguard
|
||||
- goprintffuncname
|
||||
- importas
|
||||
- makezero
|
||||
- rowserrcheck
|
||||
- sqlclosecheck
|
||||
- usetesting
|
||||
- unconvert
|
||||
- unparam
|
||||
- wastedassign
|
||||
- whitespace
|
||||
- gocritic
|
||||
- nolintlint
|
||||
- stylecheck
|
||||
- contextcheck
|
||||
- forcetypeassert
|
||||
- gci
|
||||
- mnd
|
||||
- godot
|
||||
|
||||
issues:
|
||||
exclude-rules:
|
||||
- path: 'fixtures|cmd/agent/flags.go|cmd/server/flags.go|pipeline/backend/kubernetes/flags.go|_test.go'
|
||||
linters:
|
||||
- mnd
|
||||
|
||||
version: '2'
|
||||
run:
|
||||
timeout: 15m
|
||||
build-tags:
|
||||
- test
|
||||
linters:
|
||||
default: none
|
||||
enable:
|
||||
- asciicheck
|
||||
- bidichk
|
||||
- bodyclose
|
||||
- contextcheck
|
||||
- depguard
|
||||
- dogsled
|
||||
- durationcheck
|
||||
- errcheck
|
||||
- errchkjson
|
||||
- errorlint
|
||||
- forbidigo
|
||||
- forcetypeassert
|
||||
- gochecknoinits
|
||||
- gocritic
|
||||
- godot
|
||||
- goheader
|
||||
- gomoddirectives
|
||||
- gomodguard
|
||||
- goprintffuncname
|
||||
- govet
|
||||
- importas
|
||||
- ineffassign
|
||||
- makezero
|
||||
- misspell
|
||||
- mnd
|
||||
- nolintlint
|
||||
- revive
|
||||
- rowserrcheck
|
||||
- sqlclosecheck
|
||||
- staticcheck
|
||||
- unconvert
|
||||
- unparam
|
||||
- unused
|
||||
- usetesting
|
||||
- wastedassign
|
||||
- whitespace
|
||||
- zerologlint
|
||||
settings:
|
||||
depguard:
|
||||
rules:
|
||||
agent:
|
||||
list-mode: lax
|
||||
files:
|
||||
- '**/agent/**/*.go'
|
||||
- '**/agent/*.go'
|
||||
- '**/cmd/agent/**/*.go'
|
||||
- '**/cmd/agent/*.go'
|
||||
deny:
|
||||
- pkg: go.woodpecker-ci.org/woodpecker/v3/cli
|
||||
- pkg: go.woodpecker-ci.org/woodpecker/v3/cmd/cli
|
||||
- pkg: go.woodpecker-ci.org/woodpecker/v3/cmd/server
|
||||
- pkg: go.woodpecker-ci.org/woodpecker/v3/server
|
||||
- pkg: go.woodpecker-ci.org/woodpecker/v3/web
|
||||
- pkg: go.woodpecker-ci.org/woodpecker/v3/woodpecker-go/woodpecker
|
||||
cli:
|
||||
list-mode: lax
|
||||
files:
|
||||
- '**/cli/**/*.go'
|
||||
- '**/cli/*.go'
|
||||
- '**/cmd/cli/**/*.go'
|
||||
- '**/cmd/cli/*.go'
|
||||
deny:
|
||||
- pkg: go.woodpecker-ci.org/woodpecker/v3/agent
|
||||
- pkg: go.woodpecker-ci.org/woodpecker/v3/server
|
||||
- pkg: go.woodpecker-ci.org/woodpecker/v3/cmd/agent
|
||||
- pkg: go.woodpecker-ci.org/woodpecker/v3/cmd/server
|
||||
- pkg: go.woodpecker-ci.org/woodpecker/v3/web
|
||||
pipeline:
|
||||
list-mode: lax
|
||||
files:
|
||||
- '**/pipeline/**/*.go'
|
||||
- '**/pipeline/*.go'
|
||||
- '!**/cli/pipeline/*.go'
|
||||
- '!**/cli/pipeline/**/*.go'
|
||||
- '!**/server/pipeline/*.go'
|
||||
- '!**/server/pipeline/**/*.go'
|
||||
deny:
|
||||
- pkg: go.woodpecker-ci.org/woodpecker/v3/agent
|
||||
- pkg: go.woodpecker-ci.org/woodpecker/v3/cli
|
||||
- pkg: go.woodpecker-ci.org/woodpecker/v3/cmd
|
||||
- pkg: go.woodpecker-ci.org/woodpecker/v3/server
|
||||
- pkg: go.woodpecker-ci.org/woodpecker/v3/web
|
||||
server:
|
||||
list-mode: lax
|
||||
files:
|
||||
- '**/server/**/*.go'
|
||||
- '**/server/*.go'
|
||||
- '**/cmd/server/**/*.go'
|
||||
- '**/cmd/server/*.go'
|
||||
- '**/web/**/*.go'
|
||||
- '**/web/*.go'
|
||||
deny:
|
||||
- pkg: go.woodpecker-ci.org/woodpecker/v3/agent
|
||||
- pkg: go.woodpecker-ci.org/woodpecker/v3/cli
|
||||
- pkg: go.woodpecker-ci.org/woodpecker/v3/cmd/agent
|
||||
- pkg: go.woodpecker-ci.org/woodpecker/v3/cmd/cli
|
||||
- pkg: go.woodpecker-ci.org/woodpecker/v3/woodpecker-go/woodpecker
|
||||
shared:
|
||||
list-mode: lax
|
||||
files:
|
||||
- '**/shared/**/*.go'
|
||||
- '**/shared/*.go'
|
||||
- '!**/pipeline/shared/*.go'
|
||||
- '!**/pipeline/shared/**/*.go'
|
||||
deny:
|
||||
- pkg: go.woodpecker-ci.org/woodpecker/v3/agent
|
||||
- pkg: go.woodpecker-ci.org/woodpecker/v3/cli
|
||||
- pkg: go.woodpecker-ci.org/woodpecker/v3/cmd
|
||||
- pkg: go.woodpecker-ci.org/woodpecker/v3/pipeline
|
||||
- pkg: go.woodpecker-ci.org/woodpecker/v3/server
|
||||
- pkg: go.woodpecker-ci.org/woodpecker/v3/web
|
||||
woodpecker-go:
|
||||
list-mode: lax
|
||||
files:
|
||||
- '**/woodpecker-go/woodpecker/**/*.go'
|
||||
- '**/woodpecker-go/woodpecker/*.go'
|
||||
deny:
|
||||
- pkg: go.woodpecker-ci.org/woodpecker/v3/agent
|
||||
- pkg: go.woodpecker-ci.org/woodpecker/v3/cli
|
||||
- pkg: go.woodpecker-ci.org/woodpecker/v3/cmd
|
||||
- pkg: go.woodpecker-ci.org/woodpecker/v3/pipeline
|
||||
- pkg: go.woodpecker-ci.org/woodpecker/v3/server
|
||||
- pkg: go.woodpecker-ci.org/woodpecker/v3/shared
|
||||
- pkg: go.woodpecker-ci.org/woodpecker/v3/web
|
||||
errorlint:
|
||||
errorf-multi: true
|
||||
forbidigo:
|
||||
forbid:
|
||||
- pattern: context\.WithCancel$
|
||||
- pattern: ^print.*$
|
||||
- pattern: panic
|
||||
- pattern: ^log.Fatal().*$
|
||||
godot:
|
||||
scope: toplevel
|
||||
exclude:
|
||||
- '^\s*cSpell:'
|
||||
- '^\s*TODO:'
|
||||
capital: true
|
||||
period: true
|
||||
misspell:
|
||||
locale: US
|
||||
mnd:
|
||||
ignored-numbers:
|
||||
- '0o600'
|
||||
- '0o660'
|
||||
- '0o644'
|
||||
- '0o755'
|
||||
- '0o700'
|
||||
ignored-functions:
|
||||
- make
|
||||
- time.*
|
||||
- strings.Split
|
||||
- callerName
|
||||
- securecookie.GenerateRandomKey
|
||||
exclusions:
|
||||
generated: lax
|
||||
presets:
|
||||
- comments
|
||||
- common-false-positives
|
||||
- legacy
|
||||
- std-error-handling
|
||||
rules:
|
||||
- linters:
|
||||
- mnd
|
||||
path: fixtures|cmd/agent/flags.go|cmd/server/flags.go|pipeline/backend/kubernetes/flags.go|_test.go
|
||||
paths:
|
||||
- third_party$
|
||||
- builtin$
|
||||
- examples$
|
||||
formatters:
|
||||
enable:
|
||||
- gci
|
||||
- gofmt
|
||||
- gofumpt
|
||||
settings:
|
||||
gci:
|
||||
sections:
|
||||
- standard
|
||||
- default
|
||||
- prefix(go.woodpecker-ci.org/woodpecker)
|
||||
custom-order: true
|
||||
gofmt:
|
||||
simplify: true
|
||||
rewrite-rules:
|
||||
- pattern: interface{}
|
||||
replacement: any
|
||||
gofumpt:
|
||||
extra-rules: true
|
||||
exclusions:
|
||||
generated: lax
|
||||
paths:
|
||||
- third_party$
|
||||
- builtin$
|
||||
- examples$
|
||||
|
|
|
@ -9,6 +9,8 @@ variables:
|
|||
- 'go.*'
|
||||
# schema changes
|
||||
- 'pipeline/schema/**'
|
||||
# tools updates
|
||||
- Makefile
|
||||
event: pull_request
|
||||
|
||||
when:
|
||||
|
|
2
Makefile
2
Makefile
|
@ -129,7 +129,7 @@ check-xgo: ## Check if xgo is installed
|
|||
|
||||
install-tools: ## Install development tools
|
||||
@hash golangci-lint > /dev/null 2>&1; if [ $$? -ne 0 ]; then \
|
||||
go install github.com/golangci/golangci-lint/cmd/golangci-lint@latest ; \
|
||||
go install github.com/golangci/golangci-lint/v2/cmd/golangci-lint@latest ; \
|
||||
fi ; \
|
||||
hash gofumpt > /dev/null 2>&1; if [ $$? -ne 0 ]; then \
|
||||
go install mvdan.cc/gofumpt@latest; \
|
||||
|
|
|
@ -511,6 +511,7 @@ func containerSecurityContext(sc *SecurityContext, stepPrivileged bool) *v1.Secu
|
|||
return nil
|
||||
}
|
||||
|
||||
//nolint:staticcheck
|
||||
privileged := false
|
||||
|
||||
// if security context privileged is set explicitly
|
||||
|
|
|
@ -45,12 +45,12 @@ func createFilterFunc(agentFilter rpc.Filter) queue.FilterFn {
|
|||
return false, 0
|
||||
}
|
||||
|
||||
switch {
|
||||
switch agentLabelValue {
|
||||
// if agent label has a wildcard
|
||||
case agentLabelValue == "*":
|
||||
case "*":
|
||||
score++
|
||||
// if agent label has an exact match
|
||||
case agentLabelValue == taskLabelValue:
|
||||
case taskLabelValue:
|
||||
score += 10
|
||||
// agent doesn't match
|
||||
default:
|
||||
|
|
|
@ -491,7 +491,7 @@ func (s *RPC) ReportHealth(ctx context.Context, status string) error {
|
|||
}
|
||||
|
||||
if status != "I am alive!" {
|
||||
//nolint:stylecheck
|
||||
//nolint:staticcheck
|
||||
return errors.New("Are you alive?")
|
||||
}
|
||||
|
||||
|
|
|
@ -75,8 +75,8 @@ func SetOrg() gin.HandlerFunc {
|
|||
func MustOrg() gin.HandlerFunc {
|
||||
return func(c *gin.Context) {
|
||||
org := Org(c)
|
||||
switch {
|
||||
case org == nil:
|
||||
switch org {
|
||||
case nil:
|
||||
c.String(http.StatusNotFound, "Organization not loaded")
|
||||
c.Abort()
|
||||
default:
|
||||
|
|
|
@ -110,8 +110,8 @@ func MustRepoAdmin() gin.HandlerFunc {
|
|||
func MustUser() gin.HandlerFunc {
|
||||
return func(c *gin.Context) {
|
||||
user := User(c)
|
||||
switch {
|
||||
case user == nil:
|
||||
switch user {
|
||||
case nil:
|
||||
c.String(http.StatusUnauthorized, "User not authorized")
|
||||
c.Abort()
|
||||
default:
|
||||
|
|
|
@ -146,7 +146,7 @@ func (f *forgeFetcherContext) getFirstAvailableConfig(c context.Context, configs
|
|||
files, err := f.forge.Dir(c, f.user, f.repo, f.pipeline, strings.TrimSuffix(fileOrFolder, "/"))
|
||||
// if folder is not supported we will get a "Not implemented" error and continue
|
||||
if err != nil {
|
||||
if !(errors.Is(err, types.ErrNotImplemented) || errors.Is(err, &types.ErrConfigNotFound{})) {
|
||||
if !errors.Is(err, types.ErrNotImplemented) && !errors.Is(err, &types.ErrConfigNotFound{}) {
|
||||
log.Error().Err(err).Str("repo", f.repo.FullName).Str("user", f.user.Login).Msgf("could not get folder from forge: %s", err)
|
||||
forgeErr = append(forgeErr, err)
|
||||
}
|
||||
|
|
|
@ -29,7 +29,7 @@ const (
|
|||
keyTypeNone = "none"
|
||||
|
||||
keyIDAssociatedData = "Primary key id"
|
||||
AES_GCM_SIV_NonceSize = 12 //nolint:revive,stylecheck
|
||||
AES_GCM_SIV_NonceSize = 12 //nolint:revive
|
||||
)
|
||||
|
||||
var (
|
||||
|
|
|
@ -62,12 +62,12 @@ func (b builder) detectKeyType() (string, error) {
|
|||
}
|
||||
|
||||
func (b builder) serviceBuilder(keyType string) (types.EncryptionServiceBuilder, error) {
|
||||
switch {
|
||||
case keyType == keyTypeTink:
|
||||
switch keyType {
|
||||
case keyTypeTink:
|
||||
return newTink(b.c, b.store), nil
|
||||
case keyType == keyTypeRaw:
|
||||
case keyTypeRaw:
|
||||
return newAES(b.c, b.store), nil
|
||||
case keyType == keyTypeNone:
|
||||
case keyTypeNone:
|
||||
return &noEncryptionBuilder{}, nil
|
||||
}
|
||||
return nil, fmt.Errorf(errMessageTemplateUnsupportedKeyType, keyType)
|
||||
|
|
Loading…
Reference in a new issue