From 849a08016d0d489c82146220574207a43bce274f Mon Sep 17 00:00:00 2001 From: anjali-deore <200181980+cx-anjali-deore@users.noreply.github.com> Date: Wed, 2 Jul 2025 12:50:52 +0530 Subject: [PATCH 01/12] removed unused code From f8788d31ec59a57435f3b6a2aab8cc3f7e851a99 Mon Sep 17 00:00:00 2001 From: anjali-deore <200181980+cx-anjali-deore@users.noreply.github.com> Date: Thu, 3 Jul 2025 14:37:37 +0530 Subject: [PATCH 02/12] Primarybranch flag added for the scan command --- internal/commands/scan.go | 6 ++++++ internal/params/flags.go | 1 + internal/services/projects.go | 34 +++++++++++++++++++++++++++------- 3 files changed, 34 insertions(+), 7 deletions(-) diff --git a/internal/commands/scan.go b/internal/commands/scan.go index 3c5b9306b..6a68900dd 100644 --- a/internal/commands/scan.go +++ b/internal/commands/scan.go @@ -722,6 +722,11 @@ func scanCreateSubCommand( "Enable SAST scan using light query configuration", ) + createScanCmd.PersistentFlags().Bool( + commonParams.BranchPrimaryFlag, + false, + "Sets the given branch as primary for the project. Available options: true,false") + createScanCmd.PersistentFlags().Bool( commonParams.SastRecommendedExclusionsFlags, false, @@ -845,6 +850,7 @@ func setupScanTypeProjectAndConfig( userAllowedEngines, _ := jwtWrapper.GetAllowedEngines(featureFlagsWrapper) var info map[string]interface{} newProjectName, _ := cmd.Flags().GetString(commonParams.ProjectName) + _ = json.Unmarshal(*input, &info) info[resultsMapType] = getUploadType(cmd) // Handle the project settings diff --git a/internal/params/flags.go b/internal/params/flags.go index 1da3eb3c5..365f756cf 100644 --- a/internal/params/flags.go +++ b/internal/params/flags.go @@ -70,6 +70,7 @@ const ( NtlmProxyDomainFlag = "proxy-ntlm-domain" SastFastScanFlag = "sast-fast-scan" SastLightQueriesFlag = "sast-light-queries" + BranchPrimaryFlag = "branch-primary" SastRecommendedExclusionsFlags = "sast-recommended-exclusions" NtlmProxyDomainFlagUsage = "Window domain when using NTLM proxy" BaseURIFlagUsage = "The base system URI" diff --git a/internal/services/projects.go b/internal/services/projects.go index cfb8ae6a4..128b4e720 100644 --- a/internal/services/projects.go +++ b/internal/services/projects.go @@ -1,8 +1,11 @@ package services import ( + "fmt" + "github.com/spf13/viper" "slices" "strconv" + "strings" "time" featureFlagsConstants "github.com/checkmarx/ast-cli/internal/constants/feature-flags" @@ -31,17 +34,22 @@ func FindProject( applicationWrapper wrappers.ApplicationsWrapper, featureFlagsWrapper wrappers.FeatureFlagsWrapper, ) (string, error) { + var isBranchPrimary bool resp, err := GetProjectsCollectionByProjectName(projectName, projectsWrapper) if err != nil { return "", err } - + branchName := strings.TrimSpace(viper.GetString(commonParams.BranchKey)) + branchPrimaryChanged := cmd.Flags().Changed(commonParams.BranchPrimaryFlag) + if branchPrimaryChanged { + isBranchPrimary, _ = cmd.Flags().GetBool(commonParams.BranchPrimaryFlag) + } for i := 0; i < len(resp.Projects); i++ { project := resp.Projects[i] if project.Name == projectName { projectTags, _ := cmd.Flags().GetString(commonParams.ProjectTagList) projectPrivatePackage, _ := cmd.Flags().GetString(commonParams.ProjecPrivatePackageFlag) - return updateProject(&project, projectsWrapper, projectTags, projectPrivatePackage) + return updateProject(&project, projectsWrapper, projectTags, projectPrivatePackage, isBranchPrimary, branchName) } } @@ -55,7 +63,7 @@ func FindProject( } projectID, err := createProject(projectName, cmd, projectsWrapper, groupsWrapper, accessManagementWrapper, applicationWrapper, - applicationID, projectGroups, projectPrivatePackage, featureFlagsWrapper) + applicationID, projectGroups, projectPrivatePackage, featureFlagsWrapper, isBranchPrimary, branchName) if err != nil { logger.PrintIfVerbose("error in creating project!") return "", err @@ -97,12 +105,18 @@ func createProject( projectGroups string, projectPrivatePackage string, featureFlagsWrapper wrappers.FeatureFlagsWrapper, + isBranchPrimary bool, + branchName string, ) (string, error) { projectTags, _ := cmd.Flags().GetString(commonParams.ProjectTagList) applicationName, _ := cmd.Flags().GetString(commonParams.ApplicationName) var projModel = wrappers.Project{} projModel.Name = projectName projModel.ApplicationIds = applicationID + if isBranchPrimary { + logger.PrintIfVerbose(fmt.Sprintf("Setting the branch in project : %s", branchName)) + projModel.MainBranch = branchName + } var groupsMap []*wrappers.Group if projectGroups != "" { var groups []string @@ -179,14 +193,20 @@ func verifyApplicationAssociationDone(applicationName, projectID string, applica //nolint:gocyclo func updateProject(project *wrappers.ProjectResponseModel, projectsWrapper wrappers.ProjectsWrapper, - projectTags string, projectPrivatePackage string) (string, error) { + projectTags string, projectPrivatePackage string, isBranchPrimary bool, branchName string) (string, error) { var projectID string var projModel = wrappers.Project{} projectID = project.ID - projModel.MainBranch = project.MainBranch + if isBranchPrimary { + projModel.MainBranch = branchName + logger.PrintfIfVerbose(fmt.Sprintf("Updating the branch as primary: %s", branchName)) + } else { + projModel.MainBranch = project.MainBranch + } projModel.RepoURL = project.RepoURL - if projectTags == "" && projectPrivatePackage == "" { - logger.PrintIfVerbose("No tags to update. Skipping project update.") + + if projectTags == "" && projectPrivatePackage == "" && isBranchPrimary == false { + logger.PrintIfVerbose("No tags or branch to update. Skipping project update.") return projectID, nil } if projectPrivatePackage != "" { From 0423d6784d7b4531a7ff9928cc649437f78054b7 Mon Sep 17 00:00:00 2001 From: anjali-deore <200181980+cx-anjali-deore@users.noreply.github.com> Date: Thu, 3 Jul 2025 15:54:17 +0530 Subject: [PATCH 03/12] Unit and integration tests --- internal/commands/scan_test.go | 18 ++++++++++++++++++ test/integration/scan_test.go | 10 ++++++++++ 2 files changed, 28 insertions(+) diff --git a/internal/commands/scan_test.go b/internal/commands/scan_test.go index 83954a5a9..1dcca6b4d 100644 --- a/internal/commands/scan_test.go +++ b/internal/commands/scan_test.go @@ -637,6 +637,24 @@ func TestCreateScanResubmitWithScanTypes(t *testing.T) { execCmdNilAssertion(t, "scan", "create", "--project-name", "MOCK", "-s", dummyRepo, "-b", "dummy_branch", "--scan-types", "sast,iac-security,sca", "--debug", "--resubmit") } +func TestCreateScanWithPrimaryBranchFlag_Passed(t *testing.T) { + execCmdNilAssertion(t, "scan", "create", "--project-name", "MOCK", "-s", dummyRepo, "-b", "dummy_branch", "--debug", "--branch-primary") +} + +func TestCreateScanWithPrimaryBranchFlagBooleanValueTrue_Passed(t *testing.T) { + execCmdNilAssertion(t, "scan", "create", "--project-name", "MOCK", "-s", dummyRepo, "-b", "dummy_branch", "--debug", "--branch-primary=true") +} + +func TestCreateScanWithPrimaryBranchFlagBooleanValueFalse_Passed(t *testing.T) { + execCmdNilAssertion(t, "scan", "create", "--project-name", "MOCK", "-s", dummyRepo, "-b", "dummy_branch", "--debug", "--branch-primary=false") +} + +func TestCreateScanWithPrimaryBranchFlagStringValue_Should_Fail(t *testing.T) { + err := execCmdNotNilAssertion(t, "scan", "create", "--project-name", "MOCK", "-s", dummyRepo, "-b", "dummy_branch", "--debug", "--branch-primary=string") + assert.ErrorContains(t, err, "invalid argument \"string\"", err.Error()) + +} + func Test_parseThresholdSuccess(t *testing.T) { want := make(map[string]int) want["iac-security-low"] = 1 diff --git a/test/integration/scan_test.go b/test/integration/scan_test.go index e7fd8746c..dbabe7c8c 100644 --- a/test/integration/scan_test.go +++ b/test/integration/scan_test.go @@ -654,6 +654,12 @@ func TestIncrementalScan(t *testing.T) { executeScanAssertions(t, projectIDInc, scanIDInc, map[string]string{}) } +func TestBranchPrimaryFlag(t *testing.T) { + projectName := getProjectNameForScanTests() + scanID, projectID := createScanWithPrimaryBranchFlag(t, Dir, projectName, map[string]string{}) + executeScanAssertions(t, projectID, scanID, map[string]string{}) +} + // Start a scan guaranteed to take considerable time, cancel it and assert the status func TestCancelScan(t *testing.T) { scanID, _ := createScanSastNoWait(t, SlowRepo, map[string]string{}) @@ -969,6 +975,10 @@ func createScanScaWithResolver( ) } +func createScanWithPrimaryBranchFlag(t *testing.T, source string, name string, tags map[string]string) (string, string) { + return executeCreateScan(t, append(getCreateArgsWithName(source, tags, name, "sast,sca,iac-security"), "--branch-primary")) +} + func createScanIncremental(t *testing.T, source string, name string, tags map[string]string) (string, string) { return executeCreateScan(t, append(getCreateArgsWithName(source, tags, name, "sast,sca,iac-security"), "--sast-incremental")) } From c175bca2ebd971f83545afd6b6918f83e263ba7a Mon Sep 17 00:00:00 2001 From: anjali-deore <200181980+cx-anjali-deore@users.noreply.github.com> Date: Thu, 3 Jul 2025 16:02:23 +0530 Subject: [PATCH 04/12] refactored the tests --- internal/services/projects_test.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/internal/services/projects_test.go b/internal/services/projects_test.go index a817bc45b..a14106fd8 100644 --- a/internal/services/projects_test.go +++ b/internal/services/projects_test.go @@ -166,7 +166,7 @@ func Test_createProject(t *testing.T) { ttt.args.applicationID, ttt.args.projectGroups, ttt.args.projectPrivatePackage, - ttt.args.featureFlagsWrapper) + ttt.args.featureFlagsWrapper, false, "") if (err != nil) != ttt.wantErr { t.Errorf("createProject() error = %v, wantErr %v", err, ttt.wantErr) return @@ -240,7 +240,7 @@ func Test_updateProject(t *testing.T) { ttt := tt t.Run(tt.name, func(t *testing.T) { got, err := updateProject(ttt.args.project, ttt.args.projectsWrapper, - ttt.args.projectTags, ttt.args.projectPrivatePackage) + ttt.args.projectTags, ttt.args.projectPrivatePackage, false, "") if (err != nil) != ttt.wantErr { t.Errorf("updateProject() error = %v, wantErr %v", err, ttt.wantErr) return From 92b7991ade1c2bf9191bbf0414c2943aa81fa2ad Mon Sep 17 00:00:00 2001 From: anjali-deore <200181980+cx-anjali-deore@users.noreply.github.com> Date: Thu, 3 Jul 2025 17:06:43 +0530 Subject: [PATCH 05/12] removed unnecessary space --- internal/commands/scan_test.go | 1 - internal/services/projects.go | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/internal/commands/scan_test.go b/internal/commands/scan_test.go index 1dcca6b4d..3c5c43e20 100644 --- a/internal/commands/scan_test.go +++ b/internal/commands/scan_test.go @@ -654,7 +654,6 @@ func TestCreateScanWithPrimaryBranchFlagStringValue_Should_Fail(t *testing.T) { assert.ErrorContains(t, err, "invalid argument \"string\"", err.Error()) } - func Test_parseThresholdSuccess(t *testing.T) { want := make(map[string]int) want["iac-security-low"] = 1 diff --git a/internal/services/projects.go b/internal/services/projects.go index 128b4e720..aa511f4ff 100644 --- a/internal/services/projects.go +++ b/internal/services/projects.go @@ -199,7 +199,7 @@ func updateProject(project *wrappers.ProjectResponseModel, projectID = project.ID if isBranchPrimary { projModel.MainBranch = branchName - logger.PrintfIfVerbose(fmt.Sprintf("Updating the branch as primary: %s", branchName)) + logger.PrintfIfVerbose("Updating the branch as primary: %s", branchName) } else { projModel.MainBranch = project.MainBranch } From af6d783c502172c44ab2f27039c1507ebac8e0ff Mon Sep 17 00:00:00 2001 From: anjali-deore <200181980+cx-anjali-deore@users.noreply.github.com> Date: Thu, 3 Jul 2025 17:15:24 +0530 Subject: [PATCH 06/12] fixed goimports --- internal/services/projects.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/services/projects.go b/internal/services/projects.go index aa511f4ff..521fcd08f 100644 --- a/internal/services/projects.go +++ b/internal/services/projects.go @@ -2,7 +2,6 @@ package services import ( "fmt" - "github.com/spf13/viper" "slices" "strconv" "strings" @@ -14,6 +13,7 @@ import ( "github.com/checkmarx/ast-cli/internal/wrappers" "github.com/pkg/errors" "github.com/spf13/cobra" + "github.com/spf13/viper" ) const ( From 87af13ef9f8188d4fe4577c8c7d9bafc6627dda1 Mon Sep 17 00:00:00 2001 From: anjali-deore <200181980+cx-anjali-deore@users.noreply.github.com> Date: Thu, 3 Jul 2025 17:16:10 +0530 Subject: [PATCH 07/12] fixed space --- internal/commands/scan_test.go | 1 - 1 file changed, 1 deletion(-) diff --git a/internal/commands/scan_test.go b/internal/commands/scan_test.go index 3c5c43e20..be9480615 100644 --- a/internal/commands/scan_test.go +++ b/internal/commands/scan_test.go @@ -662,7 +662,6 @@ func Test_parseThresholdSuccess(t *testing.T) { t.Errorf("parseThreshold() = %v, want %v", got, want) } } - func Test_parseThresholdsSuccess(t *testing.T) { want := make(map[string]int) want["sast-high"] = 1 From 3ddcd24190a1a86eb836db910c9cd40343091f5c Mon Sep 17 00:00:00 2001 From: anjali-deore <200181980+cx-anjali-deore@users.noreply.github.com> Date: Thu, 3 Jul 2025 20:05:06 +0530 Subject: [PATCH 08/12] fixed space again --- internal/commands/scan_test.go | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/internal/commands/scan_test.go b/internal/commands/scan_test.go index be9480615..444392938 100644 --- a/internal/commands/scan_test.go +++ b/internal/commands/scan_test.go @@ -652,8 +652,8 @@ func TestCreateScanWithPrimaryBranchFlagBooleanValueFalse_Passed(t *testing.T) { func TestCreateScanWithPrimaryBranchFlagStringValue_Should_Fail(t *testing.T) { err := execCmdNotNilAssertion(t, "scan", "create", "--project-name", "MOCK", "-s", dummyRepo, "-b", "dummy_branch", "--debug", "--branch-primary=string") assert.ErrorContains(t, err, "invalid argument \"string\"", err.Error()) - } + func Test_parseThresholdSuccess(t *testing.T) { want := make(map[string]int) want["iac-security-low"] = 1 @@ -672,7 +672,6 @@ func Test_parseThresholdsSuccess(t *testing.T) { t.Errorf("parseThreshold() = %v, want %v", got, want) } } - func Test_parseThresholdParseError(t *testing.T) { want := make(map[string]int) threshold := " KICS - LoW=error" @@ -680,7 +679,6 @@ func Test_parseThresholdParseError(t *testing.T) { t.Errorf("parseThreshold() = %v, want %v", got, want) } } - func TestCreateScanProjectTags(t *testing.T) { execCmdNilAssertion(t, scanCommand, "create", "--project-name", "MOCK", "-s", dummyRepo, "-b", "dummy_branch", "--project-tags", "test", "--debug") From a2c8d7bfcbe527068e6d458ed92d272164df4851 Mon Sep 17 00:00:00 2001 From: anjali-deore <200181980+cx-anjali-deore@users.noreply.github.com> Date: Fri, 4 Jul 2025 18:08:26 +0530 Subject: [PATCH 09/12] Changed the primary flag to boolean --- internal/commands/scan.go | 10 ++++++++++ internal/commands/scan_test.go | 16 ++++++++++++++-- internal/services/projects.go | 5 +---- 3 files changed, 25 insertions(+), 6 deletions(-) diff --git a/internal/commands/scan.go b/internal/commands/scan.go index 6a68900dd..cfdbf79ac 100644 --- a/internal/commands/scan.go +++ b/internal/commands/scan.go @@ -118,6 +118,7 @@ const ( ScsRepoWarningMsg = "SCS scan warning: Unable to start Scorecard scan due to missing required flags, please include in the ast-cli arguments: " + "--scs-repo-url your_repo_url --scs-repo-token your_repo_token" ScsScorecardUnsupportedHostWarningMsg = "SCS scan warning: Unable to run Scorecard scanner due to unsupported repo host. Currently, Scorecard can only run on GitHub Cloud repos." + BranchPrimaryPrefix = "--branch-primary=" ) var ( @@ -3012,6 +3013,15 @@ func validateCreateScanFlags(cmd *cobra.Command) error { return fmt.Errorf("Invalid value for --%s flag. Must be a valid UUID.", commonParams.IacsPresetIDFlag) } } + // check if flag was passed as arg + isBranchChanged := cmd.Flags().Changed(commonParams.BranchPrimaryFlag) + if isBranchChanged { + for _, a := range os.Args[1:] { + if strings.HasPrefix(a, BranchPrimaryPrefix) { + return fmt.Errorf("invalid value for --branch-primary flag. This flag must be sent with no value") + } + } + } return nil } diff --git a/internal/commands/scan_test.go b/internal/commands/scan_test.go index 444392938..3f46cb9bc 100644 --- a/internal/commands/scan_test.go +++ b/internal/commands/scan_test.go @@ -642,11 +642,23 @@ func TestCreateScanWithPrimaryBranchFlag_Passed(t *testing.T) { } func TestCreateScanWithPrimaryBranchFlagBooleanValueTrue_Passed(t *testing.T) { - execCmdNilAssertion(t, "scan", "create", "--project-name", "MOCK", "-s", dummyRepo, "-b", "dummy_branch", "--debug", "--branch-primary=true") + original := os.Args + defer func() { os.Args = original }() + os.Args = []string{ + "scan", "create", "--project-name", "MOCK", "-s", dummyRepo, "-b", "dummy_branch", "--debug", "--branch-primary=true", + } + err := execCmdNotNilAssertion(t, "scan", "create", "--project-name", "MOCK", "-s", dummyRepo, "-b", "dummy_branch", "--debug", "--branch-primary=true") + assert.ErrorContains(t, err, "invalid value for --branch-primary flag", err.Error()) } func TestCreateScanWithPrimaryBranchFlagBooleanValueFalse_Passed(t *testing.T) { - execCmdNilAssertion(t, "scan", "create", "--project-name", "MOCK", "-s", dummyRepo, "-b", "dummy_branch", "--debug", "--branch-primary=false") + original := os.Args + defer func() { os.Args = original }() + os.Args = []string{ + "scan", "create", "--project-name", "MOCK", "-s", dummyRepo, "-b", "dummy_branch", "--debug", "--branch-primary=false", + } + err := execCmdNotNilAssertion(t, "scan", "create", "--project-name", "MOCK", "-s", dummyRepo, "-b", "dummy_branch", "--debug", "--branch-primary=false") + assert.ErrorContains(t, err, "invalid value for --branch-primary flag", err.Error()) } func TestCreateScanWithPrimaryBranchFlagStringValue_Should_Fail(t *testing.T) { diff --git a/internal/services/projects.go b/internal/services/projects.go index 521fcd08f..32a881ffd 100644 --- a/internal/services/projects.go +++ b/internal/services/projects.go @@ -40,10 +40,7 @@ func FindProject( return "", err } branchName := strings.TrimSpace(viper.GetString(commonParams.BranchKey)) - branchPrimaryChanged := cmd.Flags().Changed(commonParams.BranchPrimaryFlag) - if branchPrimaryChanged { - isBranchPrimary, _ = cmd.Flags().GetBool(commonParams.BranchPrimaryFlag) - } + isBranchPrimary, _ = cmd.Flags().GetBool(commonParams.BranchPrimaryFlag) for i := 0; i < len(resp.Projects); i++ { project := resp.Projects[i] if project.Name == projectName { From 70d13fbf07b6645a2a0b8c3022972f917d95973e Mon Sep 17 00:00:00 2001 From: anjali-deore <200181980+cx-anjali-deore@users.noreply.github.com> Date: Fri, 4 Jul 2025 19:03:52 +0530 Subject: [PATCH 10/12] Text msg updated --- internal/commands/scan.go | 2 +- internal/commands/scan_test.go | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/internal/commands/scan.go b/internal/commands/scan.go index cfdbf79ac..b04592168 100644 --- a/internal/commands/scan.go +++ b/internal/commands/scan.go @@ -726,7 +726,7 @@ func scanCreateSubCommand( createScanCmd.PersistentFlags().Bool( commonParams.BranchPrimaryFlag, false, - "Sets the given branch as primary for the project. Available options: true,false") + "Sets the given branch as primary for the project") createScanCmd.PersistentFlags().Bool( commonParams.SastRecommendedExclusionsFlags, diff --git a/internal/commands/scan_test.go b/internal/commands/scan_test.go index 3f46cb9bc..84ece546f 100644 --- a/internal/commands/scan_test.go +++ b/internal/commands/scan_test.go @@ -641,7 +641,7 @@ func TestCreateScanWithPrimaryBranchFlag_Passed(t *testing.T) { execCmdNilAssertion(t, "scan", "create", "--project-name", "MOCK", "-s", dummyRepo, "-b", "dummy_branch", "--debug", "--branch-primary") } -func TestCreateScanWithPrimaryBranchFlagBooleanValueTrue_Passed(t *testing.T) { +func TestCreateScanWithPrimaryBranchFlagBooleanValueTrue_Failed(t *testing.T) { original := os.Args defer func() { os.Args = original }() os.Args = []string{ @@ -651,7 +651,7 @@ func TestCreateScanWithPrimaryBranchFlagBooleanValueTrue_Passed(t *testing.T) { assert.ErrorContains(t, err, "invalid value for --branch-primary flag", err.Error()) } -func TestCreateScanWithPrimaryBranchFlagBooleanValueFalse_Passed(t *testing.T) { +func TestCreateScanWithPrimaryBranchFlagBooleanValueFalse_Failed(t *testing.T) { original := os.Args defer func() { os.Args = original }() os.Args = []string{ From 79c84085b51b673a0dfba7a710cfa11fa30f2067 Mon Sep 17 00:00:00 2001 From: anjali-deore <200181980+cx-anjali-deore@users.noreply.github.com> Date: Mon, 7 Jul 2025 15:55:42 +0530 Subject: [PATCH 11/12] updated the help text --- internal/commands/scan.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/internal/commands/scan.go b/internal/commands/scan.go index b04592168..b569a1560 100644 --- a/internal/commands/scan.go +++ b/internal/commands/scan.go @@ -726,7 +726,7 @@ func scanCreateSubCommand( createScanCmd.PersistentFlags().Bool( commonParams.BranchPrimaryFlag, false, - "Sets the given branch as primary for the project") + "This flag sets the branch specified in --branch as the PRIMARY branch for the project") createScanCmd.PersistentFlags().Bool( commonParams.SastRecommendedExclusionsFlags, @@ -3018,7 +3018,7 @@ func validateCreateScanFlags(cmd *cobra.Command) error { if isBranchChanged { for _, a := range os.Args[1:] { if strings.HasPrefix(a, BranchPrimaryPrefix) { - return fmt.Errorf("invalid value for --branch-primary flag. This flag must be sent with no value") + return fmt.Errorf("invalid value for --branch-primary flag. This flag is sent without any values") } } } From 07e9420fadad41f8f82559613ad24e16fa5f7fe3 Mon Sep 17 00:00:00 2001 From: anjali-deore <200181980+cx-anjali-deore@users.noreply.github.com> Date: Mon, 7 Jul 2025 22:26:30 +0530 Subject: [PATCH 12/12] updated the string in tests --- internal/commands/scan_test.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/internal/commands/scan_test.go b/internal/commands/scan_test.go index 84ece546f..a42838ec3 100644 --- a/internal/commands/scan_test.go +++ b/internal/commands/scan_test.go @@ -63,7 +63,7 @@ const ( SCSScoreCardError = "SCS scan failed to start: Scorecard scan is missing required flags, please include in the ast-cli arguments: " + "--scs-repo-url your_repo_url --scs-repo-token your_repo_token" outputFileName = "test_output.log" - noUpdatesForExistingProject = "No tags to update. Skipping project update." + noUpdatesForExistingProject = "No tags or branch to update. Skipping project update." ScaResolverZipNotSupportedErr = "Scanning Zip files is not supported by ScaResolver.Please use non-zip source" ) @@ -400,6 +400,7 @@ func TestCreateScanBranches(t *testing.T) { // Bind cx_branch environment variable _ = viper.BindEnv("cx_branch", "CX_BRANCH") viper.SetDefault("cx_branch", "branch_from_environment_variable") + assert.Equal(t, viper.GetString("cx_branch"), "branch_from_environment_variable") // Test branch from environment variable. Since the cx_branch is bind the scan must run successfully without a branch flag defined execCmdNilAssertion(t, "scan", "create", "--project-name", "MOCK", "-s", dummyRepo)