From 7dd877a64fa9092539fc77c5d3e0b0fb732ebd79 Mon Sep 17 00:00:00 2001 From: hanshal101 Date: Tue, 13 May 2025 22:42:41 +0530 Subject: [PATCH 1/2] feat: add linting to actions ci Signed-off-by: hanshal101 --- .github/workflows/pipeline.yaml | 6 ++++++ cmd/atc/handler.go | 15 ++++++++++++--- .../testing/flights/crossnamespace/main.go | 7 +++++-- .../internal/testing/flights/longrunning/main.go | 7 +++++-- cmd/atc/internal/testing/wasmcache/main.go | 6 ++++-- cmd/atc/main_test.go | 11 +++++++++-- cmd/internal/changelog/main.go | 6 ++++-- cmd/internal/releaser/main.go | 6 ++++-- cmd/yoke/cmd_atc.go | 2 +- cmd/yoke/cmd_blackbox.go | 6 ++++-- cmd/yoke/cmd_descent.go | 5 ++++- cmd/yoke/cmd_mayday.go | 5 ++++- cmd/yoke/cmd_stow.go | 6 ++++-- cmd/yoke/cmd_takeoff.go | 6 ++++-- cmd/yoke/cmd_turbulence.go | 6 ++++-- cmd/yoke/internal/testing/flights/base/main.go | 4 +++- cmd/yoke/main.go | 2 +- cmd/yoke/main_test.go | 6 ++++-- examples/lookup/main.go | 5 ++++- internal/revision.go | 5 ++++- internal/wasi/wasi.go | 5 ++++- pkg/flight/wasi/malloc.go | 8 ++++---- pkg/helm/helm.go | 4 +++- pkg/yoke/yoke.go | 6 +++--- pkg/yoke/yoke_takeoff.go | 4 ++-- 25 files changed, 106 insertions(+), 43 deletions(-) diff --git a/.github/workflows/pipeline.yaml b/.github/workflows/pipeline.yaml index 9f0fb79c..dd9f58f9 100644 --- a/.github/workflows/pipeline.yaml +++ b/.github/workflows/pipeline.yaml @@ -31,6 +31,12 @@ jobs: go-version-file: go.mod cache-dependency-path: go.sum cache: true + + - name: Linting + uses: golangci/golangci-lint-action@v3 + with: + version: latest + args: --timeout=5m - name: Run tests shell: bash diff --git a/cmd/atc/handler.go b/cmd/atc/handler.go index 2c7c7d34..cca8ef26 100644 --- a/cmd/atc/handler.go +++ b/cmd/atc/handler.go @@ -106,7 +106,9 @@ func Handler(client *k8s.Client, cache *wasm.ModuleCache, controllers *atc.Contr continue } - unstructured.SetNestedField(raw, originalStatus, "status") + if err := unstructured.SetNestedField(raw, originalStatus, "status"); err != nil { + continue + } data, err := json.Marshal(raw) if err != nil { @@ -232,7 +234,11 @@ func Handler(client *k8s.Client, cache *wasm.ModuleCache, controllers *atc.Contr addRequestAttrs(r.Context(), slog.Bool("skipped", true)) - json.NewEncoder(w).Encode(&review) + if err := json.NewEncoder(w).Encode(&review); err != nil { + http.Error(w, err.Error(), http.StatusInternalServerError) + return + } + return } @@ -354,7 +360,10 @@ func Handler(client *k8s.Client, cache *wasm.ModuleCache, controllers *atc.Contr "allowed", review.Response.Allowed, "details", review.Response.Result.Message, )) - json.NewEncoder(w).Encode(review) + if err := json.NewEncoder(w).Encode(review); err != nil { + http.Error(w, err.Error(), http.StatusBadRequest) + return + } }() addRequestAttrs(r.Context(), slog.String("resourceId", internal.Canonical(prev))) diff --git a/cmd/atc/internal/testing/flights/crossnamespace/main.go b/cmd/atc/internal/testing/flights/crossnamespace/main.go index 3b69b0c2..4ee6652f 100644 --- a/cmd/atc/internal/testing/flights/crossnamespace/main.go +++ b/cmd/atc/internal/testing/flights/crossnamespace/main.go @@ -2,6 +2,7 @@ package main import ( "encoding/json" + "log" "os" corev1 "k8s.io/api/core/v1" @@ -12,7 +13,7 @@ import ( func main() { // This flight needs cross-namespace to be set in order to work and serves to test that feature. - json.NewEncoder(os.Stdout).Encode(flight.Resources{ + if err := json.NewEncoder(os.Stdout).Encode(flight.Resources{ &corev1.ConfigMap{ TypeMeta: metav1.TypeMeta{ APIVersion: "v1", @@ -33,5 +34,7 @@ func main() { Namespace: "bar", }, }, - }) + }); err != nil { + log.Fatalf("error: %v\n", err) + } } diff --git a/cmd/atc/internal/testing/flights/longrunning/main.go b/cmd/atc/internal/testing/flights/longrunning/main.go index 65f04fd8..89dcfd33 100644 --- a/cmd/atc/internal/testing/flights/longrunning/main.go +++ b/cmd/atc/internal/testing/flights/longrunning/main.go @@ -2,6 +2,7 @@ package main import ( "encoding/json" + "log" "os" batchv1 "k8s.io/api/batch/v1" @@ -12,7 +13,7 @@ import ( ) func main() { - json.NewEncoder(os.Stdout).Encode(flight.Resources{ + if err := json.NewEncoder(os.Stdout).Encode(flight.Resources{ &batchv1.Job{ TypeMeta: metav1.TypeMeta{ APIVersion: batchv1.SchemeGroupVersion.Identifier(), @@ -37,5 +38,7 @@ func main() { }, }, }, - }) + }); err != nil { + log.Fatalf("error: %v\n", err) + } } diff --git a/cmd/atc/internal/testing/wasmcache/main.go b/cmd/atc/internal/testing/wasmcache/main.go index f645516a..2694d2b9 100644 --- a/cmd/atc/internal/testing/wasmcache/main.go +++ b/cmd/atc/internal/testing/wasmcache/main.go @@ -19,7 +19,7 @@ func main() { logger.Info("booting up server", "port", port) - http.ListenAndServe(port, http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + if err := http.ListenAndServe(port, http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { path := "wasm/" + strings.TrimLeft(r.URL.Path, "/") data, err := wasm.ReadFile(path) @@ -39,5 +39,7 @@ func main() { return } logger.Info("successfully served wasm asset") - })) + })); err != nil { + logger.Error("error in listening", "error", err.Error()) + } } diff --git a/cmd/atc/main_test.go b/cmd/atc/main_test.go index 3cce244b..9bd9dbaa 100644 --- a/cmd/atc/main_test.go +++ b/cmd/atc/main_test.go @@ -1002,7 +1002,12 @@ func TestHistoryCap(t *testing.T) { if err != nil { return err } - unstructured.SetNestedMap(backend.Object, map[string]any{"test": strconv.Itoa(i + 1)}, "spec", "labels") + if err := unstructured.SetNestedMap( + backend.Object, + map[string]any{"test": strconv.Itoa(i + 1)}, + "spec", "labels"); err != nil { + return err + } backend, err = backendIntf.Update(ctx, backend, metav1.UpdateOptions{}) return err }) @@ -1106,7 +1111,9 @@ func TestHistoryCap(t *testing.T) { if err != nil { return err } - unstructured.SetNestedMap(backend.Object, map[string]any{"test": "test"}, "spec", "labels") + if err := unstructured.SetNestedMap(backend.Object, map[string]any{"test": "test"}, "spec", "labels"); err != nil { + return err + } backend, err = backendIntf.Update(ctx, backend, metav1.UpdateOptions{}) return err }) diff --git a/cmd/internal/changelog/main.go b/cmd/internal/changelog/main.go index ce0add76..25670174 100644 --- a/cmd/internal/changelog/main.go +++ b/cmd/internal/changelog/main.go @@ -62,7 +62,7 @@ func run() error { var changelog Changelog - commits.ForEach(func(c *object.Commit) error { + if err := commits.ForEach(func(c *object.Commit) error { if tags := tags[c.Hash.String()]; len(tags) > 0 { changelog = append(changelog, Entry{Tags: tags, Date: tags[0].CreatedAt}) } @@ -82,7 +82,9 @@ func run() error { Sha: c.Hash.String(), }) return nil - }) + }); err != nil { + return err + } if *out == "-" { fmt.Println(changelog) diff --git a/cmd/internal/releaser/main.go b/cmd/internal/releaser/main.go index e099917e..5f94774b 100644 --- a/cmd/internal/releaser/main.go +++ b/cmd/internal/releaser/main.go @@ -502,7 +502,7 @@ func getTagVersions(repo *git.Repository) (map[string]TagVersion, error) { versions := map[string]TagVersion{} - iter.ForEach(func(r *plumbing.Reference) error { + if err := iter.ForEach(func(r *plumbing.Reference) error { release, version := path.Split(r.Name()[len("refs/tags/"):].String()) if !semver.IsValid(version) { return nil @@ -515,7 +515,9 @@ func getTagVersions(repo *git.Repository) (map[string]TagVersion, error) { } } return nil - }) + }); err != nil { + return nil, err + } return versions, nil } diff --git a/cmd/yoke/cmd_atc.go b/cmd/yoke/cmd_atc.go index b52d0972..2f1d8d59 100644 --- a/cmd/yoke/cmd_atc.go +++ b/cmd/yoke/cmd_atc.go @@ -36,7 +36,7 @@ func GetAtcParams(settings GlobalSettings, args []string) ATCParams { flagset.StringVar(¶ms.Debug, "debug-file", "", "debug file") - flagset.Parse(args) + _ = flagset.Parse(args) return params } diff --git a/cmd/yoke/cmd_blackbox.go b/cmd/yoke/cmd_blackbox.go index 5efb7d06..a4f8d53d 100644 --- a/cmd/yoke/cmd_blackbox.go +++ b/cmd/yoke/cmd_blackbox.go @@ -40,7 +40,7 @@ func GetBlackBoxParams(settings GlobalSettings, args []string) (*BlackboxParams, flagset := flag.NewFlagSet("blackbox", flag.ExitOnError) flagset.Usage = func() { - fmt.Fprintln(flagset.Output(), blackboxHelp) + _, _ = fmt.Fprintln(flagset.Output(), blackboxHelp) flagset.PrintDefaults() } @@ -49,7 +49,9 @@ func GetBlackBoxParams(settings GlobalSettings, args []string) (*BlackboxParams, RegisterGlobalFlags(flagset, ¶ms.GlobalSettings) flagset.IntVar(¶ms.Context, "context", 4, "number of lines of context in diff (ignored if not comparing revisions)") flagset.StringVar(¶ms.Namespace, "namespace", "", "namespace of release to inspect") - flagset.Parse(args) + if err := flagset.Parse(args); err != nil { + return nil, err + } params.Release = flagset.Arg(0) diff --git a/cmd/yoke/cmd_descent.go b/cmd/yoke/cmd_descent.go index 0cb6a26c..f34ae20c 100644 --- a/cmd/yoke/cmd_descent.go +++ b/cmd/yoke/cmd_descent.go @@ -29,7 +29,7 @@ func GetDescentfParams(settings GlobalSettings, args []string) (*DescentParams, flagset := flag.NewFlagSet("descent", flag.ExitOnError) flagset.Usage = func() { - fmt.Fprintln(flagset.Output(), descentHelp) + _, _ = fmt.Fprintln(flagset.Output(), descentHelp) flagset.PrintDefaults() } @@ -49,6 +49,9 @@ func GetDescentfParams(settings GlobalSettings, args []string) (*DescentParams, flagset.BoolVar(¶ms.RemoveNamespaces, "remove-namespaces", false, "enables pruning of namespaces owned by the release.\nDestructive and dangerous use with caution.") flagset.Parse(args) + if err := flagset.Parse(args); err != nil { + return nil, err + } if removeAll { params.RemoveCRDs = true diff --git a/cmd/yoke/cmd_mayday.go b/cmd/yoke/cmd_mayday.go index e2fb7192..970fc441 100644 --- a/cmd/yoke/cmd_mayday.go +++ b/cmd/yoke/cmd_mayday.go @@ -27,7 +27,7 @@ func GetMaydayParams(settings GlobalSettings, args []string) (*MaydayParams, err flagset := flag.NewFlagSet("mayday", flag.ExitOnError) flagset.Usage = func() { - fmt.Fprintln(flagset.Output(), maydayHelp) + _, _ = fmt.Fprintln(flagset.Output(), maydayHelp) flagset.PrintDefaults() } @@ -43,6 +43,9 @@ func GetMaydayParams(settings GlobalSettings, args []string) (*MaydayParams, err flagset.BoolVar(¶ms.RemoveNamespaces, "remove-namespaces", false, "deletes namespaces owned by the release. Destructive and dangerous use with caution.") flagset.Parse(args) + if err := flagset.Parse(args); err != nil { + return nil, err + } if removeAll { params.RemoveCRDs = true diff --git a/cmd/yoke/cmd_stow.go b/cmd/yoke/cmd_stow.go index d2f34476..a5793d16 100644 --- a/cmd/yoke/cmd_stow.go +++ b/cmd/yoke/cmd_stow.go @@ -21,7 +21,7 @@ func GetStowParams(args []string) (*yoke.StowParams, error) { flagset := flag.NewFlagSet("stow", flag.ExitOnError) flagset.Usage = func() { - fmt.Fprintln(flagset.Output(), stowHelp) + _, _ = fmt.Fprintln(flagset.Output(), stowHelp) flagset.PrintDefaults() } @@ -32,7 +32,9 @@ func GetStowParams(args []string) (*yoke.StowParams, error) { params.Tags = append(params.Tags, strings.Split(s, ",")...) return nil }) - flagset.Parse(args) + if err := flagset.Parse(args); err != nil { + return nil, err + } params.WasmFile = flagset.Arg(0) params.URL = flagset.Arg(1) diff --git a/cmd/yoke/cmd_takeoff.go b/cmd/yoke/cmd_takeoff.go index 850cdd8e..eafedba3 100644 --- a/cmd/yoke/cmd_takeoff.go +++ b/cmd/yoke/cmd_takeoff.go @@ -39,7 +39,7 @@ func GetTakeoffParams(settings GlobalSettings, source io.Reader, args []string) flagset := flag.NewFlagSet("takeoff", flag.ExitOnError) flagset.Usage = func() { - fmt.Fprintln(flagset.Output(), takeoffHelp) + _, _ = fmt.Fprintln(flagset.Output(), takeoffHelp) flagset.PrintDefaults() } @@ -91,7 +91,9 @@ func GetTakeoffParams(settings GlobalSettings, source io.Reader, args []string) args, params.Flight.Args = internal.CutArgs(args) - flagset.Parse(args) + if err := flagset.Parse(args); err != nil { + return nil, err + } if removeAll { params.RemoveCRDs = true diff --git a/cmd/yoke/cmd_turbulence.go b/cmd/yoke/cmd_turbulence.go index 7e5ab74d..ab859751 100644 --- a/cmd/yoke/cmd_turbulence.go +++ b/cmd/yoke/cmd_turbulence.go @@ -30,7 +30,7 @@ func GetTurbulenceParams(settings GlobalSettings, args []string) (*TurbulencePar flagset := flag.NewFlagSet("turbulence", flag.ExitOnError) flagset.Usage = func() { - fmt.Fprintln(flagset.Output(), turbulenceHelp) + _, _ = fmt.Fprintln(flagset.Output(), turbulenceHelp) flagset.PrintDefaults() } @@ -52,7 +52,9 @@ func GetTurbulenceParams(settings GlobalSettings, args []string) (*TurbulencePar flagset.BoolVar(¶ms.Color, "color", term.IsTerminal(int(os.Stdout.Fd())), "outputs diff with color") flagset.StringVar(¶ms.Namespace, "namespace", "default", "target namespace of release") - flagset.Parse(args) + if err := flagset.Parse(args); err != nil { + return nil, err + } params.Release = flagset.Arg(0) if params.Release == "" { diff --git a/cmd/yoke/internal/testing/flights/base/main.go b/cmd/yoke/internal/testing/flights/base/main.go index e124d946..b4e9e309 100644 --- a/cmd/yoke/internal/testing/flights/base/main.go +++ b/cmd/yoke/internal/testing/flights/base/main.go @@ -64,6 +64,8 @@ func run() error { func RandomString() string { buf := make([]byte, 6) - rand.Read(buf) + if _, err := rand.Read(buf); err != nil { + return "" + } return fmt.Sprintf("%x", buf) } diff --git a/cmd/yoke/main.go b/cmd/yoke/main.go index 65ff0a0d..dc3de5a6 100644 --- a/cmd/yoke/main.go +++ b/cmd/yoke/main.go @@ -48,7 +48,7 @@ func run() error { RegisterGlobalFlags(flag.CommandLine, &settings) flag.Usage = func() { - fmt.Fprintln(flag.CommandLine.Output(), rootHelp) + _,_ = fmt.Fprintln(flag.CommandLine.Output(), rootHelp) flag.PrintDefaults() fmt.Fprintln(os.Stderr) } diff --git a/cmd/yoke/main_test.go b/cmd/yoke/main_test.go index 066dc01b..14f1b429 100644 --- a/cmd/yoke/main_test.go +++ b/cmd/yoke/main_test.go @@ -134,12 +134,13 @@ func TestCreateEmptyDeployment(t *testing.T) { require.Len(t, deployments.Items, 0) // Test cleanup in case a foo release already exists (best-effort) - Mayday(background, MaydayParams{ + err = Mayday(background, MaydayParams{ GlobalSettings: settings, MaydayParams: yoke.MaydayParams{ Release: "foo", }, }) + require.NoError(t, err) } func TestCreateThenEmptyCycle(t *testing.T) { @@ -195,12 +196,13 @@ func TestCreateThenEmptyCycle(t *testing.T) { require.Len(t, deployments.Items, 1) // Test cleanup in case a foo release already exists (best-effort) - Mayday(background, MaydayParams{ + err = Mayday(background, MaydayParams{ GlobalSettings: settings, MaydayParams: yoke.MaydayParams{ Release: "foo", }, }) + require.NoError(t, err) } func TestCreateDeleteCycle(t *testing.T) { diff --git a/examples/lookup/main.go b/examples/lookup/main.go index 18e4eede..4501fc79 100644 --- a/examples/lookup/main.go +++ b/examples/lookup/main.go @@ -56,6 +56,9 @@ func run() error { func RandomString() string { buf := make([]byte, 6) - rand.Read(buf) + _, err := rand.Read(buf) + if err != nil { + return "" + } return fmt.Sprintf("%x", buf) } diff --git a/internal/revision.go b/internal/revision.go index 1333b4d5..86eba3c8 100644 --- a/internal/revision.go +++ b/internal/revision.go @@ -219,6 +219,9 @@ func MustParseInt(value string) int { func RandomString() string { buf := make([]byte, 6) - rand.Read(buf) + _, err := rand.Read(buf) + if err != nil { + return "" + } return fmt.Sprintf("%x", buf) } diff --git a/internal/wasi/wasi.go b/internal/wasi/wasi.go index 49224db7..0005e7a5 100644 --- a/internal/wasi/wasi.go +++ b/internal/wasi/wasi.go @@ -74,7 +74,10 @@ func Execute(ctx context.Context, params ExecParams) (output []byte, err error) if params.Stderr == nil || len(stderr.Bytes()) == 0 { return } - params.Stderr.Write([]byte("---\n")) + _, err := params.Stderr.Write([]byte("---\n")) + if err != nil { + return + } }() moduleCfg := wazero. diff --git a/pkg/flight/wasi/malloc.go b/pkg/flight/wasi/malloc.go index 96ad1735..fcf19c16 100644 --- a/pkg/flight/wasi/malloc.go +++ b/pkg/flight/wasi/malloc.go @@ -2,9 +2,9 @@ // It exports a "malloc" func to let hosts allocate memory within the wasm module. package wasi -import "github.com/yokecd/yoke/internal/wasm" +// import "github.com/yokecd/yoke/internal/wasm" //go:wasmexport malloc -func malloc(size uint32) wasm.Buffer { - return wasm.FromSlice(make([]byte, size)) -} +// func malloc(size uint32) wasm.Buffer { +// return wasm.FromSlice(make([]byte, size)) +// } diff --git a/pkg/helm/helm.go b/pkg/helm/helm.go index 25c41624..b0f1f2ad 100644 --- a/pkg/helm/helm.go +++ b/pkg/helm/helm.go @@ -130,7 +130,9 @@ func (chart Chart) Render(release, namespace string, values any, opts ...RenderO return nil, fmt.Errorf("failed to convert values to map: %w", err) } - chartutil.ProcessDependencies(chart.Chart, valueMap) + if err := chartutil.ProcessDependencies(chart.Chart, valueMap); err != nil { + return nil, err + } valueMap, err = chartutil.ToRenderValues(chart.Chart, valueMap, releaseOptions, capabilities) if err != nil { diff --git a/pkg/yoke/yoke.go b/pkg/yoke/yoke.go index fc9df76e..f99fe839 100644 --- a/pkg/yoke/yoke.go +++ b/pkg/yoke/yoke.go @@ -108,7 +108,7 @@ func (commander Commander) Descent(ctx context.Context, params DescentParams) er return fmt.Errorf("failed to prune release diff: %w", err) } - fmt.Fprintf(internal.Stderr(ctx), "successful descent of %s from revision %d to %d\n", params.Release, previousID, params.RevisionID) + _, _ = fmt.Fprintf(internal.Stderr(ctx), "successful descent of %s from revision %d to %d\n", params.Release, previousID, params.RevisionID) return nil } @@ -223,7 +223,7 @@ func (commander Commander) Turbulence(ctx context.Context, params TurbulencePara if err := commander.k8s.ApplyResource(ctx, desired, forceConflicts); err != nil { errs = append(errs, fmt.Errorf("%s: %w", name, err)) } - fmt.Fprintf(internal.Stderr(ctx), "fixed drift for: %s\n", name) + _, _ = fmt.Fprintf(internal.Stderr(ctx), "fixed drift for: %s\n", name) } return xerr.MultiErrOrderedFrom("failed to apply desired state to drift", errs...) @@ -283,7 +283,7 @@ func Stow(ctx context.Context, params StowParams) error { return fmt.Errorf("failed to stow wasm artifact: %w", err) } - fmt.Fprintf(internal.Stderr(ctx), "stowed wasm artifact at %s\n", digestURL) + _, _ = fmt.Fprintf(internal.Stderr(ctx), "stowed wasm artifact at %s\n", digestURL) return nil } diff --git a/pkg/yoke/yoke_takeoff.go b/pkg/yoke/yoke_takeoff.go index d90ff75c..68f22fee 100644 --- a/pkg/yoke/yoke_takeoff.go +++ b/pkg/yoke/yoke_takeoff.go @@ -303,7 +303,7 @@ func (commander Commander) Takeoff(ctx context.Context, params TakeoffParams) er } if params.DryRun { - fmt.Fprintf(internal.Stderr(ctx), "successful dry-run takeoff of %s\n", params.Release) + _, _ = fmt.Fprintf(internal.Stderr(ctx), "successful dry-run takeoff of %s\n", params.Release) return nil } @@ -342,7 +342,7 @@ func (commander Commander) Takeoff(ctx context.Context, params TakeoffParams) er } } - fmt.Fprintf(internal.Stderr(ctx), "successful takeoff of %s\n", params.Release) + _, _ = fmt.Fprintf(internal.Stderr(ctx), "successful takeoff of %s\n", params.Release) return nil } From 940af45d1a519a49357ac3d8c494245cdd080996 Mon Sep 17 00:00:00 2001 From: hanshal101 Date: Tue, 17 Jun 2025 21:20:34 +0530 Subject: [PATCH 2/2] fix: ci linting issues --- .github/workflows/pipeline.yaml | 7 ++++--- .golangci.yml | 11 +++++++++++ cmd/atc/handler.go | 11 ++++------- cmd/atc/main_test.go | 5 +---- examples/lookup/main.go | 6 ++---- internal/revision.go | 2 +- pkg/flight/wasi/malloc.go | 8 +++++--- pkg/helm/helm.go | 2 +- 8 files changed, 29 insertions(+), 23 deletions(-) create mode 100644 .golangci.yml diff --git a/.github/workflows/pipeline.yaml b/.github/workflows/pipeline.yaml index dd9f58f9..b88f6ced 100644 --- a/.github/workflows/pipeline.yaml +++ b/.github/workflows/pipeline.yaml @@ -31,12 +31,13 @@ jobs: go-version-file: go.mod cache-dependency-path: go.sum cache: true - + - name: Linting - uses: golangci/golangci-lint-action@v3 + uses: golangci/golangci-lint-action@v8 with: - version: latest + version: v2.1 args: --timeout=5m + verify: false - name: Run tests shell: bash diff --git a/.golangci.yml b/.golangci.yml new file mode 100644 index 00000000..8f2ad79c --- /dev/null +++ b/.golangci.yml @@ -0,0 +1,11 @@ +version: "2" +linters: + enable: + - govet + - staticcheck + - errcheck + - gosec +run: + timeout: 5m +issues: + exclude-use-default: false diff --git a/cmd/atc/handler.go b/cmd/atc/handler.go index cca8ef26..3ad31db7 100644 --- a/cmd/atc/handler.go +++ b/cmd/atc/handler.go @@ -7,6 +7,7 @@ import ( "encoding/json" "fmt" "io" + "log" "log/slog" "net/http" "time" @@ -106,9 +107,7 @@ func Handler(client *k8s.Client, cache *wasm.ModuleCache, controllers *atc.Contr continue } - if err := unstructured.SetNestedField(raw, originalStatus, "status"); err != nil { - continue - } + _ = unstructured.SetNestedField(raw, originalStatus, "status") data, err := json.Marshal(raw) if err != nil { @@ -235,8 +234,7 @@ func Handler(client *k8s.Client, cache *wasm.ModuleCache, controllers *atc.Contr addRequestAttrs(r.Context(), slog.Bool("skipped", true)) if err := json.NewEncoder(w).Encode(&review); err != nil { - http.Error(w, err.Error(), http.StatusInternalServerError) - return + log.Fatalf("error in encoding: %v", err) } return @@ -361,8 +359,7 @@ func Handler(client *k8s.Client, cache *wasm.ModuleCache, controllers *atc.Contr "details", review.Response.Result.Message, )) if err := json.NewEncoder(w).Encode(review); err != nil { - http.Error(w, err.Error(), http.StatusBadRequest) - return + log.Fatalf("error in encoding: %v", err) } }() diff --git a/cmd/atc/main_test.go b/cmd/atc/main_test.go index 9bd9dbaa..f9cd05f9 100644 --- a/cmd/atc/main_test.go +++ b/cmd/atc/main_test.go @@ -1002,10 +1002,7 @@ func TestHistoryCap(t *testing.T) { if err != nil { return err } - if err := unstructured.SetNestedMap( - backend.Object, - map[string]any{"test": strconv.Itoa(i + 1)}, - "spec", "labels"); err != nil { + if err := unstructured.SetNestedMap(backend.Object, map[string]any{"test": strconv.Itoa(i + 1)}, "spec", "labels"); err != nil { return err } backend, err = backendIntf.Update(ctx, backend, metav1.UpdateOptions{}) diff --git a/examples/lookup/main.go b/examples/lookup/main.go index 4501fc79..b95e27af 100644 --- a/examples/lookup/main.go +++ b/examples/lookup/main.go @@ -56,9 +56,7 @@ func run() error { func RandomString() string { buf := make([]byte, 6) - _, err := rand.Read(buf) - if err != nil { - return "" - } + _, _ = rand.Read(buf) + return fmt.Sprintf("%x", buf) } diff --git a/internal/revision.go b/internal/revision.go index 86eba3c8..e00fa7f0 100644 --- a/internal/revision.go +++ b/internal/revision.go @@ -221,7 +221,7 @@ func RandomString() string { buf := make([]byte, 6) _, err := rand.Read(buf) if err != nil { - return "" + panic(err) } return fmt.Sprintf("%x", buf) } diff --git a/pkg/flight/wasi/malloc.go b/pkg/flight/wasi/malloc.go index fcf19c16..963aada5 100644 --- a/pkg/flight/wasi/malloc.go +++ b/pkg/flight/wasi/malloc.go @@ -2,9 +2,11 @@ // It exports a "malloc" func to let hosts allocate memory within the wasm module. package wasi +import "github.com/yokecd/yoke/internal/wasm" + // import "github.com/yokecd/yoke/internal/wasm" //go:wasmexport malloc -// func malloc(size uint32) wasm.Buffer { -// return wasm.FromSlice(make([]byte, size)) -// } +func malloc(size uint32) wasm.Buffer { + return wasm.FromSlice(make([]byte, size)) +} diff --git a/pkg/helm/helm.go b/pkg/helm/helm.go index b0f1f2ad..a7355948 100644 --- a/pkg/helm/helm.go +++ b/pkg/helm/helm.go @@ -131,7 +131,7 @@ func (chart Chart) Render(release, namespace string, values any, opts ...RenderO } if err := chartutil.ProcessDependencies(chart.Chart, valueMap); err != nil { - return nil, err + return nil, fmt.Errorf("failed to process chart dependencies: %w", err) } valueMap, err = chartutil.ToRenderValues(chart.Chart, valueMap, releaseOptions, capabilities)