Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
131 changes: 66 additions & 65 deletions .golangci.yml
Original file line number Diff line number Diff line change
@@ -1,52 +1,14 @@
version: "2"
run:
issues-exit-code: 1
timeout: 5m

linters-settings:
lll:
line-length: 130
gocyclo:
min-complexity: 15
gci:
sections:
- standard
- default
- prefix(github.com/stacklok/frizbee)
revive:
# see https://github.com/mgechev/revive#available-rules for details.
ignore-generated-header: true
severity: warning
rules:
- name: blank-imports
severity: warning
- name: context-as-argument
- name: context-keys-type
- name: duplicated-imports
- name: error-naming
# - name: error-strings #BDG: This was enabled for months, but it suddenly started working on 3/2/2022.. come to find out we have TONS of error messages starting with capital... disabling for now(ever?)
- name: error-return
- name: exported
severity: error
- name: if-return
# - name: get-return // BDG: We have a lot of API endpoint handlers named like getFoos but write to response vs return... maybe later can figure that out
- name: identical-branches
- name: indent-error-flow
- name: import-shadowing
- name: package-comments
- name: range-val-in-closure
- name: range-val-address
- name: redefines-builtin-id
- name: struct-tag
- name: unconditional-recursion
- name: unnecessary-stmt
- name: unreachable-code
- name: unused-parameter
- name: unused-receiver
- name: unhandled-error
disabled: true

output:
formats:
text:
path: stdout
print-linter-name: true
print-issued-lines: true
linters:
disable-all: true
default: none
enable:
- asasalint
- asciicheck
Expand All @@ -62,17 +24,13 @@ linters:
- exhaustive
- forbidigo
- forcetypeassert
- gci
- gochecknoglobals
- gochecknoinits
- gochecksumtype
- goconst
- gocyclo
- gofmt
- goprintffuncname
- gosec
- gosimple
- gosimple
- govet
- importas
- inamedparam
Expand All @@ -88,23 +46,66 @@ linters:
- promlinter
- revive
- staticcheck
- tenv
- thelper
- tparallel
- unparam
- unused
- usestdlibvars

issues:
exclude-use-default: false
exclude-rules:
- path: '(.+)_test\.go'
linters:
- lll

output:
formats:
- format: colored-line-number
print-issued-lines: true
print-linter-name: true
sort-results: true
settings:
gocyclo:
min-complexity: 15
lll:
line-length: 130
revive:
severity: warning
rules:
- name: blank-imports
severity: warning
- name: context-as-argument
- name: context-keys-type
- name: duplicated-imports
- name: error-naming
- name: error-return
- name: exported
severity: error
- name: if-return
- name: identical-branches
- name: indent-error-flow
- name: import-shadowing
- name: package-comments
- name: range-val-in-closure
- name: range-val-address
- name: redefines-builtin-id
- name: struct-tag
- name: unconditional-recursion
- name: unnecessary-stmt
- name: unreachable-code
- name: unused-parameter
- name: unused-receiver
- name: unhandled-error
disabled: true
exclusions:
generated: lax
rules:
- linters:
- lll
path: (.+)_test\.go
paths:
- third_party$
- builtin$
- examples$
formatters:
enable:
- gofmt
settings:
gci:
sections:
- standard
- default
- prefix(github.com/stacklok/frizbee)
exclusions:
generated: lax
paths:
- third_party$
- builtin$
- examples$
12 changes: 6 additions & 6 deletions internal/traverse/traverse_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -250,9 +250,9 @@ type fileInfoMock struct {
dir bool
}

func (f *fileInfoMock) Name() string { return f.name }
func (_ *fileInfoMock) Size() int64 { return 0 }
func (_ *fileInfoMock) Mode() os.FileMode { return 0 }
func (_ *fileInfoMock) ModTime() time.Time { return time.Time{} }
func (f *fileInfoMock) IsDir() bool { return f.dir }
func (_ *fileInfoMock) Sys() interface{} { return nil }
func (f *fileInfoMock) Name() string { return f.name }
func (*fileInfoMock) Size() int64 { return 0 }
func (*fileInfoMock) Mode() os.FileMode { return 0 }
func (*fileInfoMock) ModTime() time.Time { return time.Time{} }
func (f *fileInfoMock) IsDir() bool { return f.dir }
func (*fileInfoMock) Sys() interface{} { return nil }
4 changes: 2 additions & 2 deletions pkg/replacer/actions/actions.go
Original file line number Diff line number Diff line change
Expand Up @@ -206,7 +206,7 @@ func (p *Parser) replaceDocker(
}

