Skip to content

Commit

Permalink
Fix golangci-lint
Browse files Browse the repository at this point in the history
Signed-off-by: Cyrill Näf <[email protected]>
  • Loading branch information
BigGold1310 committed Nov 22, 2024
1 parent c3f0dca commit 0954150
Show file tree
Hide file tree
Showing 4 changed files with 30 additions and 98 deletions.
100 changes: 15 additions & 85 deletions .golangci.yml
Original file line number Diff line number Diff line change
@@ -1,34 +1,21 @@
run:
timeout: 30m

skip-files:
- "zz_generated\\..+\\.go$"

output:
# colored-line-number|line-number|json|tab|checkstyle|code-climate, default is "colored-line-number"
format: colored-line-number
formats: colored-line-number

linters-settings:
errcheck:
# report about not checking of errors in type assetions: `a := b.(MyStruct)`;
# default is false: such cases aren't reported by default.
check-type-assertions: false

# report about assignment of errors to blank identifier: `num, _ := strconv.Atoi(numStr)`;
# default is false: such cases aren't reported by default.
check-blank: false

# [deprecated] comma-separated list of pairs of the form pkg:regex
# the regex is used to ignore names within pkg. (default "fmt:.*").
# see https://github.com/kisielk/errcheck#the-deprecated-method for details
ignore: fmt:.*,io/ioutil:^Read.*
exclude-functions:
- fmt:.*
- io/ioutil:^Read.*

govet:
# report about shadowed variables
check-shadowing: false

gofmt:
# simplify code: gofmt with `-s` option, true by default
simplify: true

gci:
Expand All @@ -39,63 +26,40 @@ linters-settings:
- prefix(github.com/crossplane-contrib/provider-gitlab)

gocyclo:
# minimal code complexity to report, 30 by default (but we recommend 10-20)
min-complexity: 10

maligned:
# print struct with more effective memory layout or not, false by default
suggest-new: true

dupl:
# tokens count to trigger issue, 150 by default
threshold: 100

goconst:
# minimal length of string constant, 3 by default
min-len: 3
# minimal occurrences count to trigger, 3 by default
min-occurrences: 5

lll:
# tab width in spaces. Default to 1.
tab-width: 1

unused:
# treat code as a program (not a library) and report unused exported identifiers; default is false.
# XXX: if you enable this setting, unused will report a lot of false-positives in text editors:
# if it's called for subdir of a project it can't find funcs usages. All text editor integrations
# with golangci-lint call it on a directory with the changed file.
check-exported: false

unparam:
# Inspect exported functions, default is false. Set to true if no external program/library imports your code.
# XXX: if you enable this setting, unparam will report a lot of false-positives in text editors:
# if it's called for subdir of a project it can't find external interfaces. All text editor integrations
# with golangci-lint call it on a directory with the changed file.
check-exported: false

nakedret:
# make an issue if func has more lines of code than this setting and it has naked returns; default is 30
max-func-lines: 30

prealloc:
# XXX: we don't recommend using this linter before doing performance profiling.
# For most programs usage of prealloc will be a premature optimization.

# Report preallocation suggestions only on simple loops that have no returns/breaks/continues/gotos in them.
# True by default.
simple: true
range-loops: true # Report preallocation suggestions on range loops, true by default
for-loops: false # Report preallocation suggestions on for loops, false by default
range-loops: true
for-loops: false

gocritic:
# Enable multiple checks by tags, run `GL_DEBUG=gocritic golangci-lint` run to see all tags and checks.
# Empty list by default. See https://github.com/go-critic/go-critic#usage -> section "Tags".
enabled-tags:
- performance

settings: # settings passed to gocritic
captLocal: # must be valid enabled check name
settings:
captLocal:
paramsOnly: true
rangeValCopy:
sizeThreshold: 32
Expand All @@ -109,7 +73,6 @@ linters-settings:
- name: package-comments
disabled: true


