Skip to content

Commit e079c2c

Browse files
fix: linting issues
1 parent 3206bd1 commit e079c2c

11 files changed

Lines changed: 62 additions & 93 deletions

File tree

.golangci.yaml

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1 @@
1-
linters:
2-
enable:
3-
- tagalign
4-
- gofumpt
5-
- gosimple
6-
- govet
7-
- ineffassign
1+
version: "2"

Taskfile.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,12 +51,12 @@ tasks:
5151
lint:
5252
desc: "Run golangci-lint in view-only mode"
5353
cmds:
54-
- golangci-lint run --fast
54+
- golangci-lint run
5555

5656
fix:
5757
desc: "Fix linting errors and format code"
5858
cmds:
59-
- golangci-lint run --fast --fix
59+
- golangci-lint run --fix
6060

6161
release-snapshot:
6262
desc: "Create a snapshot release"

cmd/cli-config.go

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -13,32 +13,32 @@ import (
1313
var (
1414
metadataFlagUsage = "flag_usage"
1515
metadataFieldType = "field_type"
16-
metadataRequired = "required"
1716
metadataActionInputName = "action_input_name"
17+
// metadataRequired = "required"
1818
)
1919

2020
type metaConfig struct {
21-
BundleTag configkit.MetaField
22-
EPSSURL configkit.MetaField
23-
KEVURL configkit.MetaField
24-
EPSSFilename configkit.MetaField
25-
KEVFilename configkit.MetaField
26-
Verbose configkit.MetaField
27-
Silent configkit.MetaField
28-
ConfigFilename configkit.MetaField
29-
Audit configkit.MetaField
30-
BundleTagValue []string
31-
bundleFile *os.File
32-
targetFile *os.File
33-
epssFile *os.File
34-
kevFile *os.File
35-
listSrcReader io.Reader
36-
listSrcName string
37-
listFormat string
38-
listAll bool
39-
configOutputWriter io.Writer
40-
configOutputFormat string
41-
gatecheckConfig *gatecheck.Config
21+
BundleTag configkit.MetaField
22+
EPSSURL configkit.MetaField
23+
KEVURL configkit.MetaField
24+
EPSSFilename configkit.MetaField
25+
KEVFilename configkit.MetaField
26+
Verbose configkit.MetaField
27+
Silent configkit.MetaField
28+
ConfigFilename configkit.MetaField
29+
Audit configkit.MetaField
30+
BundleTagValue []string
31+
bundleFile *os.File
32+
targetFile *os.File
33+
epssFile *os.File
34+
kevFile *os.File
35+
listSrcReader io.Reader
36+
listSrcName string
37+
listFormat string
38+
gatecheckConfig *gatecheck.Config
39+
// listAll bool
40+
// configOutputWriter io.Writer
41+
// configOutputFormat string
4242
}
4343

4444
var RuntimeConfig = metaConfig{

cmd/gatecheck/main.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,9 @@ import (
1717

1818
const (
1919
exitSystemFail int = -1
20-
exitOk = 0
21-
exitValidationFail = 1
22-
exitFileAccessFail = 2
20+
exitOk int = 0
21+
exitValidationFail int = 1
22+
exitFileAccessFail int = 2
2323
)
2424

2525
// GatecheckVersion see CHANGELOG.md
@@ -55,7 +55,7 @@ func run() int {
5555
command := cmd.NewGatecheckCommand()
5656

5757
err := command.Execute()
58-
if errors.Is(gatecheck.ErrValidationFailure, err) {
58+
if errors.Is(err, gatecheck.ErrValidationFailure) {
5959
return exitValidationFail
6060
}
6161
if err != nil {

cmd/list.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ var listCmd = &cobra.Command{
2121
PreRunE: func(cmd *cobra.Command, args []string) error {
2222
inputType, _ := cmd.Flags().GetString("input-type")
2323
if inputType == "" && len(args) == 0 {
24-
return errors.New("Need either input-type for STDIN or filename as argument")
24+
return errors.New("need either input-type for STDIN or filename as argument")
2525
}
2626

2727
var err error = nil
@@ -40,7 +40,7 @@ var listCmd = &cobra.Command{
4040

4141
RuntimeConfig.listFormat = "ascii"
4242

43-
if markdownFlag, _ := cmd.Flags().GetBool("markdown"); markdownFlag == true {
43+
if markdownFlag, _ := cmd.Flags().GetBool("markdown"); markdownFlag {
4444
RuntimeConfig.listFormat = "markdown"
4545
}
4646

cmd/validate.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,8 +65,8 @@ var validateCmd = &cobra.Command{
6565
audit := RuntimeConfig.Audit.Value().(bool)
6666
if audit && err != nil {
6767
slog.Error("validation failure in audit mode")
68-
fmt.Fprintln(cmd.ErrOrStderr(), err)
69-
return nil
68+
_, err = fmt.Fprintln(cmd.ErrOrStderr(), err)
69+
return err
7070
}
7171

7272
return err

pkg/archive/bundle.go

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,15 @@ import (
1010
"encoding/json"
1111
"errors"
1212
"fmt"
13-
"github.com/olekukonko/tablewriter"
1413
"io"
1514
"log/slog"
1615
"os"
1716
"sort"
1817
"strings"
1918
"time"
2019

20+
"github.com/olekukonko/tablewriter"
21+
2122
"github.com/dustin/go-humanize"
2223
"github.com/gatecheckdev/gatecheck/pkg/format"
2324
)
@@ -74,7 +75,7 @@ func (b *Bundle) Manifest() Manifest {
7475
func (b *Bundle) WriteFileTo(w io.Writer, fileLabel string) (int64, error) {
7576
fileBytes, ok := b.content[fileLabel]
7677
if !ok {
77-
return 0, fmt.Errorf("Gatecheck Bundle: Label '%s' not found in bundle", fileLabel)
78+
return 0, fmt.Errorf("gatecheck bundle: Label '%s' not found in bundle", fileLabel)
7879
}
7980
return bytes.NewReader(fileBytes).WriteTo(w)
8081
}
@@ -181,13 +182,18 @@ func TarGzipBundle(dst io.Writer, bundle *Bundle) (int64, error) {
181182
_ = tarWriter.WriteHeader(&tar.Header{Name: label, Size: int64(len(data)), Mode: int64(os.FileMode(0o666))})
182183
_, _ = bytes.NewReader(data).WriteTo(tarWriter)
183184
}
184-
tarWriter.Close()
185+
if err := tarWriter.Close(); err != nil {
186+
return 0, err
187+
}
185188

186189
gzipWriter := gzip.NewWriter(dst)
187-
n, _ := tarballBuffer.WriteTo(gzipWriter)
188-
gzipWriter.Close()
190+
n, err := tarballBuffer.WriteTo(gzipWriter)
191+
if err != nil {
192+
return n, err
193+
}
194+
err = gzipWriter.Close()
189195

190-
return n, nil
196+
return n, err
191197
}
192198

193199
func UntarGzipBundle(src io.Reader, bundle *Bundle) error {
@@ -209,15 +215,15 @@ func UntarGzipBundle(src io.Reader, bundle *Bundle) error {
209215
}
210216

211217
if header.Typeflag != tar.TypeReg {
212-
return errors.New("Gatecheck Bundle only supports regular files in a flat directory structure")
218+
return errors.New("gatecheck bundle only supports regular files in a flat directory structure")
213219
}
214220
fileBytes, _ := io.ReadAll(tarReader)
215221
bundle.content[header.Name] = fileBytes
216222
}
217223
manifest := new(Manifest)
218224
manifestBytes, ok := bundle.content[ManifestFilename]
219225
if !ok {
220-
return errors.New("Gatecheck Bundle manifest not found")
226+
return errors.New("gatecheck bundle manifest not found")
221227
}
222228
if err := json.Unmarshal(manifestBytes, manifest); err != nil {
223229
return fmt.Errorf("gatecheck manifest decoding: %w", err)

pkg/archive/bundle_test.go

Lines changed: 0 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,13 @@
11
package archive
22

33
import (
4-
"archive/tar"
54
"bytes"
6-
"compress/gzip"
75
"errors"
8-
"io"
96
"os"
107
"strings"
118
"testing"
129
)
1310

14-
1511
func TestBundle_WriteFileTo(t *testing.T) {
1612
bundle := NewBundle()
1713
_ = bundle.AddFrom(strings.NewReader("ABCDEF"), "file-1.txt", nil)
@@ -48,24 +44,6 @@ func TestBundle_WriteFileTo(t *testing.T) {
4844
})
4945
}
5046

51-
func zippedTarballReader(r io.Reader, tarHeader *tar.Header) *bytes.Buffer {
52-
outputBuf := new(bytes.Buffer)
53-
gw := gzip.NewWriter(outputBuf)
54-
tw := tar.NewWriter(gw)
55-
_ = tw.WriteHeader(tarHeader)
56-
57-
_, _ = io.Copy(tw, r)
58-
tw.Close()
59-
gw.Close()
60-
return outputBuf
61-
}
62-
63-
type badReader struct{}
64-
65-
func (r *badReader) Read(_ []byte) (int, error) {
66-
return 0, errors.New("mock reader error")
67-
}
68-
6947
type badWriter struct{}
7048

7149
func (r *badWriter) Write(_ []byte) (int, error) {

pkg/artifacts/lcov.go

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,21 +2,11 @@ package artifacts
22

33
import (
44
"errors"
5-
"github.com/easy-up/go-coverage"
65
"log/slog"
76
"strings"
8-
)
97

10-
func example() (coverage.Report, error) {
11-
lcovParser := coverage.New(coverage.LCOV)
12-
report, err := lcovParser.Parse("./path/to/lcov.info")
13-
if err != nil {
14-
// Handle error
15-
return coverage.Report{}, err
16-
}
17-
// Use the parsed report
18-
return report, nil
19-
}
8+
"github.com/easy-up/go-coverage"
9+
)
2010

2111
func IsCoverageReport(inputFilename string) bool {
2212
return strings.Contains(inputFilename, "lcov") ||

pkg/gatecheck/validate.go

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -5,20 +5,21 @@ import (
55
"encoding/json"
66
"errors"
77
"fmt"
8-
"github.com/easy-up/go-coverage"
98
"io"
109
"log/slog"
1110
"slices"
1211
"sort"
1312
"strings"
1413

14+
"github.com/easy-up/go-coverage"
15+
1516
"github.com/gatecheckdev/gatecheck/pkg/archive"
1617
"github.com/gatecheckdev/gatecheck/pkg/artifacts"
1718
"github.com/gatecheckdev/gatecheck/pkg/epss"
1819
"github.com/gatecheckdev/gatecheck/pkg/kev"
1920
)
2021

21-
var ErrValidationFailure = errors.New("Validation Failure")
22+
var ErrValidationFailure = errors.New("validation failure")
2223

2324
func newValidationErr(details string) error {
2425
return fmt.Errorf("%w: %s", ErrValidationFailure, details)
@@ -62,7 +63,7 @@ func Validate(config *Config, reportSrc io.Reader, targetFilename string, option
6263

6364
default:
6465
slog.Error("unsupported file type, cannot be determined from filename", "filename", targetFilename)
65-
return errors.New("Failed to validate artifact. See log for details.")
66+
return errors.New("failed to validate artifact, See log for details")
6667
}
6768
}
6869

@@ -624,7 +625,7 @@ func validateGrypeReportWithFetch(r io.Reader, config *Config, options *fetchOpt
624625

625626
if err := LoadCatalogAndData(config, catalog, epssData, options); err != nil {
626627
slog.Error("validate grype report: load epss data from file or api", "error", err)
627-
return errors.New("Cannot run Grype validation: Cannot load external validation data. See log for details.")
628+
return errors.New("cannot run Grype validation: Cannot load external validation data, see log for details")
628629
}
629630

630631
return validateGrypeFrom(r, config, catalog, epssData)
@@ -635,7 +636,7 @@ func validateGrypeFrom(r io.Reader, config *Config, catalog *kev.Catalog, epssDa
635636
report := &artifacts.GrypeReportMin{}
636637
if err := json.NewDecoder(r).Decode(report); err != nil {
637638
slog.Error("decode grype report for validation", "error", err)
638-
return errors.New("Cannot run Grype validation: Report decoding failed. See log for details.")
639+
return errors.New("cannot run Grype validation: Report decoding failed, See log for details")
639640
}
640641

641642
return validateGrypeRules(config, report, catalog, epssData)
@@ -649,7 +650,7 @@ func validateCyclonedxReportWithFetch(r io.Reader, config *Config, options *fetc
649650

650651
if err := LoadCatalogAndData(config, catalog, epssData, options); err != nil {
651652
slog.Error("validate cyclonedx report: load epss data from file or api", "error", err)
652-
return errors.New("Cannot run Cyclonedx validation: Cannot load external validation data. See log for details.")
653+
return errors.New("cannot run Cyclonedx validation: Cannot load external validation data, See log for details")
653654
}
654655
return validateCyclonedxFrom(r, config, catalog, epssData)
655656
}
@@ -658,7 +659,7 @@ func validateCyclonedxFrom(r io.Reader, config *Config, catalog *kev.Catalog, ep
658659
report := &artifacts.CyclonedxReportMin{}
659660
if err := json.NewDecoder(r).Decode(report); err != nil {
660661
slog.Error("decode cyclonedx report for validation", "error", err)
661-
return errors.New("Cannot run Cyclonedx validation: Report decoding failed. See log for details.")
662+
return errors.New("cannot run Cyclonedx validation: Report decoding failed, See log for details")
662663
}
663664

664665
return validateCyclonedxRules(config, report, catalog, epssData)
@@ -669,7 +670,7 @@ func validateSemgrepReport(r io.Reader, config *Config) error {
669670
report := &artifacts.SemgrepReportMin{}
670671
if err := json.NewDecoder(r).Decode(report); err != nil {
671672
slog.Error("decode semgrep report for validation", "error", err)
672-
return errors.New("Cannot run Semgrep report validation: Report decoding failed. See log for details.")
673+
return errors.New("cannot run Semgrep report validation: Report decoding failed, See log for details")
673674
}
674675

675676
return validateSemgrepRules(config, report)
@@ -680,7 +681,7 @@ func validateGitleaksReport(r io.Reader, config *Config) error {
680681
report := &artifacts.GitLeaksReportMin{}
681682
if err := json.NewDecoder(r).Decode(report); err != nil {
682683
slog.Error("decode gitleaks report for validation", "error", err)
683-
return errors.New("Cannot run Semgrep report validation: Report decoding failed. See log for details.")
684+
return errors.New("cannot run Semgrep report validation: Report decoding failed, See log for details")
684685
}
685686
return validateGitleaksRules(config, report)
686687
}
@@ -736,15 +737,15 @@ func validateBundle(r io.Reader, config *Config, options *fetchOptions) error {
736737
bundle := archive.NewBundle()
737738
if err := archive.UntarGzipBundle(r, bundle); err != nil {
738739
slog.Error("decode gatecheck bundle")
739-
return errors.New("Cannot run Gatecheck Bundle validation: Bundle decoding failed. See log for details.")
740+
return errors.New("cannot run Gatecheck Bundle validation: Bundle decoding failed, See log for details")
740741
}
741742

742743
catalog := kev.NewCatalog()
743744
epssData := new(epss.Data)
744745

745746
if err := LoadCatalogAndData(config, catalog, epssData, options); err != nil {
746747
slog.Error("validate cyclonedx report: load epss data from file or api", "error", err)
747-
return errors.New("Cannot run Cyclonedx validation: Cannot load external validation data. See log for details.")
748+
return errors.New("cannot run Cyclonedx validation: Cannot load external validation data, See log for details")
748749
}
749750

750751
var errs error

0 commit comments

Comments
 (0)