// ConvertToEntityRef converts an action reference to an EntityRef
func (_ *Parser) ConvertToEntityRef(reference string) (*interfaces.EntityRef, error) {
func (*Parser) ConvertToEntityRef(reference string) (*interfaces.EntityRef, error) {
reference = strings.TrimPrefix(reference, prefixUses)
reference = stripQuotes(reference)

Expand Down Expand Up @@ -290,7 +290,7 @@ func GetChecksum(ctx context.Context, cfg config.GHActions, restIf interfaces.RE
}

// check branch
if excludeBranch(cfg.Filter.ExcludeBranches, ref) {
if excludeBranch(cfg.ExcludeBranches, ref) {
// if a branch is excluded, we won't know if it's a valid reference
// but that's OK - we just won't touch that reference
return "", fmt.Errorf("%w: %s", interfaces.ErrReferenceSkipped, ref)
Expand Down
6 changes: 3 additions & 3 deletions pkg/replacer/image/image.go
Original file line number Diff line number Diff line change
Expand Up @@ -141,7 +141,7 @@ func (p *Parser) Replace(
}

// ConvertToEntityRef converts a container image reference to an EntityRef
func (_ *Parser) ConvertToEntityRef(reference string) (*interfaces.EntityRef, error) {
func (*Parser) ConvertToEntityRef(reference string) (*interfaces.EntityRef, error) {
reference = strings.TrimPrefix(reference, prefixImage)
reference = strings.TrimPrefix(reference, prefixFROM)
var sep string
Expand Down Expand Up @@ -238,12 +238,12 @@ func shouldSkipImageRef(cfg *config.Config, ref string) bool {
}

imageName := getImageNameFromRef(nameRef)
if slices.Contains(cfg.Images.ImageFilter.ExcludeImages, imageName) {
if slices.Contains(cfg.Images.ExcludeImages, imageName) {
return true
}

tag := nameRef.Identifier()
return slices.Contains(cfg.Images.ImageFilter.ExcludeTags, tag)
return slices.Contains(cfg.Images.ExcludeTags, tag)
}

// TODO(jakub): this is a bit of a hack, but I didn't find a better way to get just the name
Expand Down
13 changes: 5 additions & 8 deletions pkg/replacer/replacer.go
Original file line number Diff line number Diff line change
Expand Up @@ -357,15 +357,12 @@ func listReferencesInFile(

// See if we can match an entity reference in the line
foundEntries := re.FindAllString(line, -1)
// nolint:gosimple
if foundEntries != nil {
for _, entry := range foundEntries {
e, err := parser.ConvertToEntityRef(entry)
if err != nil {
continue
}
found.Add(*e)
for _, entry := range foundEntries {
e, err := parser.ConvertToEntityRef(entry)
if err != nil {
continue
}
found.Add(*e)
}
}

Expand Down
4 changes: 2 additions & 2 deletions pkg/utils/config/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ type Config struct {

// GHActions is the GitHub Actions configuration.
type GHActions struct {
Filter `yaml:",inline" mapstructure:",inline"`
Filter `yaml:",inline" mapstructure:",squash"`
}

// Filter is a common configuration for filtering out patterns.
Expand All @@ -77,7 +77,7 @@ type Filter struct {

// Images is the image configuration.
type Images struct {
ImageFilter `yaml:",inline" mapstructure:",inline"`
ImageFilter `yaml:",inline" mapstructure:",squash"`
}

// ImageFilter is the image filter configuration.
Expand Down
2 changes: 1 addition & 1 deletion pkg/utils/ghrest/ghrest.go
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ func (c *Client) Do(ctx context.Context, req *http.Request) (*http.Response, err
}

if resp.Response != nil {
resp.Response.Body = io.NopCloser(&buf)
resp.Body = io.NopCloser(&buf)
}

return resp.Response, err
Expand Down
Loading