diff --git a/cmd/kosli/allowArtifact.go b/cmd/kosli/allowArtifact.go index 89a0e98ab..754970ac9 100644 --- a/cmd/kosli/allowArtifact.go +++ b/cmd/kosli/allowArtifact.go @@ -92,7 +92,7 @@ func (o *allowArtifactOptions) run(args []string) error { Password: global.ApiToken, } _, err := kosliClient.Do(reqParams) - if err == nil && !global.DryRun { + if err == nil && global.DryRun == "false" { logger.Info("artifact %s was allow listed in environment: %s", o.payload.Fingerprint, o.environmentName) } return err diff --git a/cmd/kosli/archiveEnvironment.go b/cmd/kosli/archiveEnvironment.go index 27dad68cf..8e7e74303 100644 --- a/cmd/kosli/archiveEnvironment.go +++ b/cmd/kosli/archiveEnvironment.go @@ -52,7 +52,7 @@ func newArchiveEnvironmentCmd(out io.Writer) *cobra.Command { Password: global.ApiToken, } _, err := kosliClient.Do(reqParams) - if err == nil && !global.DryRun { + if err == nil && global.DryRun == "false" { logger.Info("environment %s was archived", args[0]) } return err diff --git a/cmd/kosli/archiveFlow.go b/cmd/kosli/archiveFlow.go index 224a6ebf6..1dd0bacc1 100644 --- a/cmd/kosli/archiveFlow.go +++ b/cmd/kosli/archiveFlow.go @@ -52,7 +52,7 @@ func newArchiveFlowCmd(out io.Writer) *cobra.Command { Password: global.ApiToken, } _, err := kosliClient.Do(reqParams) - if err == nil && !global.DryRun { + if err == nil && global.DryRun == "false" { logger.Info("flow %s was archived", args[0]) } return err diff --git a/cmd/kosli/attachPolicy.go b/cmd/kosli/attachPolicy.go index d7515fe0f..1af210e44 100644 --- a/cmd/kosli/attachPolicy.go +++ b/cmd/kosli/attachPolicy.go @@ -53,6 +53,7 @@ func newAttachPolicyCmd(out io.Writer) *cobra.Command { } cmd.Flags().StringSliceVarP(&o.environments, "environment", "e", []string{}, attachPolicyEnvFlag) + addDryRunFlag(cmd) err := RequireFlags(cmd, []string{"environment"}) if err != nil { @@ -79,7 +80,7 @@ func (o *attachPolicyOptions) run(args []string) error { break } } - if err == nil && !global.DryRun { + if err == nil && global.DryRun == "false" { logger.Info("policy '%s' is attached to environments: %s", args[0], o.environments) } return err diff --git a/cmd/kosli/attestArtifact.go b/cmd/kosli/attestArtifact.go index f999e8a19..d49b68228 100644 --- a/cmd/kosli/attestArtifact.go +++ b/cmd/kosli/attestArtifact.go @@ -206,7 +206,7 @@ func (o *attestArtifactOptions) run(args []string) error { Password: global.ApiToken, } _, err = kosliClient.Do(reqParams) - if err == nil && !global.DryRun { + if err == nil && global.DryRun == "false" { logger.Info("artifact %s was attested with fingerprint: %s", o.payload.Filename, o.payload.Fingerprint) } return err diff --git a/cmd/kosli/attestGeneric.go b/cmd/kosli/attestGeneric.go index c6a2076e1..99743e7ad 100644 --- a/cmd/kosli/attestGeneric.go +++ b/cmd/kosli/attestGeneric.go @@ -168,7 +168,7 @@ func (o *attestGenericOptions) run(args []string) error { Password: global.ApiToken, } _, err = kosliClient.Do(reqParams) - if err == nil && !global.DryRun { + if err == nil && global.DryRun == "false" { logger.Info("generic attestation '%s' is reported to trail: %s", o.payload.AttestationName, o.trailName) } return wrapAttestationError(err) diff --git a/cmd/kosli/attestJira.go b/cmd/kosli/attestJira.go index 3647ac081..aeb892e39 100644 --- a/cmd/kosli/attestJira.go +++ b/cmd/kosli/attestJira.go @@ -256,7 +256,7 @@ func (o *attestJiraOptions) run(args []string) error { Password: global.ApiToken, } _, err = kosliClient.Do(reqParams) - if err == nil && !global.DryRun { + if err == nil && global.DryRun == "false" { logger.Info("jira attestation '%s' is reported to trail: %s", o.payload.AttestationName, o.trailName) } diff --git a/cmd/kosli/attestJunit.go b/cmd/kosli/attestJunit.go index 1af4cd726..14ddc817b 100644 --- a/cmd/kosli/attestJunit.go +++ b/cmd/kosli/attestJunit.go @@ -181,7 +181,7 @@ func (o *attestJunitOptions) run(args []string) error { Password: global.ApiToken, } _, err = kosliClient.Do(reqParams) - if err == nil && !global.DryRun { + if err == nil && global.DryRun == "false" { logger.Info("junit attestation '%s' is reported to trail: %s", o.payload.AttestationName, o.trailName) } return wrapAttestationError(err) diff --git a/cmd/kosli/attestSnyk.go b/cmd/kosli/attestSnyk.go index f3cd143a4..7ee8e7491 100644 --- a/cmd/kosli/attestSnyk.go +++ b/cmd/kosli/attestSnyk.go @@ -195,7 +195,7 @@ func (o *attestSnykOptions) run(args []string) error { Password: global.ApiToken, } _, err = kosliClient.Do(reqParams) - if err == nil && !global.DryRun { + if err == nil && global.DryRun == "false" { logger.Info("snyk attestation '%s' is reported to trail: %s", o.payload.AttestationName, o.trailName) } return wrapAttestationError(err) diff --git a/cmd/kosli/attestSonar.go b/cmd/kosli/attestSonar.go index b04e8b390..d04addb57 100644 --- a/cmd/kosli/attestSonar.go +++ b/cmd/kosli/attestSonar.go @@ -197,7 +197,7 @@ func (o *attestSonarOptions) run(args []string) error { Password: global.ApiToken, } _, err = kosliClient.Do(reqParams) - if err == nil && !global.DryRun { + if err == nil && global.DryRun == "false" { logger.Info("sonar attestation '%s' is reported to trail: %s", o.payload.AttestationName, o.trailName) } diff --git a/cmd/kosli/beginTrail.go b/cmd/kosli/beginTrail.go index fced4c861..cb7d5a49f 100644 --- a/cmd/kosli/beginTrail.go +++ b/cmd/kosli/beginTrail.go @@ -139,7 +139,7 @@ func (o *beginTrailOptions) run(args []string) error { } res, err := kosliClient.Do(reqParams) - if err == nil && !global.DryRun { + if err == nil && global.DryRun == "false" { verb := "begun" if res.Resp.StatusCode == 200 { verb = "updated" diff --git a/cmd/kosli/cli_utils.go b/cmd/kosli/cli_utils.go index fdc418e62..9aaa5a4c1 100644 --- a/cmd/kosli/cli_utils.go +++ b/cmd/kosli/cli_utils.go @@ -9,7 +9,6 @@ import ( "os" "path/filepath" "reflect" - "slices" "strconv" "strings" "text/tabwriter" @@ -523,7 +522,7 @@ func ValidateAttestationArtifactArg(args []string, artifactType, inputSha256 str return fmt.Errorf("artifact name argument is required when --artifact-type is set") } if artifactType == "" && inputSha256 == "" && len(args) > 0 { - return fmt.Errorf("--artifact-type or --fingerprint must be specified when artifact name ('%s') argument is supplied.%s", args[0], BooleanArgsMessageLink(args)) + return fmt.Errorf("--artifact-type or --fingerprint must be specified when artifact name ('%s') argument is supplied.", args[0]) } if inputSha256 != "" { @@ -801,17 +800,8 @@ func prefixEachLine(multilineString, prefix string) string { // Custom error message instead of cobra.MaximumNArgs(1) func CustomMaximumNArgs(max int, args []string) error { if len(args) > max { - return fmt.Errorf("accepts at most 1 arg(s), received %v %v%s", len(args), args, BooleanArgsMessageLink(args)) + return fmt.Errorf("accepts at most 1 arg(s), received %v %v", len(args), args) } else { return nil } } - -func BooleanArgsMessageLink(args []string) string { - if slices.Contains(args, "true") || slices.Contains(args, "false") { - return "\nSee https://docs.kosli.com//faq/#boolean-flags" - } else { - return "" - } - -} diff --git a/cmd/kosli/createEnvironment.go b/cmd/kosli/createEnvironment.go index 37bcec5bb..5d22720ff 100644 --- a/cmd/kosli/createEnvironment.go +++ b/cmd/kosli/createEnvironment.go @@ -134,7 +134,7 @@ func (o *createEnvOptions) run(args []string) error { Password: global.ApiToken, } _, err := kosliClient.Do(reqParams) - if err == nil && !global.DryRun { + if err == nil && global.DryRun == "false" { logger.Info("environment %s was created", o.payload.Name) } return err diff --git a/cmd/kosli/createFlow.go b/cmd/kosli/createFlow.go index 5f19f02ab..c7898be54 100644 --- a/cmd/kosli/createFlow.go +++ b/cmd/kosli/createFlow.go @@ -138,7 +138,7 @@ func (o *createFlowOptions) run(args []string) error { } res, err := kosliClient.Do(reqParams) - if err == nil && !global.DryRun { + if err == nil && global.DryRun == "false" { verb := "created" if res.Resp.StatusCode == 200 { verb = "updated" diff --git a/cmd/kosli/createPolicy.go b/cmd/kosli/createPolicy.go index d3f81b8a8..00c007cda 100644 --- a/cmd/kosli/createPolicy.go +++ b/cmd/kosli/createPolicy.go @@ -92,7 +92,7 @@ func (o *createPolicyOptions) run(args []string) error { } res, err := kosliClient.Do(reqParams) - if err == nil && !global.DryRun { + if err == nil && global.DryRun == "false" { verb := "created" if res.Resp.StatusCode == 200 { verb = "updated" diff --git a/cmd/kosli/detachPolicy.go b/cmd/kosli/detachPolicy.go index 3258fa85f..1283e6340 100644 --- a/cmd/kosli/detachPolicy.go +++ b/cmd/kosli/detachPolicy.go @@ -49,6 +49,7 @@ func newDetachPolicyCmd(out io.Writer) *cobra.Command { } cmd.Flags().StringSliceVarP(&o.environments, "environment", "e", []string{}, detachPolicyEnvFlag) + addDryRunFlag(cmd) err := RequireFlags(cmd, []string{"environment"}) if err != nil { @@ -75,7 +76,7 @@ func (o *detachPolicyOptions) run(args []string) error { break } } - if err == nil && !global.DryRun { + if err == nil && global.DryRun == "false" { logger.Info("policy '%s' is detached from environments: %s", args[0], o.environments) } return err diff --git a/cmd/kosli/disableBeta.go b/cmd/kosli/disableBeta.go index 9b925aa25..e8721a9e5 100644 --- a/cmd/kosli/disableBeta.go +++ b/cmd/kosli/disableBeta.go @@ -59,7 +59,7 @@ func (o *betaOptions) run(args []string) error { Password: global.ApiToken, } _, err = kosliClient.Do(reqParams) - if err == nil && !global.DryRun { + if err == nil && global.DryRun == "false" { logger.Info("beta features have been %s for organization: %s", action, global.Org) } return err diff --git a/cmd/kosli/doubledHost.go b/cmd/kosli/doubledHost.go index 507b89584..a6acf1174 100644 --- a/cmd/kosli/doubledHost.go +++ b/cmd/kosli/doubledHost.go @@ -57,7 +57,7 @@ func runDoubledHost(args []string) (string, error) { // Return subsidiary-call's output in debug mode only. stdOut := output0 - if opts.debug && output1 != "" { + if opts.debug == "true" && output1 != "" { stdOut += fmt.Sprintf("\n[debug] [%s]", opts.hosts[1]) stdOut += fmt.Sprintf("\n%s", output1) } @@ -116,7 +116,7 @@ func runBufferedInnerMain(args []string) (string, error) { type DoubledOpts struct { hosts []string apiTokens []string - debug bool + debug string } func getDoubledOpts() DoubledOpts { diff --git a/cmd/kosli/expectDeployment.go b/cmd/kosli/expectDeployment.go index e74154652..82c91b7b1 100644 --- a/cmd/kosli/expectDeployment.go +++ b/cmd/kosli/expectDeployment.go @@ -98,7 +98,7 @@ func (o *expectDeploymentOptions) run(args []string) error { Password: global.ApiToken, } _, err = kosliClient.Do(reqParams) - if err == nil && !global.DryRun { + if err == nil && global.DryRun == "false" { logger.Info("expect deployment of artifact %s was reported to: %s", o.payload.Fingerprint, o.payload.Environment) } return err diff --git a/cmd/kosli/flags.go b/cmd/kosli/flags.go index 08d6c8beb..50f1f5c0e 100644 --- a/cmd/kosli/flags.go +++ b/cmd/kosli/flags.go @@ -31,7 +31,7 @@ func addAWSAuthFlags(cmd *cobra.Command, o *aws.AWSStaticCreds) { } func addDryRunFlag(cmd *cobra.Command) { - cmd.PersistentFlags().BoolVarP(&global.DryRun, "dry-run", "D", false, dryRunFlag) + cmd.Flags().StringVarP(&global.DryRun, "dry-run", "D", "false", dryRunFlag) } func addBitbucketFlags(cmd *cobra.Command, bbConfig *bbUtils.Config, ci string) { diff --git a/cmd/kosli/joinEnvironment.go b/cmd/kosli/joinEnvironment.go index 4af315c93..bfae75fec 100644 --- a/cmd/kosli/joinEnvironment.go +++ b/cmd/kosli/joinEnvironment.go @@ -59,7 +59,7 @@ func newJoinEnvironmentCmd(out io.Writer) *cobra.Command { Password: global.ApiToken, } _, err := kosliClient.Do(reqParams) - if err == nil && !global.DryRun { + if err == nil && global.DryRun == "false" { logger.Info("environment '%s' was joined to '%s'", o.payload.Physical, o.logical) } return err diff --git a/cmd/kosli/main.go b/cmd/kosli/main.go index cf3923d31..e426b20d1 100644 --- a/cmd/kosli/main.go +++ b/cmd/kosli/main.go @@ -69,7 +69,7 @@ func innerMain(cmd *cobra.Command, args []string) error { logger.Error("%s\navailable subcommands are: %s", errMessage, strings.Join(availableSubcommands, " | ")) } } - if global.DryRun { + if global.DryRun == "true" { logger.Info("Error: %s", err.Error()) logger.Warning("Encountered an error but --dry-run is enabled. Exiting with 0 exit code.") return nil diff --git a/cmd/kosli/pullrequest.go b/cmd/kosli/pullrequest.go index e1e375aaa..bf26cf1bc 100644 --- a/cmd/kosli/pullrequest.go +++ b/cmd/kosli/pullrequest.go @@ -84,11 +84,11 @@ func (o *pullRequestArtifactOptions) run(out io.Writer, args []string) error { Password: global.ApiToken, } _, err = kosliClient.Do(reqParams) - if err == nil && !global.DryRun { + if err == nil && global.DryRun == "false" { logger.Info("%s %s evidence is reported to artifact: %s", o.payload.GitProvider, label, o.payload.ArtifactFingerprint) } - if len(pullRequestsEvidence) == 0 && o.pullRequestOptions.assert && !global.DryRun { + if len(pullRequestsEvidence) == 0 && o.pullRequestOptions.assert && global.DryRun == "false" { return fmt.Errorf("assert failed: no %s found for the given commit: %s", label, o.commit) } return err @@ -148,11 +148,11 @@ func (o *attestPROptions) run(args []string) error { Password: global.ApiToken, } _, err = kosliClient.Do(reqParams) - if err == nil && !global.DryRun { + if err == nil && global.DryRun == "false" { logger.Info("%s %s attestation '%s' is reported to trail: %s", o.payload.GitProvider, label, o.payload.AttestationName, o.trailName) } - if len(pullRequestsEvidence) == 0 && o.assert && !global.DryRun { + if len(pullRequestsEvidence) == 0 && o.assert && global.DryRun == "false" { return fmt.Errorf("assert failed: no %s found for the given commit: %s", label, o.payload.Commit.Sha1) } return wrapAttestationError(err) @@ -204,11 +204,11 @@ func (o *pullRequestCommitOptions) run(args []string) error { Password: global.ApiToken, } _, err = kosliClient.Do(reqParams) - if err == nil && !global.DryRun { + if err == nil && global.DryRun == "false" { logger.Info("%s %s evidence is reported to commit: %s", o.payload.GitProvider, label, o.payload.CommitSHA) } - if len(pullRequestsEvidence) == 0 && o.pullRequestOptions.assert && !global.DryRun { + if len(pullRequestsEvidence) == 0 && o.pullRequestOptions.assert && global.DryRun == "false" { return fmt.Errorf("assert failed: no %s found for the given commit: %s", label, o.payload.CommitSHA) } return err diff --git a/cmd/kosli/renameEnvironment.go b/cmd/kosli/renameEnvironment.go index fec2d574c..f603b137a 100644 --- a/cmd/kosli/renameEnvironment.go +++ b/cmd/kosli/renameEnvironment.go @@ -55,7 +55,7 @@ func newRenameEnvironmentCmd(out io.Writer) *cobra.Command { Password: global.ApiToken, } _, err := kosliClient.Do(reqParams) - if err == nil && !global.DryRun { + if err == nil && global.DryRun == "false" { logger.Info("environment %s was renamed to %s", args[0], payload.NewName) } return err diff --git a/cmd/kosli/renameFlow.go b/cmd/kosli/renameFlow.go index 6b5c72d4a..ab9abaf1f 100644 --- a/cmd/kosli/renameFlow.go +++ b/cmd/kosli/renameFlow.go @@ -54,7 +54,7 @@ func newRenameFlowCmd(out io.Writer) *cobra.Command { Password: global.ApiToken, } _, err := kosliClient.Do(reqParams) - if err == nil && !global.DryRun { + if err == nil && global.DryRun == "false" { logger.Info("flow %s was renamed to %s", args[0], payload.NewName) } return err diff --git a/cmd/kosli/reportApproval.go b/cmd/kosli/reportApproval.go index 4eaf49078..d7c4ca4df 100644 --- a/cmd/kosli/reportApproval.go +++ b/cmd/kosli/reportApproval.go @@ -168,14 +168,14 @@ func (o *reportApprovalOptions) run(args []string, request bool) error { getLastApprovedGitCommitParams := &requests.RequestParams{ Method: http.MethodGet, URL: url, - DryRun: false, + DryRun: "false", Password: global.ApiToken, } lastApprovedGitCommitResponse, err := kosliClient.Do(getLastApprovedGitCommitParams) if err != nil { - if !global.DryRun { + if global.DryRun == "false" { // error and not dry run -> print error message and return err return err } else { @@ -216,7 +216,7 @@ func (o *reportApprovalOptions) run(args []string, request bool) error { Password: global.ApiToken, } _, err = kosliClient.Do(reqParams) - if err == nil && !global.DryRun { + if err == nil && global.DryRun == "false" { logger.Info("approval created for artifact: %s", o.payload.ArtifactFingerprint) } return err diff --git a/cmd/kosli/reportArtifact.go b/cmd/kosli/reportArtifact.go index f5d89304e..1b2e79d52 100644 --- a/cmd/kosli/reportArtifact.go +++ b/cmd/kosli/reportArtifact.go @@ -139,10 +139,10 @@ func (o *reportArtifactOptions) run(args []string) error { previousCommit, err := o.latestCommit(currentBranch(gitView)) if err == nil { o.payload.CommitsList, err = gitView.ChangeLog(o.payload.GitCommit, previousCommit, logger) - if err != nil && !global.DryRun { + if err != nil && global.DryRun == "false" { return err } - } else if !global.DryRun { + } else if global.DryRun == "false" { return err } @@ -161,7 +161,7 @@ func (o *reportArtifactOptions) run(args []string) error { Password: global.ApiToken, } _, err = kosliClient.Do(reqParams) - if err == nil && !global.DryRun { + if err == nil && global.DryRun == "false" { logger.Info("artifact %s was reported with fingerprint: %s", o.payload.Filename, o.payload.Fingerprint) } return err diff --git a/cmd/kosli/reportEvidenceArtifactGeneric.go b/cmd/kosli/reportEvidenceArtifactGeneric.go index 2b5564b7c..122465f74 100644 --- a/cmd/kosli/reportEvidenceArtifactGeneric.go +++ b/cmd/kosli/reportEvidenceArtifactGeneric.go @@ -156,7 +156,7 @@ func (o *reportEvidenceArtifactGenericOptions) run(args []string) error { Password: global.ApiToken, } _, err = kosliClient.Do(reqParams) - if err == nil && !global.DryRun { + if err == nil && global.DryRun == "false" { logger.Info("generic evidence '%s' is reported to artifact: %s", o.payload.EvidenceName, o.payload.ArtifactFingerprint) } return err diff --git a/cmd/kosli/reportEvidenceArtifactJunit.go b/cmd/kosli/reportEvidenceArtifactJunit.go index a3895a4c6..3c8755b65 100644 --- a/cmd/kosli/reportEvidenceArtifactJunit.go +++ b/cmd/kosli/reportEvidenceArtifactJunit.go @@ -153,7 +153,7 @@ func (o *reportEvidenceArtifactJunitOptions) run(args []string) error { Password: global.ApiToken, } _, err = kosliClient.Do(reqParams) - if err == nil && !global.DryRun { + if err == nil && global.DryRun == "false" { logger.Info("junit test evidence is reported to artifact: %s", o.payload.ArtifactFingerprint) } return err diff --git a/cmd/kosli/reportEvidenceArtifactSnyk.go b/cmd/kosli/reportEvidenceArtifactSnyk.go index f95439fef..01a78b9e5 100644 --- a/cmd/kosli/reportEvidenceArtifactSnyk.go +++ b/cmd/kosli/reportEvidenceArtifactSnyk.go @@ -154,7 +154,7 @@ func (o *reportEvidenceArtifactSnykOptions) run(args []string) error { Password: global.ApiToken, } _, err = kosliClient.Do(reqParams) - if err == nil && !global.DryRun { + if err == nil && global.DryRun == "false" { logger.Info("snyk scan evidence is reported to artifact: %s", o.payload.ArtifactFingerprint) } return err diff --git a/cmd/kosli/reportEvidenceCommitGeneric.go b/cmd/kosli/reportEvidenceCommitGeneric.go index 3968912fd..4d2796542 100644 --- a/cmd/kosli/reportEvidenceCommitGeneric.go +++ b/cmd/kosli/reportEvidenceCommitGeneric.go @@ -109,7 +109,7 @@ func (o *reportEvidenceCommitGenericOptions) run(args []string) error { } _, err = kosliClient.Do(reqParams) - if err == nil && !global.DryRun { + if err == nil && global.DryRun == "false" { logger.Info("generic evidence '%s' is reported to commit: %s", o.payload.EvidenceName, o.payload.CommitSHA) } return err diff --git a/cmd/kosli/reportEvidenceCommitJUnit.go b/cmd/kosli/reportEvidenceCommitJUnit.go index afc66ac1c..831917d52 100644 --- a/cmd/kosli/reportEvidenceCommitJUnit.go +++ b/cmd/kosli/reportEvidenceCommitJUnit.go @@ -117,7 +117,7 @@ func (o *reportEvidenceCommitJunitOptions) run(args []string) error { Password: global.ApiToken, } _, err = kosliClient.Do(reqParams) - if err == nil && !global.DryRun { + if err == nil && global.DryRun == "false" { logger.Info("junit test evidence is reported to commit: %s", o.payload.CommitSHA) } return err diff --git a/cmd/kosli/reportEvidenceCommitJira.go b/cmd/kosli/reportEvidenceCommitJira.go index 0b5200aae..340bdeefc 100644 --- a/cmd/kosli/reportEvidenceCommitJira.go +++ b/cmd/kosli/reportEvidenceCommitJira.go @@ -217,7 +217,7 @@ func (o *reportEvidenceCommitJiraOptions) run(args []string) error { } _, err = kosliClient.Do(reqParams) - if err == nil && !global.DryRun { + if err == nil && global.DryRun == "false" { logger.Info("Jira evidence is reported to commit: %s", o.payload.CommitSHA) logger.Info(" Issues references reported: %s", issueLog) } diff --git a/cmd/kosli/reportEvidenceCommitSnyk.go b/cmd/kosli/reportEvidenceCommitSnyk.go index 0a21954e5..ec29f9c48 100644 --- a/cmd/kosli/reportEvidenceCommitSnyk.go +++ b/cmd/kosli/reportEvidenceCommitSnyk.go @@ -131,7 +131,7 @@ func (o *reportEvidenceCommitSnykOptions) run(args []string) error { Password: global.ApiToken, } _, err = kosliClient.Do(reqParams) - if err == nil && !global.DryRun { + if err == nil && global.DryRun == "false" { logger.Info("snyk scan evidence is reported to commit: %s", o.payload.CommitSHA) } return err diff --git a/cmd/kosli/root.go b/cmd/kosli/root.go index 38e66e2ea..562f50801 100644 --- a/cmd/kosli/root.go +++ b/cmd/kosli/root.go @@ -239,10 +239,10 @@ type GlobalOpts struct { Org string Host string HttpProxy string - DryRun bool + DryRun string MaxAPIRetries int ConfigFile string - Debug bool + Debug string } // ConfigGetter defines an interface for getting the default config file path @@ -296,7 +296,7 @@ func newRootCmd(out io.Writer, args []string) (*cobra.Command, error) { } if global.ApiToken == "DRY_RUN" { - global.DryRun = true + global.DryRun = "true" } // If the user types "--description $variable --sha256 ..." and $variable is "" then Cobra @@ -324,7 +324,7 @@ func newRootCmd(out io.Writer, args []string) (*cobra.Command, error) { cmd.PersistentFlags().StringVar(&global.HttpProxy, "http-proxy", "", httpProxyFlag) cmd.PersistentFlags().IntVarP(&global.MaxAPIRetries, "max-api-retries", "r", defaultMaxAPIRetries, maxAPIRetryFlag) cmd.PersistentFlags().StringVarP(&global.ConfigFile, "config-file", "c", getConfigFileFlagDefault(), configFileFlag) - cmd.PersistentFlags().BoolVar(&global.Debug, "debug", false, debugFlag) + cmd.PersistentFlags().StringVar(&global.Debug, "debug", "false", debugFlag) // Add subcommands cmd.AddCommand( @@ -374,7 +374,7 @@ func initialize(cmd *cobra.Command, out io.Writer) error { logger.SetInfoOut(out) // needed to allow tests to overwrite the logger output stream // assign debug value early here to enable debug logs during config file and env var binding // if --debug is used. The value is re-assigned later after binding config file and env vars - logger.DebugEnabled = global.Debug + logger.DebugEnabled = global.Debug == "true" // If provided, extract the custom config file dir and name @@ -428,10 +428,10 @@ func initialize(cmd *cobra.Command, out io.Writer) error { // re-assign debug after binding flags to config or env vars as it may have // a different value now - logger.DebugEnabled = global.Debug + logger.DebugEnabled = global.Debug == "true" var err error - kosliClient, err = requests.NewKosliClient(global.HttpProxy, global.MaxAPIRetries, global.Debug, logger) + kosliClient, err = requests.NewKosliClient(global.HttpProxy, global.MaxAPIRetries, global.Debug == "true", logger) if err != nil { return err } diff --git a/cmd/kosli/snapshotAzureApps.go b/cmd/kosli/snapshotAzureApps.go index a22aa7a50..f01a5141d 100644 --- a/cmd/kosli/snapshotAzureApps.go +++ b/cmd/kosli/snapshotAzureApps.go @@ -108,7 +108,7 @@ func (o *snapshotAzureAppsOptions) run(args []string) error { Password: global.ApiToken, } _, err = kosliClient.Do(reqParams) - if err == nil && !global.DryRun { + if err == nil && global.DryRun == "false" { logger.Info("%d azure apps were reported to environment %s", len(webAppsData), envName) } return err diff --git a/cmd/kosli/snapshotDocker.go b/cmd/kosli/snapshotDocker.go index 63aa8c461..4666b9ec7 100644 --- a/cmd/kosli/snapshotDocker.go +++ b/cmd/kosli/snapshotDocker.go @@ -77,7 +77,7 @@ func (o *snapshotDockerOptions) run(args []string) error { Password: global.ApiToken, } _, err = kosliClient.Do(reqParams) - if err == nil && !global.DryRun { + if err == nil && global.DryRun == "false" { logger.Info("[%d] containers were reported to environment %s", len(payload.Artifacts), envName) } return err diff --git a/cmd/kosli/snapshotECS.go b/cmd/kosli/snapshotECS.go index 4c3716b0b..36fe3f679 100644 --- a/cmd/kosli/snapshotECS.go +++ b/cmd/kosli/snapshotECS.go @@ -108,7 +108,7 @@ func (o *snapshotECSOptions) run(args []string) error { Password: global.ApiToken, } _, err = kosliClient.Do(reqParams) - if err == nil && !global.DryRun { + if err == nil && global.DryRun == "false" { logger.Info("[%d] containers were reported to environment %s", len(payload.Artifacts), envName) } return err diff --git a/cmd/kosli/snapshotK8S.go b/cmd/kosli/snapshotK8S.go index 192fe0225..4c28407dd 100644 --- a/cmd/kosli/snapshotK8S.go +++ b/cmd/kosli/snapshotK8S.go @@ -109,7 +109,7 @@ func (o *snapshotK8SOptions) run(args []string) error { Password: global.ApiToken, } _, err = kosliClient.Do(reqParams) - if err == nil && !global.DryRun { + if err == nil && global.DryRun == "false" { logger.Info("[%d] pods were reported to environment %s", len(payload.Artifacts), envName) } return err diff --git a/cmd/kosli/snapshotLambda.go b/cmd/kosli/snapshotLambda.go index c5a573825..c2f299fb6 100644 --- a/cmd/kosli/snapshotLambda.go +++ b/cmd/kosli/snapshotLambda.go @@ -146,7 +146,7 @@ func (o *snapshotLambdaOptions) run(args []string) error { Password: global.ApiToken, } _, err = kosliClient.Do(reqParams) - if err == nil && !global.DryRun { + if err == nil && global.DryRun == "false" { logger.Info("%d lambda functions were reported to environment %s", len(lambdaData), envName) } return err diff --git a/cmd/kosli/snapshotPath.go b/cmd/kosli/snapshotPath.go index 39d03eb8a..141a2c866 100644 --- a/cmd/kosli/snapshotPath.go +++ b/cmd/kosli/snapshotPath.go @@ -108,7 +108,7 @@ func (o *snapshotPathOptions) run(args []string) error { Password: global.ApiToken, } _, err = kosliClient.Do(reqParams) - if err == nil && !global.DryRun { + if err == nil && global.DryRun == "false" { logger.Info("[%d] artifacts were reported to environment %s", len(payload.Artifacts), envName) } return err diff --git a/cmd/kosli/snapshotPaths.go b/cmd/kosli/snapshotPaths.go index cc8b30121..0b8a3edf9 100644 --- a/cmd/kosli/snapshotPaths.go +++ b/cmd/kosli/snapshotPaths.go @@ -113,7 +113,7 @@ func (o *snapshotPathsOptions) run(args []string) error { Password: global.ApiToken, } _, err = kosliClient.Do(reqParams) - if err == nil && !global.DryRun { + if err == nil && global.DryRun == "false" { logger.Info("[%d] artifacts were reported to environment %s", len(payload.Artifacts), envName) } return err diff --git a/cmd/kosli/snapshotS3.go b/cmd/kosli/snapshotS3.go index 149c01456..0c5802d76 100644 --- a/cmd/kosli/snapshotS3.go +++ b/cmd/kosli/snapshotS3.go @@ -130,7 +130,7 @@ func (o *snapshotS3Options) run(args []string) error { Password: global.ApiToken, } _, err = kosliClient.Do(reqParams) - if err == nil && !global.DryRun { + if err == nil && global.DryRun == "false" { logger.Info("bucket %s was reported to environment %s", o.bucket, envName) } return err diff --git a/cmd/kosli/snapshotServer.go b/cmd/kosli/snapshotServer.go index 07e5cd93e..900163376 100644 --- a/cmd/kosli/snapshotServer.go +++ b/cmd/kosli/snapshotServer.go @@ -114,7 +114,7 @@ func (o *snapshotServerOptions) run(args []string) error { Password: global.ApiToken, } _, err = kosliClient.Do(reqParams) - if err == nil && !global.DryRun { + if err == nil && global.DryRun == "false" { logger.Info("[%d] artifacts were reported to environment %s", len(payload.Artifacts), envName) } return err diff --git a/cmd/kosli/tag.go b/cmd/kosli/tag.go index 8b0d96a38..9c62b7fb8 100644 --- a/cmd/kosli/tag.go +++ b/cmd/kosli/tag.go @@ -103,7 +103,7 @@ func (o *tagOptions) run(args []string) error { Password: global.ApiToken, } _, err = kosliClient.Do(reqParams) - if err == nil && !global.DryRun { + if err == nil && global.DryRun == "false" { var addMsg, removedMsg, msg string if len(o.payload.SetTags) > 0 { keys := make([]string, 0, len(o.payload.SetTags)) diff --git a/internal/requests/requests.go b/internal/requests/requests.go index 2704a1a70..948741934 100644 --- a/internal/requests/requests.go +++ b/internal/requests/requests.go @@ -69,7 +69,7 @@ type RequestParams struct { Username string Password string Token string - DryRun bool + DryRun string } // newHTTPRequest returns a customized http request based on RequestParams @@ -181,7 +181,7 @@ func (c *Client) Do(p *RequestParams) (*HTTPResponse, error) { return nil, fmt.Errorf("failed to create a %s request to %s : %v", p.Method, p.URL, err) } - if p.DryRun { + if p.DryRun == "true" { c.Logger.Info("############### THIS IS A DRY-RUN ###############") if req.Body != nil { reqBody, err := io.ReadAll(req.Body) diff --git a/internal/requests/requests_test.go b/internal/requests/requests_test.go index 03e4bb188..598ca996e 100644 --- a/internal/requests/requests_test.go +++ b/internal/requests/requests_test.go @@ -318,7 +318,7 @@ func (suite *RequestsTestSuite) TestDo() { Method: http.MethodPut, URL: "https://app.kosli.com/api/v2/environments/cyber-dojo", Password: "secret", - DryRun: true, + DryRun: "true", Payload: "some payload", }, expectedLog: "############### THIS IS A DRY-RUN ###############\nthis is the payload that would be sent in real run: \n \"some payload\"\n", @@ -329,7 +329,7 @@ func (suite *RequestsTestSuite) TestDo() { Method: http.MethodGet, URL: "https://app.kosli.com/api/v2/environments/cyber-dojo", Password: "secret", - DryRun: true, + DryRun: "true", }, expectedLog: "############### THIS IS A DRY-RUN ###############\n", },