linters:
enable:
- gosimple
Expand All @@ -120,33 +83,26 @@ linters:
- gocritic
- goconst
- gci
- gofmt # We enable this as well as goimports for its simplify mode.
- gofmt
- prealloc
- revive
- unconvert
- misspell
- nakedret
- nolintlint

disable:
# These linters are all deprecated as of golangci-lint v1.49.0. We disable
# them explicitly to avoid the linter logging deprecation warnings.
- deadcode
- varcheck
- scopelint
- structcheck
- interfacer

# Removed all deprecated linters from disable section

presets:
- bugs
- unused
fast: false


issues:
# Excluding configuration per-path and per-linter
exclude-files:
- "zz_generated\\..+\\.go$"

exclude-rules:
# Exclude some linters from running on tests files.
- path: _test(ing)?\.go
linters:
- gocyclo
Expand All @@ -156,21 +112,15 @@ issues:
- scopelint
- unparam

# Ease some gocritic warnings on test files.
- path: _test\.go
text: "(unnamedResult|exitAfterDefer)"
linters:
- gocritic

# These are performance optimisations rather than style issues per se.
# They warn when function arguments or range values copy a lot of memory
# rather than using a pointer.
- text: "(hugeParam|rangeValCopy):"
linters:
- gocritic

# This "TestMain should call os.Exit to set exit code" warning is not clever
# enough to notice that we call a helper method that calls os.Exit.
- text: "SA3000:"
linters:
- staticcheck
Expand All @@ -179,41 +129,21 @@ issues:
linters:
- goimports

# This is a "potential hardcoded credentials" warning. It's triggered by
# any variable with 'secret' in the same, and thus hits a lot of false
# positives in Kubernetes land where a Secret is an object type.
- text: "G101:"
linters:
- gosec
- gas

# This is an 'errors unhandled' warning that duplicates errcheck.
- text: "G104:"
linters:
- gosec
- gas

# Some k8s dependencies do not have JSON tags on all fields in structs.
- path: k8s.io/
linters:
- musttag

# Independently from option `exclude` we use default exclude patterns,
# it can be disabled by this option. To list all
# excluded by default patterns execute `golangci-lint run --help`.
# Default value for this option is true.
exclude-use-default: false

# Show only new issues: if there are unstaged changes or untracked files,
# only those changes are analyzed, else only changes in HEAD~ are analyzed.
# It's a super-useful option for integration of golangci-lint into existing
# large codebase. It's not practical to fix all existing issues at the moment
# of integration: much better don't allow issues in new code.
# Default is false.
new: false

# Maximum issues count per one linter. Set to 0 to disable. Default is 50.
max-per-linter: 0

