From 5fca1bf5dc89c30bd3b8cf3817df944625e7f7df Mon Sep 17 00:00:00 2001 From: Antoine Gelloz Date: Fri, 9 Feb 2024 16:16:40 +0100 Subject: [PATCH] fix: bump of golangci-lint to v1.56.1 needed some code changes --- cmd/build.go | 1 - cmd/root.go | 2 +- cmd/version.go | 2 +- internal/logger/logger.go | 2 +- pkg/dag/dag_test.go | 2 +- pkg/dib/build.go | 2 +- pkg/dib/build_test.go | 4 ++-- pkg/dib/generate_dag.go | 1 - pkg/dib/list.go | 4 +++- pkg/dib/metadata.go | 2 +- pkg/dib/metadata_test.go | 6 +++--- pkg/exec/shell.go | 7 ++++--- pkg/goss/executor_dgoss.go | 2 +- pkg/goss/executor_dgoss_test.go | 1 - pkg/goss/executor_kubernetes.go | 2 +- pkg/goss/executor_kubernetes_test.go | 5 +++-- pkg/kaniko/context_local.go | 4 +--- pkg/kaniko/context_remote.go | 2 +- pkg/kaniko/executor_docker.go | 2 +- pkg/kaniko/executor_docker_test.go | 1 - pkg/kaniko/executor_kubernetes.go | 5 +++-- pkg/kaniko/executor_kubernetes_test.go | 2 +- pkg/kubernetes/pod.go | 2 +- pkg/report/report.go | 5 +++-- pkg/report/report_test.go | 2 +- pkg/report/template.go | 2 +- pkg/report/utils.go | 11 +++++------ pkg/trivy/executor_kubernetes.go | 5 +++-- pkg/trivy/executor_kubernetes_test.go | 2 +- pkg/trivy/executor_local.go | 3 +-- pkg/trivy/executor_local_test.go | 1 - pkg/trivy/report.go | 2 +- pkg/trivy/runner.go | 2 +- 33 files changed, 48 insertions(+), 50 deletions(-) diff --git a/cmd/build.go b/cmd/build.go index 5522d7406..4dc4d2341 100644 --- a/cmd/build.go +++ b/cmd/build.go @@ -138,7 +138,6 @@ func doBuild(opts dib.BuildOpts) error { if err := report.Generate(res, dibBuilder.Graph); err != nil { return fmt.Errorf("cannot generate report: %w", err) } - if err := res.CheckError(); err != nil { return err } diff --git a/cmd/root.go b/cmd/root.go index c8c214ce2..727859eb1 100644 --- a/cmd/root.go +++ b/cmd/root.go @@ -84,7 +84,7 @@ func initConfig() { // If a config file is found, read it in. if err := viper.ReadInConfig(); err != nil { // Non-blocking, because some command does not require config file, ie: docgen. - logger.Warnf("Unable read from config: %s", err) + logger.Warnf(err.Error()) return } logger.Infof("Using config file: %s", viper.ConfigFileUsed()) diff --git a/cmd/version.go b/cmd/version.go index 47166cb9b..8e9983715 100644 --- a/cmd/version.go +++ b/cmd/version.go @@ -23,7 +23,7 @@ var ( var versionCmd = &cobra.Command{ Use: "version", Short: "print current dib version", - Run: func(cmd *cobra.Command, args []string) { + Run: func(_ *cobra.Command, _ []string) { goVersion := "unknown" buildInfo, available := debug.ReadBuildInfo() if available { diff --git a/internal/logger/logger.go b/internal/logger/logger.go index 74cbdee63..8fea57b5e 100644 --- a/internal/logger/logger.go +++ b/internal/logger/logger.go @@ -56,7 +56,6 @@ func SetLevel(level *string) { switch *level { case "debug": - Infof("debug mode enabled") log.Level = LogLevelDebug case "info": log.Level = LogLevelInfo @@ -71,6 +70,7 @@ func SetLevel(level *string) { } logger.Store(log) + Infof("Log level set to %s", log.Level) } // LogLevelStyle returns the style of the prefix for each log level. diff --git a/pkg/dag/dag_test.go b/pkg/dag/dag_test.go index 60112f06b..b7c3309db 100644 --- a/pkg/dag/dag_test.go +++ b/pkg/dag/dag_test.go @@ -205,7 +205,7 @@ func Test_WalkParallel_RunsAllNodes(t *testing.T) { }) var length int - tracking.Range(func(k, v interface{}) bool { + tracking.Range(func(_, _ interface{}) bool { length++ return true }) diff --git a/pkg/dib/build.go b/pkg/dib/build.go index 33664bc06..445670eee 100644 --- a/pkg/dib/build.go +++ b/pkg/dib/build.go @@ -164,7 +164,7 @@ func buildNode( return fmt.Errorf("failed to create folder %s: %w", buildReportDir, err) } - filePath := path.Join(buildReportDir, fmt.Sprintf("%s.txt", strings.ReplaceAll(img.ShortName, "/", "_"))) + filePath := path.Join(buildReportDir, strings.ReplaceAll(img.ShortName, "/", "_")+".txt") fileOutput, err := os.Create(filePath) if err != nil { return fmt.Errorf("failed to create file %s: %w", filePath, err) diff --git a/pkg/dib/build_test.go b/pkg/dib/build_test.go index 69a2a232b..ecd55a6f4 100644 --- a/pkg/dib/build_test.go +++ b/pkg/dib/build_test.go @@ -1,7 +1,7 @@ package dib_test import ( - "fmt" + "errors" "os" "path" "testing" @@ -101,7 +101,7 @@ func TestRebuildGraph(t *testing.T) { return graph }, testRunners: []types.TestRunner{&mock.TestRunner{ - ReturnedError: fmt.Errorf("mock test failed"), + ReturnedError: errors.New("mock test failed"), }}, expBuildReports: []report.BuildReport{ { diff --git a/pkg/dib/generate_dag.go b/pkg/dib/generate_dag.go index 2f27c062e..00fcd173f 100644 --- a/pkg/dib/generate_dag.go +++ b/pkg/dib/generate_dag.go @@ -274,7 +274,6 @@ func hashFiles( } humanReadableHash, err = humanhash.HumanizeUsing(hash.Sum(nil), humanizedHashWordLength, worldListToUse, "-") - if err != nil { return "", fmt.Errorf("could not humanize hash: %w", err) } diff --git a/pkg/dib/list.go b/pkg/dib/list.go index 03e2a4e0d..cf8e44441 100644 --- a/pkg/dib/list.go +++ b/pkg/dib/list.go @@ -1,6 +1,7 @@ package dib import ( + "errors" "fmt" "os" "sort" @@ -74,7 +75,8 @@ func ParseOutputOptions(output string) (FormatOpts, error) { switch parsed[0] { case GoTemplateFileFormat: if len(parsed) == 1 { - return formatOpts, fmt.Errorf("you need to provide a path to template file when using \"go-template-file\" options") + return formatOpts, errors.New( + "you need to provide a path to template file when using \"go-template-file\" options") } formatOpts.Type = GoTemplateFileFormat formatOpts.TemplatePath = parsed[1] diff --git a/pkg/dib/metadata.go b/pkg/dib/metadata.go index 92f5472d2..9694fbdc8 100644 --- a/pkg/dib/metadata.go +++ b/pkg/dib/metadata.go @@ -124,7 +124,7 @@ func loadGitLabMeta(meta *ImageMetadata) { meta.Authors = os.Getenv("GITLAB_USER_NAME") meta.Revision = os.Getenv("CI_COMMIT_SHA") - repoURL := fmt.Sprintf("%s/-/blob", os.Getenv("CI_PROJECT_URL")) + repoURL := os.Getenv("CI_PROJECT_URL") + "/-/blob" meta.repositoryRootURL = fmt.Sprintf("%s/%s", repoURL, os.Getenv("CI_DEFAULT_BRANCH")) meta.repositoryCommitURL = fmt.Sprintf("%s/%s", repoURL, meta.Revision) meta.repositoryRootPath = os.Getenv("CI_PROJECT_DIR") diff --git a/pkg/dib/metadata_test.go b/pkg/dib/metadata_test.go index 4ab4462d3..a1892f037 100644 --- a/pkg/dib/metadata_test.go +++ b/pkg/dib/metadata_test.go @@ -14,7 +14,7 @@ import ( "github.com/stretchr/testify/require" ) -func Test_LabelsFromGitHubMetadata(t *testing.T) { //nolint:paralleltest +func Test_LabelsFromGitHubMetadata(t *testing.T) { now := time.Now() cwd, err := os.Getwd() require.NoError(t, err) @@ -60,7 +60,7 @@ func Test_LabelsFromGitHubMetadata(t *testing.T) { //nolint:paralleltest assert.Equal(t, expected, actual) } -func Test_LabelsFromGitLabMetadata(t *testing.T) { //nolint:paralleltest +func Test_LabelsFromGitLabMetadata(t *testing.T) { now := time.Now() cwd, err := os.Getwd() require.NoError(t, err) @@ -104,7 +104,7 @@ func Test_LabelsFromGitLabMetadata(t *testing.T) { //nolint:paralleltest assert.Equal(t, expected, actual) } -func Test_LabelsFromGitMetadata(t *testing.T) { //nolint:paralleltest +func Test_LabelsFromGitMetadata(t *testing.T) { // Since we run our CI on GitHub, we need to reset this variable to make the test pass. t.Setenv("GITHUB_REPOSITORY", "") diff --git a/pkg/exec/shell.go b/pkg/exec/shell.go index 872163ce1..38bdef424 100644 --- a/pkg/exec/shell.go +++ b/pkg/exec/shell.go @@ -38,8 +38,9 @@ func (e ShellExecutor) Execute(name string, args ...string) (string, error) { cmd.Stdout = &stdout cmd.Dir = e.Dir + logger.Debugf("Executing command: %s", cmd) if err := cmd.Run(); err != nil { - return stderr.String(), fmt.Errorf("failed to execute command `%s`: %w", name, err) + return stderr.String(), fmt.Errorf("failed to execute command: %s: %w", cmd, err) } return stdout.String(), nil @@ -53,9 +54,9 @@ func (e ShellExecutor) ExecuteWithWriters(stdout, stderr io.Writer, name string, cmd.Stdout = stdout cmd.Dir = e.Dir - logger.Debugf("cmd: %s", cmd.String()) + logger.Debugf("Executing command: %s", cmd) if err := cmd.Run(); err != nil { - return fmt.Errorf("failed to execute command `%s`: %w", name, err) + return fmt.Errorf("failed to execute command: %s: %w", cmd, err) } return nil diff --git a/pkg/goss/executor_dgoss.go b/pkg/goss/executor_dgoss.go index ecabfc421..7fcc1a2d8 100644 --- a/pkg/goss/executor_dgoss.go +++ b/pkg/goss/executor_dgoss.go @@ -34,7 +34,7 @@ func NewDGossExecutor() *DGossExecutor { func (e DGossExecutor) Execute(_ context.Context, output io.Writer, opts types.RunTestOptions, args ...string) error { shell := &exec.ShellExecutor{ Dir: opts.DockerContextPath, - Env: append(os.Environ(), fmt.Sprintf("GOSS_OPTS=%s", strings.Join(args, " "))), + Env: append(os.Environ(), "GOSS_OPTS="+strings.Join(args, " ")), } cmd := fmt.Sprintf("dgoss run --rm --tty --entrypoint='' %s sh", opts.ImageReference) diff --git a/pkg/goss/executor_dgoss_test.go b/pkg/goss/executor_dgoss_test.go index 4962d7f17..1bcd8fc1b 100644 --- a/pkg/goss/executor_dgoss_test.go +++ b/pkg/goss/executor_dgoss_test.go @@ -19,7 +19,6 @@ func Test_DGossExecutor_NewDGossExecutorUsesDefaultShell(t *testing.T) { assert.Equal(t, "/bin/bash", executor.Shell) } -//nolint:paralleltest func Test_DGossExecutor_NewDGossExecutorDetectsShellFromEnv(t *testing.T) { t.Setenv("SHELL", "/path/to/shell") diff --git a/pkg/goss/executor_kubernetes.go b/pkg/goss/executor_kubernetes.go index e7883e4d7..26618abbf 100644 --- a/pkg/goss/executor_kubernetes.go +++ b/pkg/goss/executor_kubernetes.go @@ -128,7 +128,7 @@ func (e KubernetesExecutor) Execute(ctx context.Context, output io.Writer, opts } watcher, err := e.clientSet.CoreV1().Pods(e.PodConfig.Namespace).Watch(ctx, metav1.ListOptions{ - LabelSelector: fmt.Sprintf("app.kubernetes.io/instance=%s", pod.Name), + LabelSelector: "app.kubernetes.io/instance=" + pod.Name, Watch: true, }) if err != nil { diff --git a/pkg/goss/executor_kubernetes_test.go b/pkg/goss/executor_kubernetes_test.go index e9e94e6e3..1e4759b5b 100644 --- a/pkg/goss/executor_kubernetes_test.go +++ b/pkg/goss/executor_kubernetes_test.go @@ -93,8 +93,9 @@ spec: <-time.After(1 * time.Second) // Check the created Pod - pod, err := clientSet.CoreV1().Pods("goss-ns").Get(context.Background(), "goss-pod", metav1.GetOptions{}) - require.NoError(t, err) + pod, err := clientSet.CoreV1().Pods("goss-ns"). + Get(context.Background(), "goss-pod", metav1.GetOptions{}) + assert.NoError(t, err) // Pod assertions assert.Equal(t, expectedLabels, pod.Labels) diff --git a/pkg/kaniko/context_local.go b/pkg/kaniko/context_local.go index 17f360d27..e4fd9d8f5 100644 --- a/pkg/kaniko/context_local.go +++ b/pkg/kaniko/context_local.go @@ -1,8 +1,6 @@ package kaniko import ( - "fmt" - "github.com/radiofrance/dib/pkg/types" ) @@ -17,5 +15,5 @@ func NewLocalContextProvider() *LocalContextProvider { // PrepareContext has nothing to do because the build context already exists locally. // It just returns the path of the existing local context, prefixed by the Kaniko `dir://` indicator. func (c LocalContextProvider) PrepareContext(opts types.ImageBuilderOpts) (string, error) { - return fmt.Sprintf("dir://%s", opts.Context), nil + return "dir://" + opts.Context, nil } diff --git a/pkg/kaniko/context_remote.go b/pkg/kaniko/context_remote.go index 682badd73..eb81f7701 100644 --- a/pkg/kaniko/context_remote.go +++ b/pkg/kaniko/context_remote.go @@ -34,7 +34,7 @@ func NewRemoteContextProvider(uploader FileUploader) *RemoteContextProvider { func (c RemoteContextProvider) PrepareContext(opts types.ImageBuilderOpts) (string, error) { tagParts := strings.Split(opts.Tags[0], ":") shortName := path.Base(tagParts[0]) - remoteDir := fmt.Sprintf("kaniko/%s", shortName) + remoteDir := "kaniko/" + shortName filename := fmt.Sprintf("context-kaniko-%s-%s.tar.gz", shortName, tagParts[1]) tarGzPath := path.Join(opts.Context, filename) diff --git a/pkg/kaniko/executor_docker.go b/pkg/kaniko/executor_docker.go index 078ce3962..fe372405d 100644 --- a/pkg/kaniko/executor_docker.go +++ b/pkg/kaniko/executor_docker.go @@ -28,7 +28,7 @@ type DockerExecutor struct { func NewDockerExecutor(exec exec.Executor, config ContainerConfig) *DockerExecutor { dockerCfg := os.Getenv("DOCKER_CONFIG") if dockerCfg == "" { - dockerCfg = fmt.Sprintf("%s/.docker", os.Getenv("HOME")) + dockerCfg = os.Getenv("HOME") + "/.docker" } return &DockerExecutor{ diff --git a/pkg/kaniko/executor_docker_test.go b/pkg/kaniko/executor_docker_test.go index b630ac8f2..3c7a1a262 100644 --- a/pkg/kaniko/executor_docker_test.go +++ b/pkg/kaniko/executor_docker_test.go @@ -10,7 +10,6 @@ import ( "github.com/stretchr/testify/require" ) -//nolint:paralleltest func Test_DockerExecutor_Execute(t *testing.T) { t.Setenv("HOME", "/home/dib") diff --git a/pkg/kaniko/executor_kubernetes.go b/pkg/kaniko/executor_kubernetes.go index a15ecdbcb..ddbc411cd 100644 --- a/pkg/kaniko/executor_kubernetes.go +++ b/pkg/kaniko/executor_kubernetes.go @@ -2,6 +2,7 @@ package kaniko import ( "context" + "errors" "fmt" "io" @@ -33,7 +34,7 @@ func NewKubernetesExecutor(clientSet kubernetes.Interface, config k8sutils.PodCo func (e KubernetesExecutor) Execute(ctx context.Context, output io.Writer, args []string) error { logger.Infof("Building image with kaniko kubernetes executor") if e.DockerConfigSecret == "" { - return fmt.Errorf("the DockerConfigSecret option is required") + return errors.New("the DockerConfigSecret option is required") } podName := e.PodConfig.Name @@ -166,7 +167,7 @@ func (e KubernetesExecutor) Execute(ctx context.Context, output io.Writer, args } watcher, err := e.clientSet.CoreV1().Pods(e.PodConfig.Namespace).Watch(ctx, metav1.ListOptions{ - LabelSelector: fmt.Sprintf("app.kubernetes.io/instance=%s", pod.Name), + LabelSelector: "app.kubernetes.io/instance=" + pod.Name, Watch: true, }) if err != nil { diff --git a/pkg/kaniko/executor_kubernetes_test.go b/pkg/kaniko/executor_kubernetes_test.go index 68df7ce37..844738275 100644 --- a/pkg/kaniko/executor_kubernetes_test.go +++ b/pkg/kaniko/executor_kubernetes_test.go @@ -130,7 +130,7 @@ spec: // Check the created Pod pod, err := clientSet.CoreV1().Pods("kaniko-ns").Get(context.Background(), "kaniko-pod", metav1.GetOptions{}) - require.NoError(t, err) + assert.NoError(t, err) // Pod assertions assert.Equal(t, expectedLabels, pod.Labels) diff --git a/pkg/kubernetes/pod.go b/pkg/kubernetes/pod.go index 31b52a584..4637238e6 100644 --- a/pkg/kubernetes/pod.go +++ b/pkg/kubernetes/pod.go @@ -72,7 +72,7 @@ func WaitPodReady(ctx context.Context, watcher watch.Interface) (chan struct{}, return } case <-time.After(1 * time.Hour): - errChan <- fmt.Errorf("timeout waiting for pod to run to completion") + errChan <- errors.New("timeout waiting for pod to run to completion") return case <-ctx.Done(): errChan <- fmt.Errorf("stop wating for pod: %w", ctx.Err()) diff --git a/pkg/report/report.go b/pkg/report/report.go index 837f096bf..c1d6c5e16 100644 --- a/pkg/report/report.go +++ b/pkg/report/report.go @@ -1,6 +1,7 @@ package report import ( + "errors" "fmt" "os" "path" @@ -120,10 +121,10 @@ func (r Report) Print() { func (r Report) CheckError() error { for _, buildReport := range r.BuildReports { if buildReport.BuildStatus == BuildStatusError { - return fmt.Errorf("one of the image build failed, see the report for more details") + return errors.New("one of the image build failed, see the report for more details") } if buildReport.TestsStatus == TestsStatusFailed { - return fmt.Errorf("some tests failed, see report for more details") + return errors.New("some tests failed, see report for more details") } } return nil diff --git a/pkg/report/report_test.go b/pkg/report/report_test.go index 3b11ba856..ee31f45eb 100644 --- a/pkg/report/report_test.go +++ b/pkg/report/report_test.go @@ -168,7 +168,7 @@ func TestReport_GetTrivyReportDir(t *testing.T) { } } -func TestReport_GetReportURL_Gitlab(t *testing.T) { //nolint:paralleltest +func TestReport_GetReportURL_Gitlab(t *testing.T) { t.Setenv("CI_JOB_URL", "https://gitlab.com/example-repository/-/jobs/123456") dibReport := report.Report{ Options: report.Options{ diff --git a/pkg/report/template.go b/pkg/report/template.go index f56caf168..ad6266e10 100644 --- a/pkg/report/template.go +++ b/pkg/report/template.go @@ -48,7 +48,7 @@ func Init( RootDir: rootDir, Name: generationDate.Format("20060102150405"), GenerationDate: generationDate, - Version: fmt.Sprintf("v%s", version), + Version: "v" + version, BuildOpts: buildOpts, WithGraph: !disableGenerateGraph, WithGoss: isTestRunnerEnabled(types.TestRunnerGoss, testRunners), diff --git a/pkg/report/utils.go b/pkg/report/utils.go index c1a0e5099..9d1a6db87 100644 --- a/pkg/report/utils.go +++ b/pkg/report/utils.go @@ -1,7 +1,6 @@ package report import ( - "fmt" "html/template" "os" "path" @@ -33,10 +32,10 @@ var templateFuncs = template.FuncMap{ func (r Report) renderTemplate(name string, reportOpts Options, reportData any) error { // The order matter for inheritance files := []string{ - path.Join(templatesDir, "_layout.go.html"), // base layout - path.Join(templatesDir, "_nav.go.html"), // navbar - path.Join(templatesDir, "_functions.go.html"), // helpers & utils functions - path.Join(templatesDir, fmt.Sprintf("%s.go.html", name)), // report page + path.Join(templatesDir, "_layout.go.html"), // base layout + path.Join(templatesDir, "_nav.go.html"), // navbar + path.Join(templatesDir, "_functions.go.html"), // helpers & utils functions + path.Join(templatesDir, name+".go.html"), // report page } tpl, err := template.New("layout").Funcs(templateFuncs).ParseFS(templatesFS, files...) @@ -44,7 +43,7 @@ func (r Report) renderTemplate(name string, reportOpts Options, reportData any) return err } - writer, err := os.Create(fmt.Sprintf("%s.html", path.Join(r.GetRootDir(), name))) + writer, err := os.Create(path.Join(r.GetRootDir(), name) + ".html") if err != nil { return err } diff --git a/pkg/trivy/executor_kubernetes.go b/pkg/trivy/executor_kubernetes.go index 555e70ccd..368c288ed 100644 --- a/pkg/trivy/executor_kubernetes.go +++ b/pkg/trivy/executor_kubernetes.go @@ -2,6 +2,7 @@ package trivy import ( "context" + "errors" "fmt" "io" "strings" @@ -36,7 +37,7 @@ func (e KubernetesExecutor) Execute(ctx context.Context, output io.Writer, args logger.Debugf("Running container with args '%s'", strings.Join(args, " ")) if e.DockerConfigSecret == "" { - return fmt.Errorf("the DockerConfigSecret option is required") + return errors.New("the DockerConfigSecret option is required") } podName := e.PodConfig.Name @@ -127,7 +128,7 @@ func (e KubernetesExecutor) Execute(ctx context.Context, output io.Writer, args } watcher, err := e.clientSet.CoreV1().Pods(e.PodConfig.Namespace).Watch(ctx, metav1.ListOptions{ - LabelSelector: fmt.Sprintf("app.kubernetes.io/instance=%s", pod.Name), + LabelSelector: "app.kubernetes.io/instance=" + pod.Name, Watch: true, }) if err != nil { diff --git a/pkg/trivy/executor_kubernetes_test.go b/pkg/trivy/executor_kubernetes_test.go index b2a89bc07..ba58f0327 100644 --- a/pkg/trivy/executor_kubernetes_test.go +++ b/pkg/trivy/executor_kubernetes_test.go @@ -133,7 +133,7 @@ spec: // Check the created Pod pod, err := clientSet.CoreV1().Pods("trivy-ns").Get(context.Background(), "trivy-pod", metav1.GetOptions{}) - require.NoError(t, err) + assert.NoError(t, err) // Pod assertions assert.Equal(t, expectedLabels, pod.Labels) diff --git a/pkg/trivy/executor_local.go b/pkg/trivy/executor_local.go index 25af577ab..6a7408a19 100644 --- a/pkg/trivy/executor_local.go +++ b/pkg/trivy/executor_local.go @@ -2,7 +2,6 @@ package trivy import ( "context" - "fmt" "io" "os" "strings" @@ -33,7 +32,7 @@ func NewLocalExecutor() *LocalExecutor { func (e LocalExecutor) Execute(_ context.Context, output io.Writer, args ...string) error { shell := &exec.ShellExecutor{} - cmd := fmt.Sprintf("trivy %s", strings.Join(args, " ")) + cmd := "trivy " + strings.Join(args, " ") return shell.ExecuteWithWriter(output, e.Shell, "-c", cmd) } diff --git a/pkg/trivy/executor_local_test.go b/pkg/trivy/executor_local_test.go index 8e5962e14..e28270420 100644 --- a/pkg/trivy/executor_local_test.go +++ b/pkg/trivy/executor_local_test.go @@ -19,7 +19,6 @@ func Test_LocalExecutor_NewLocalExecutorUsesDefaultShell(t *testing.T) { assert.Equal(t, "/bin/bash", executor.Shell) } -//nolint:paralleltest func Test_LocalExecutor_NewLocalExecutorDetectsShellFromEnv(t *testing.T) { t.Setenv("SHELL", "/path/to/shell") diff --git a/pkg/trivy/report.go b/pkg/trivy/report.go index b1db8184a..fe8f1def4 100644 --- a/pkg/trivy/report.go +++ b/pkg/trivy/report.go @@ -32,7 +32,7 @@ type ScanReport struct { Os string `json:"os"` Rootfs struct { Type string `json:"type"` - DiffIds []string `json:"diff_ids"` + DiffIDs []string `json:"diff_ids"` } `json:"rootfs"` Config struct { Entrypoint []string `json:"Entrypoint"` diff --git a/pkg/trivy/runner.go b/pkg/trivy/runner.go index dec8a9ab6..c22d03583 100644 --- a/pkg/trivy/runner.go +++ b/pkg/trivy/runner.go @@ -102,7 +102,7 @@ func (b TestRunner) RunTest(opts types.RunTestOptions) error { func (b TestRunner) exportTrivyReport(opts types.RunTestOptions, stdout string) error { trivyReportFile := path.Join( opts.ReportTrivyDir, - fmt.Sprintf("%s.json", strings.ReplaceAll(opts.ImageName, "/", "_")), + strings.ReplaceAll(opts.ImageName, "/", "_")+".json", ) if err := os.WriteFile(trivyReportFile, []byte(stdout), 0o644); err != nil { //nolint:gosec return fmt.Errorf("could not write trivy report to file %s: %w", trivyReportFile, err)