diff --git a/.github/workflows/lint.yaml b/.github/workflows/lint.yaml index 0283f38a..7fe8fdfe 100644 --- a/.github/workflows/lint.yaml +++ b/.github/workflows/lint.yaml @@ -25,4 +25,4 @@ jobs: - name: Golangci lint uses: golangci/golangci-lint-action@v3 with: - version: v1.48.0 + version: v1.50.1 diff --git a/.golangci.yaml b/.golangci.yaml index 427e5700..fb53047f 100644 --- a/.golangci.yaml +++ b/.golangci.yaml @@ -257,34 +257,35 @@ linters: enable: - bodyclose - depguard - # - dogsled - # - dupl + - usestdlibvars + - reassign - errcheck - funlen - gocognit - goconst - # - gocritic - # - godox - gofmt - goimports - revive - # - gosec - gosimple - govet - ineffassign - # - interfacer - misspell - nakedret - exportloopref - staticcheck - - structcheck - # - stylecheck - typecheck - unconvert - unparam - unused - whitespace - gci + # - gocritic + # - godox + # - gosec + # - interfacer + # - stylecheck + # - dogsled + # - dupl # don't enable: # - deadcode # - gochecknoglobals diff --git a/pkg/app/init_test.go b/pkg/app/init_test.go index 00a4feea..34e9420c 100644 --- a/pkg/app/init_test.go +++ b/pkg/app/init_test.go @@ -30,7 +30,7 @@ func TestDownloadfile(t *testing.T) { { name: "download 404", handler: func(w http.ResponseWriter, r *http.Request) { - w.WriteHeader(404) + w.WriteHeader(http.StatusNotFound) fmt.Fprint(w, "not found") }, wantError: "download .*? error, code: 404", @@ -38,7 +38,7 @@ func TestDownloadfile(t *testing.T) { { name: "download 500", handler: func(w http.ResponseWriter, r *http.Request) { - w.WriteHeader(500) + w.WriteHeader(http.StatusInternalServerError) fmt.Fprint(w, "server error") }, wantError: "download .*? error, code: 500", diff --git a/pkg/helmexec/exec.go b/pkg/helmexec/exec.go index 834d09f2..41daa610 100644 --- a/pkg/helmexec/exec.go +++ b/pkg/helmexec/exec.go @@ -113,7 +113,6 @@ func redactedURL(chart string) string { } // New for running helm commands -// nolint: golint func New(helmBinary string, enableLiveOutput bool, logger *zap.SugaredLogger, kubeContext string, runner Runner) *execer { // TODO: proper error handling version, err := GetHelmVersion(helmBinary, runner) diff --git a/pkg/helmexec/exec_test.go b/pkg/helmexec/exec_test.go index 5c0d25f2..d1e88df6 100644 --- a/pkg/helmexec/exec_test.go +++ b/pkg/helmexec/exec_test.go @@ -33,7 +33,6 @@ func (mock *mockRunner) Execute(cmd string, args []string, env map[string]string return mock.output, mock.err } -// nolint: golint func MockExecer(logger *zap.SugaredLogger, kubeContext string) *execer { execer := New("helm", false, logger, kubeContext, &mockRunner{}) return execer diff --git a/pkg/state/chart_dependency.go b/pkg/state/chart_dependency.go index 515d3c9b..a8b22a60 100644 --- a/pkg/state/chart_dependency.go +++ b/pkg/state/chart_dependency.go @@ -279,7 +279,6 @@ type chartDependencyManager struct { writeFile func(string, []byte, os.FileMode) error } -// nolint: golint func NewChartDependencyManager(name string, logger *zap.SugaredLogger, lockFilePath string) *chartDependencyManager { return &chartDependencyManager{ Name: name, diff --git a/pkg/state/create.go b/pkg/state/create.go index cf4c8a73..27fc2fda 100644 --- a/pkg/state/create.go +++ b/pkg/state/create.go @@ -22,7 +22,6 @@ const ( DefaultHelmBinary = "helm" ) -// nolint: golint type StateLoadError struct { msg string Cause error @@ -306,12 +305,14 @@ func (c *StateCreator) scatterGatherEnvSecretFiles(st *HelmState, envSecretFiles results <- secretResult{secret.id, nil, err, secret.path} continue } + // nolint: staticcheck defer func() { if err := c.fs.DeleteFile(decFile); err != nil { c.logger.Warnf("removing decrypted file %s: %w", decFile, err) } }() + bytes, err := c.fs.ReadFile(decFile) if err != nil { results <- secretResult{secret.id, nil, fmt.Errorf("failed to load environment secrets file \"%s\": %v", secret.path, err), secret.path} diff --git a/pkg/state/helmx.go b/pkg/state/helmx.go index 0aa5a8ab..9bb30912 100644 --- a/pkg/state/helmx.go +++ b/pkg/state/helmx.go @@ -17,18 +17,16 @@ type Dependency struct { Alias string `yaml:"alias"` } -// nolint: unparam -func (st *HelmState) appendHelmXFlags(flags []string, release *ReleaseSpec) ([]string, error) { +func (st *HelmState) appendHelmXFlags(flags []string, release *ReleaseSpec) []string { for _, adopt := range release.Adopt { flags = append(flags, "--adopt", adopt) } - return flags, nil + return flags } // append post-renderer flags to helm flags -// nolint: unparam -func (st *HelmState) appendPostRenderFlags(flags []string, release *ReleaseSpec, helm helmexec.Interface) ([]string, error) { +func (st *HelmState) appendPostRenderFlags(flags []string, release *ReleaseSpec, helm helmexec.Interface) []string { if helm.IsHelm3() { switch { // helm.GetPostRenderer() comes from cmd flag. @@ -40,7 +38,7 @@ func (st *HelmState) appendPostRenderFlags(flags []string, release *ReleaseSpec, flags = append(flags, "--post-renderer", *st.HelmDefaults.PostRenderer) } } - return flags, nil + return flags } type Chartify struct { diff --git a/pkg/state/state.go b/pkg/state/state.go index 614617b5..c46e4a3e 100644 --- a/pkg/state/state.go +++ b/pkg/state/state.go @@ -1141,10 +1141,12 @@ func (st *HelmState) PrepareCharts(helm helmexec.Interface, dir string, concurre isLocal := st.fs.DirectoryExistsAt(normalizeChart(st.basePath, chartName)) chartification, clean, err := st.PrepareChartify(helm, release, chartPath, workerIndex) + if !opts.SkipCleanup { // nolint: staticcheck defer clean() } + if err != nil { results <- &chartPrepareResult{err: err} return @@ -1256,7 +1258,6 @@ func (st *HelmState) PrepareCharts(helm helmexec.Interface, dir string, concurre chartPath = filepath.Dir(fullChartPath) } } - results <- &chartPrepareResult{ releaseName: release.Name, chartName: chartName, @@ -2515,16 +2516,9 @@ func (st *HelmState) flagsForUpgrade(helm helmexec.Interface, release *ReleaseSp flags = st.appendConnectionFlags(flags, helm, release) - var err error - flags, err = st.appendHelmXFlags(flags, release) - if err != nil { - return nil, nil, err - } + flags = st.appendHelmXFlags(flags, release) - flags, err = st.appendPostRenderFlags(flags, release, helm) - if err != nil { - return nil, nil, err - } + flags = st.appendPostRenderFlags(flags, release, helm) common, clean, err := st.namespaceAndValuesFlags(helm, release, workerIndex) if err != nil { @@ -2545,18 +2539,11 @@ func (st *HelmState) flagsForTemplate(helm helmexec.Interface, release *ReleaseS flags = st.chartVersionFlags(release) } - var err error - flags, err = st.appendHelmXFlags(flags, release) - if err != nil { - return nil, nil, err - } + flags = st.appendHelmXFlags(flags, release) flags = st.appendApiVersionsFlags(flags, release) - flags, err = st.appendPostRenderFlags(flags, release, helm) - if err != nil { - return nil, nil, err - } + flags = st.appendPostRenderFlags(flags, release, helm) common, files, err := st.namespaceAndValuesFlags(helm, release, workerIndex) if err != nil { @@ -2593,16 +2580,9 @@ func (st *HelmState) flagsForDiff(helm helmexec.Interface, release *ReleaseSpec, flags = st.appendConnectionFlags(flags, helm, release) - var err error - flags, err = st.appendHelmXFlags(flags, release) - if err != nil { - return nil, nil, err - } + flags = st.appendHelmXFlags(flags, release) - flags, err = st.appendPostRenderFlags(flags, release, helm) - if err != nil { - return nil, nil, err - } + flags = st.appendPostRenderFlags(flags, release, helm) common, files, err := st.namespaceAndValuesFlags(helm, release, workerIndex) if err != nil { @@ -2660,12 +2640,7 @@ func (st *HelmState) flagsForLint(helm helmexec.Interface, release *ReleaseSpec, return nil, files, err } - flags, err = st.appendHelmXFlags(flags, release) - if err != nil { - return nil, files, err - } - - return flags, files, nil + return st.appendHelmXFlags(flags, release), files, nil } func (st *HelmState) newReleaseTemplateData(release *ReleaseSpec) releaseTemplateData { diff --git a/pkg/tmpl/text_renderer.go b/pkg/tmpl/text_renderer.go index 1f95e640..384f15ff 100644 --- a/pkg/tmpl/text_renderer.go +++ b/pkg/tmpl/text_renderer.go @@ -14,7 +14,6 @@ type TextRenderer interface { RenderTemplateText(text string) (string, error) } -// nolint: golint func NewTextRenderer(fs *filesystem.FileSystem, basePath string, data interface{}) *templateTextRenderer { return &templateTextRenderer{ ReadText: fs.ReadFile, diff --git a/test/diff-yamls/diff-yamls.go b/test/diff-yamls/diff-yamls.go index e838fd2d..32a312f4 100644 --- a/test/diff-yamls/diff-yamls.go +++ b/test/diff-yamls/diff-yamls.go @@ -137,10 +137,9 @@ type meta struct { namespace string } -// nolint: unparam -func (res resource) getMeta() (meta, error) { +func (res resource) getMeta() meta { if len(res) == 0 { - return meta{}, nil + return meta{} } m := meta{} apiVersion, _ := res["apiVersion"].(string) @@ -152,7 +151,7 @@ func (res resource) getMeta() (meta, error) { m.name = name namespace, _ := metadata["namespace"].(string) m.namespace = namespace - return m, nil + return m } func readManifest(path string) ([]resource, error) { @@ -183,10 +182,8 @@ func readManifest(path string) ([]resource, error) { } func (res resource) getID() string { - meta, err := res.getMeta() - if err != nil { - return fmt.Sprintf("%v", res) - } + meta := res.getMeta() + ns := meta.namespace if ns == "" { ns = "~X" @@ -229,10 +226,8 @@ func (ps *pairs) isSameResource(meta1, meta2 meta) bool { } func (ps *pairs) add(node resource, source diffSource) error { - nodeMeta, err := node.getMeta() - if err != nil { - return err - } + nodeMeta := node.getMeta() + for i := range ps.list { p := ps.list[i] if ps.isSameResource(p.meta, nodeMeta) {