optimize lint logic (#586)

Signed-off-by: yxxhero <aiopsclub@163.com>
This commit is contained in:
yxxhero 2022-12-18 08:39:45 +08:00 committed by GitHub
parent 9cc0cff07f
commit 36c91c5427
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
11 changed files with 34 additions and 68 deletions

View File

@ -25,4 +25,4 @@ jobs:
- name: Golangci lint - name: Golangci lint
uses: golangci/golangci-lint-action@v3 uses: golangci/golangci-lint-action@v3
with: with:
version: v1.48.0 version: v1.50.1

View File

@ -257,34 +257,35 @@ linters:
enable: enable:
- bodyclose - bodyclose
- depguard - depguard
# - dogsled - usestdlibvars
# - dupl - reassign
- errcheck - errcheck
- funlen - funlen
- gocognit - gocognit
- goconst - goconst
# - gocritic
# - godox
- gofmt - gofmt
- goimports - goimports
- revive - revive
# - gosec
- gosimple - gosimple
- govet - govet
- ineffassign - ineffassign
# - interfacer
- misspell - misspell
- nakedret - nakedret
- exportloopref - exportloopref
- staticcheck - staticcheck
- structcheck
# - stylecheck
- typecheck - typecheck
- unconvert - unconvert
- unparam - unparam
- unused - unused
- whitespace - whitespace
- gci - gci
# - gocritic
# - godox
# - gosec
# - interfacer
# - stylecheck
# - dogsled
# - dupl
# don't enable: # don't enable:
# - deadcode # - deadcode
# - gochecknoglobals # - gochecknoglobals

View File

@ -30,7 +30,7 @@ func TestDownloadfile(t *testing.T) {
{ {
name: "download 404", name: "download 404",
handler: func(w http.ResponseWriter, r *http.Request) { handler: func(w http.ResponseWriter, r *http.Request) {
w.WriteHeader(404) w.WriteHeader(http.StatusNotFound)
fmt.Fprint(w, "not found") fmt.Fprint(w, "not found")
}, },
wantError: "download .*? error, code: 404", wantError: "download .*? error, code: 404",
@ -38,7 +38,7 @@ func TestDownloadfile(t *testing.T) {
{ {
name: "download 500", name: "download 500",
handler: func(w http.ResponseWriter, r *http.Request) { handler: func(w http.ResponseWriter, r *http.Request) {
w.WriteHeader(500) w.WriteHeader(http.StatusInternalServerError)
fmt.Fprint(w, "server error") fmt.Fprint(w, "server error")
}, },
wantError: "download .*? error, code: 500", wantError: "download .*? error, code: 500",

View File

@ -113,7 +113,6 @@ func redactedURL(chart string) string {
} }
// New for running helm commands // New for running helm commands
// nolint: golint
func New(helmBinary string, enableLiveOutput bool, logger *zap.SugaredLogger, kubeContext string, runner Runner) *execer { func New(helmBinary string, enableLiveOutput bool, logger *zap.SugaredLogger, kubeContext string, runner Runner) *execer {
// TODO: proper error handling // TODO: proper error handling
version, err := GetHelmVersion(helmBinary, runner) version, err := GetHelmVersion(helmBinary, runner)

View File

@ -33,7 +33,6 @@ func (mock *mockRunner) Execute(cmd string, args []string, env map[string]string
return mock.output, mock.err return mock.output, mock.err
} }
// nolint: golint
func MockExecer(logger *zap.SugaredLogger, kubeContext string) *execer { func MockExecer(logger *zap.SugaredLogger, kubeContext string) *execer {
execer := New("helm", false, logger, kubeContext, &mockRunner{}) execer := New("helm", false, logger, kubeContext, &mockRunner{})
return execer return execer

View File

@ -279,7 +279,6 @@ type chartDependencyManager struct {
writeFile func(string, []byte, os.FileMode) error writeFile func(string, []byte, os.FileMode) error
} }
// nolint: golint
func NewChartDependencyManager(name string, logger *zap.SugaredLogger, lockFilePath string) *chartDependencyManager { func NewChartDependencyManager(name string, logger *zap.SugaredLogger, lockFilePath string) *chartDependencyManager {
return &chartDependencyManager{ return &chartDependencyManager{
Name: name, Name: name,

View File

@ -22,7 +22,6 @@ const (
DefaultHelmBinary = "helm" DefaultHelmBinary = "helm"
) )
// nolint: golint
type StateLoadError struct { type StateLoadError struct {
msg string msg string
Cause error Cause error
@ -306,12 +305,14 @@ func (c *StateCreator) scatterGatherEnvSecretFiles(st *HelmState, envSecretFiles
results <- secretResult{secret.id, nil, err, secret.path} results <- secretResult{secret.id, nil, err, secret.path}
continue continue
} }
// nolint: staticcheck // nolint: staticcheck
defer func() { defer func() {
if err := c.fs.DeleteFile(decFile); err != nil { if err := c.fs.DeleteFile(decFile); err != nil {
c.logger.Warnf("removing decrypted file %s: %w", decFile, err) c.logger.Warnf("removing decrypted file %s: %w", decFile, err)
} }
}() }()
bytes, err := c.fs.ReadFile(decFile) bytes, err := c.fs.ReadFile(decFile)
if err != nil { if err != nil {
results <- secretResult{secret.id, nil, fmt.Errorf("failed to load environment secrets file \"%s\": %v", secret.path, err), secret.path} results <- secretResult{secret.id, nil, fmt.Errorf("failed to load environment secrets file \"%s\": %v", secret.path, err), secret.path}

View File

@ -17,18 +17,16 @@ type Dependency struct {
Alias string `yaml:"alias"` Alias string `yaml:"alias"`
} }
// nolint: unparam func (st *HelmState) appendHelmXFlags(flags []string, release *ReleaseSpec) []string {
func (st *HelmState) appendHelmXFlags(flags []string, release *ReleaseSpec) ([]string, error) {
for _, adopt := range release.Adopt { for _, adopt := range release.Adopt {
flags = append(flags, "--adopt", adopt) flags = append(flags, "--adopt", adopt)
} }
return flags, nil return flags
} }
// append post-renderer flags to helm flags // append post-renderer flags to helm flags
// nolint: unparam func (st *HelmState) appendPostRenderFlags(flags []string, release *ReleaseSpec, helm helmexec.Interface) []string {
func (st *HelmState) appendPostRenderFlags(flags []string, release *ReleaseSpec, helm helmexec.Interface) ([]string, error) {
if helm.IsHelm3() { if helm.IsHelm3() {
switch { switch {
// helm.GetPostRenderer() comes from cmd flag. // 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) flags = append(flags, "--post-renderer", *st.HelmDefaults.PostRenderer)
} }
} }
return flags, nil return flags
} }
type Chartify struct { type Chartify struct {

View File

@ -1141,10 +1141,12 @@ func (st *HelmState) PrepareCharts(helm helmexec.Interface, dir string, concurre
isLocal := st.fs.DirectoryExistsAt(normalizeChart(st.basePath, chartName)) isLocal := st.fs.DirectoryExistsAt(normalizeChart(st.basePath, chartName))
chartification, clean, err := st.PrepareChartify(helm, release, chartPath, workerIndex) chartification, clean, err := st.PrepareChartify(helm, release, chartPath, workerIndex)
if !opts.SkipCleanup { if !opts.SkipCleanup {
// nolint: staticcheck // nolint: staticcheck
defer clean() defer clean()
} }
if err != nil { if err != nil {
results <- &chartPrepareResult{err: err} results <- &chartPrepareResult{err: err}
return return
@ -1256,7 +1258,6 @@ func (st *HelmState) PrepareCharts(helm helmexec.Interface, dir string, concurre
chartPath = filepath.Dir(fullChartPath) chartPath = filepath.Dir(fullChartPath)
} }
} }
results <- &chartPrepareResult{ results <- &chartPrepareResult{
releaseName: release.Name, releaseName: release.Name,
chartName: chartName, chartName: chartName,
@ -2515,16 +2516,9 @@ func (st *HelmState) flagsForUpgrade(helm helmexec.Interface, release *ReleaseSp
flags = st.appendConnectionFlags(flags, helm, release) flags = st.appendConnectionFlags(flags, helm, release)
var err error flags = st.appendHelmXFlags(flags, release)
flags, err = st.appendHelmXFlags(flags, release)
if err != nil {
return nil, nil, err
}
flags, err = st.appendPostRenderFlags(flags, release, helm) flags = st.appendPostRenderFlags(flags, release, helm)
if err != nil {
return nil, nil, err
}
common, clean, err := st.namespaceAndValuesFlags(helm, release, workerIndex) common, clean, err := st.namespaceAndValuesFlags(helm, release, workerIndex)
if err != nil { if err != nil {
@ -2545,18 +2539,11 @@ func (st *HelmState) flagsForTemplate(helm helmexec.Interface, release *ReleaseS
flags = st.chartVersionFlags(release) flags = st.chartVersionFlags(release)
} }
var err error flags = st.appendHelmXFlags(flags, release)
flags, err = st.appendHelmXFlags(flags, release)
if err != nil {
return nil, nil, err
}
flags = st.appendApiVersionsFlags(flags, release) flags = st.appendApiVersionsFlags(flags, release)
flags, err = st.appendPostRenderFlags(flags, release, helm) flags = st.appendPostRenderFlags(flags, release, helm)
if err != nil {
return nil, nil, err
}
common, files, err := st.namespaceAndValuesFlags(helm, release, workerIndex) common, files, err := st.namespaceAndValuesFlags(helm, release, workerIndex)
if err != nil { if err != nil {
@ -2593,16 +2580,9 @@ func (st *HelmState) flagsForDiff(helm helmexec.Interface, release *ReleaseSpec,
flags = st.appendConnectionFlags(flags, helm, release) flags = st.appendConnectionFlags(flags, helm, release)
var err error flags = st.appendHelmXFlags(flags, release)
flags, err = st.appendHelmXFlags(flags, release)
if err != nil {
return nil, nil, err
}
flags, err = st.appendPostRenderFlags(flags, release, helm) flags = st.appendPostRenderFlags(flags, release, helm)
if err != nil {
return nil, nil, err
}
common, files, err := st.namespaceAndValuesFlags(helm, release, workerIndex) common, files, err := st.namespaceAndValuesFlags(helm, release, workerIndex)
if err != nil { if err != nil {
@ -2660,12 +2640,7 @@ func (st *HelmState) flagsForLint(helm helmexec.Interface, release *ReleaseSpec,
return nil, files, err return nil, files, err
} }
flags, err = st.appendHelmXFlags(flags, release) return st.appendHelmXFlags(flags, release), files, nil
if err != nil {
return nil, files, err
}
return flags, files, nil
} }
func (st *HelmState) newReleaseTemplateData(release *ReleaseSpec) releaseTemplateData { func (st *HelmState) newReleaseTemplateData(release *ReleaseSpec) releaseTemplateData {

View File

@ -14,7 +14,6 @@ type TextRenderer interface {
RenderTemplateText(text string) (string, error) RenderTemplateText(text string) (string, error)
} }
// nolint: golint
func NewTextRenderer(fs *filesystem.FileSystem, basePath string, data interface{}) *templateTextRenderer { func NewTextRenderer(fs *filesystem.FileSystem, basePath string, data interface{}) *templateTextRenderer {
return &templateTextRenderer{ return &templateTextRenderer{
ReadText: fs.ReadFile, ReadText: fs.ReadFile,

View File

@ -137,10 +137,9 @@ type meta struct {
namespace string namespace string
} }
// nolint: unparam func (res resource) getMeta() meta {
func (res resource) getMeta() (meta, error) {
if len(res) == 0 { if len(res) == 0 {
return meta{}, nil return meta{}
} }
m := meta{} m := meta{}
apiVersion, _ := res["apiVersion"].(string) apiVersion, _ := res["apiVersion"].(string)
@ -152,7 +151,7 @@ func (res resource) getMeta() (meta, error) {
m.name = name m.name = name
namespace, _ := metadata["namespace"].(string) namespace, _ := metadata["namespace"].(string)
m.namespace = namespace m.namespace = namespace
return m, nil return m
} }
func readManifest(path string) ([]resource, error) { func readManifest(path string) ([]resource, error) {
@ -183,10 +182,8 @@ func readManifest(path string) ([]resource, error) {
} }
func (res resource) getID() string { func (res resource) getID() string {
meta, err := res.getMeta() meta := res.getMeta()
if err != nil {
return fmt.Sprintf("%v", res)
}
ns := meta.namespace ns := meta.namespace
if ns == "" { if ns == "" {
ns = "~X" ns = "~X"
@ -229,10 +226,8 @@ func (ps *pairs) isSameResource(meta1, meta2 meta) bool {
} }
func (ps *pairs) add(node resource, source diffSource) error { func (ps *pairs) add(node resource, source diffSource) error {
nodeMeta, err := node.getMeta() nodeMeta := node.getMeta()
if err != nil {
return err
}
for i := range ps.list { for i := range ps.list {
p := ps.list[i] p := ps.list[i]
if ps.isSameResource(p.meta, nodeMeta) { if ps.isSameResource(p.meta, nodeMeta) {