# Maximum count of issues with the same text. Set to 0 to disable. Default is 3.
max-same-issues: 0
max-same-issues: 0
8 changes: 4 additions & 4 deletions pkg/clients/groups/group.go
Original file line number Diff line number Diff line change
Expand Up @@ -123,10 +123,10 @@ func GenerateObservation(grp *gitlab.Group) v1alpha1.GroupObservation { //nolint
arr := make([]v1alpha1.SharedWithGroupsObservation, 0)
for _, v := range grp.SharedWithGroups {
sg := v1alpha1.SharedWithGroupsObservation{
GroupID: &v.GroupID, //nolint:gosec
GroupName: &v.GroupName, //nolint:gosec
GroupFullPath: &v.GroupFullPath, //nolint:gosec
GroupAccessLevel: &v.GroupAccessLevel, //nolint:gosec
GroupID: &v.GroupID,
GroupName: &v.GroupName,
GroupFullPath: &v.GroupFullPath,
GroupAccessLevel: &v.GroupAccessLevel,
}
if v.ExpiresAt != nil {
sg.ExpiresAt = &metav1.Time{Time: time.Time(*v.ExpiresAt)}
Expand Down
10 changes: 6 additions & 4 deletions pkg/controller/groups/groups/group.go
Original file line number Diff line number Diff line change
Expand Up @@ -132,7 +132,8 @@ func (e *external) Observe(ctx context.Context, mg resource.Managed) (managed.Ex
return managed.ExternalObservation{}, errors.New(errIDNotInt)
}

cr.Spec.ForProvider.EmailsEnabled = lateInitializeEmailsEnabled(cr.Spec.ForProvider.EmailsEnabled, cr.Spec.ForProvider.EmailsDisabled) //nolint:staticcheck
//nolint:staticcheck // Keeping this for backward compatibility during deprecation
cr.Spec.ForProvider.EmailsEnabled = lateInitializeEmailsEnabled(cr.Spec.ForProvider.EmailsEnabled, cr.Spec.ForProvider.EmailsDisabled)

grp, res, err := e.client.GetGroup(groupID, nil)
if err != nil {
Expand Down Expand Up @@ -183,7 +184,8 @@ func (e *external) Create(ctx context.Context, mg resource.Managed) (managed.Ext
return managed.ExternalCreation{}, nil
}

func (e *external) Update(ctx context.Context, mg resource.Managed) (managed.ExternalUpdate, error) { //nolint:gocyclo
//nolint:gocyclo
func (e *external) Update(ctx context.Context, mg resource.Managed) (managed.ExternalUpdate, error) {
cr, ok := mg.(*v1alpha1.Group)
if !ok {
return managed.ExternalUpdate{}, errors.New(errNotGroup)
Expand All @@ -205,10 +207,10 @@ func (e *external) Update(ctx context.Context, mg resource.Managed) (managed.Ext
if notShared(*sh.GroupID, grp) {
opt := gitlab.ShareGroupWithGroupOptions{
GroupID: sh.GroupID,
GroupAccess: (*gitlab.AccessLevelValue)(&sh.GroupAccessLevel), //nolint:gosec
GroupAccess: (*gitlab.AccessLevelValue)(&sh.GroupAccessLevel),
}
if sh.ExpiresAt != nil {
opt.ExpiresAt = (*gitlab.ISOTime)(&sh.ExpiresAt.Time) //nolint:gosec
opt.ExpiresAt = (*gitlab.ISOTime)(&sh.ExpiresAt.Time)
}
_, _, err = e.client.ShareGroupWithGroup(grp.ID, &opt)
if err != nil {
Expand Down
10 changes: 5 additions & 5 deletions pkg/controller/projects/pipelineschedules/controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -192,8 +192,8 @@ func (e *external) Create(ctx context.Context, mg resource.Managed) (managed.Ext

for _, v := range cr.Spec.ForProvider.Variables {
opt := &gitlab.CreatePipelineScheduleVariableOptions{
Key: &v.Key, //nolint:gosec
Value: &v.Value, //nolint:gosec
Key: &v.Key,
Value: &v.Value,
VariableType: (*gitlab.VariableTypeValue)(v.VariableType),
}
_, _, err := e.client.CreatePipelineScheduleVariable(
Expand Down Expand Up @@ -253,8 +253,8 @@ func (e *external) Update(ctx context.Context, mg resource.Managed) (managed.Ext
for _, v := range cr.Spec.ForProvider.Variables {
if notSaved(v, ps.Variables) {
opt := &gitlab.CreatePipelineScheduleVariableOptions{
Key: &v.Key, //nolint:gosec
Value: &v.Value, //nolint:gosec
Key: &v.Key,
Value: &v.Value,
VariableType: (*gitlab.VariableTypeValue)(v.VariableType),
}
_, _, err := e.client.CreatePipelineScheduleVariable(
Expand All @@ -268,7 +268,7 @@ func (e *external) Update(ctx context.Context, mg resource.Managed) (managed.Ext
}
if notUpdated(v, ps.Variables) {
opt := &gitlab.EditPipelineScheduleVariableOptions{
Value: &v.Value, //nolint:gosec
Value: &v.Value,
VariableType: (*gitlab.VariableTypeValue)(v.VariableType),
}
_, _, err := e.client.EditPipelineScheduleVariable(
Expand Down

0 comments on commit 0954150

Please sign in to comment.