Skip to content

Commit 9904fe4

Browse files
Merge branch 'main' into bug/AST-101835
2 parents 5dc6d40 + ac076c5 commit 9904fe4

File tree

9 files changed

+63
-43
lines changed

9 files changed

+63
-43
lines changed

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,7 @@ require (
140140
github.com/go-openapi/jsonreference v0.21.0 // indirect
141141
github.com/go-openapi/swag v0.23.1 // indirect
142142
github.com/go-restruct/restruct v1.2.0-alpha // indirect
143-
github.com/go-viper/mapstructure/v2 v2.2.1 // indirect
143+
github.com/go-viper/mapstructure/v2 v2.3.0 // indirect
144144
github.com/gobwas/glob v0.2.3 // indirect
145145
github.com/gogo/protobuf v1.3.2 // indirect
146146
github.com/golang/groupcache v0.0.0-20241129210726-2c02b8208cf8 // indirect

go.sum

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -421,8 +421,8 @@ github.com/go-task/slim-sprig/v3 v3.0.0/go.mod h1:W848ghGpv3Qj3dhTPRyJypKRiqCdHZ
421421
github.com/go-test/deep v1.0.4/go.mod h1:wGDj63lr65AM2AQyKZd/NYHGb0R+1RLqB8NKt3aSFNA=
422422
github.com/go-test/deep v1.1.1 h1:0r/53hagsehfO4bzD2Pgr/+RgHqhmf+k1Bpse2cTu1U=
423423
github.com/go-test/deep v1.1.1/go.mod h1:5C2ZWiW0ErCdrYzpqxLbTX7MG14M9iiw8DgHncVwcsE=
424-
github.com/go-viper/mapstructure/v2 v2.2.1 h1:ZAaOCxANMuZx5RCeg0mBdEZk7DZasvvZIxtHqx8aGss=
425-
github.com/go-viper/mapstructure/v2 v2.2.1/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM=
424+
github.com/go-viper/mapstructure/v2 v2.3.0 h1:27XbWsHIqhbdR5TIC911OfYvgSaW93HM+dX7970Q7jk=
425+
github.com/go-viper/mapstructure/v2 v2.3.0/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM=
426426
github.com/gobwas/glob v0.2.3 h1:A4xDbljILXROh+kObIiy5kIaPYD8e96x1tgBhUI5J+Y=
427427
github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8=
428428
github.com/gobwas/httphead v0.1.0/go.mod h1:O/RXo79gxV8G+RqlR/otEwx4Q36zl9rqC5u12GKvMCM=

internal/commands/data/manifests/requirements.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,11 +59,11 @@ Django>=3.0,<4.0
5959

6060
# Less than or equal
6161

62-
requests<=2.25.1
62+
requests<=2.32.4
6363

6464
# Compatible release (PEP 440)
6565

66-
urllib3\~=1.26.0
66+
urllib3\~=2.5.0
6767

6868
# Not equal
6969

internal/commands/result.go

Lines changed: 2 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1787,13 +1787,7 @@ func exportJSONResults(targetFile string, results *wrappers.ScanResultsCollectio
17871787
func exportJSONReportResults(jsonWrapper wrappers.ResultsJSONWrapper, summary *wrappers.ResultSummary, summaryRpt string, featureFlagsWrapper wrappers.FeatureFlagsWrapper) error {
17881788
jsonReportsPayload := &wrappers.JSONReportsPayload{}
17891789
pollingResp := &wrappers.JSONPollingResponse{}
1790-
flagResponse, _ := wrappers.GetSpecificFeatureFlag(featureFlagsWrapper, wrappers.NewScanReportEnabled)
1791-
newScanReportEnabled := flagResponse.Status
1792-
if newScanReportEnabled {
1793-
jsonReportsPayload.ReportName = reportNameImprovedScanReport
1794-
} else {
1795-
jsonReportsPayload.ReportName = reportNameScanReport
1796-
}
1790+
jsonReportsPayload.ReportName = reportNameImprovedScanReport
17971791

17981792
jsonOptionsSections, jsonOptionsEngines := parseJSONOptions(summary.EnginesEnabled, jsonReportsPayload.ReportName)
17991793

@@ -1891,19 +1885,11 @@ func exportPdfResults(pdfWrapper wrappers.ResultsPdfWrapper, summary *wrappers.R
18911885
pdfOptions string, featureFlagsWrapper wrappers.FeatureFlagsWrapper) error {
18921886
pdfReportsPayload := &wrappers.PdfReportsPayload{}
18931887
pollingResp := &wrappers.PdfPollingResponse{}
1894-
flagResponse, _ := wrappers.GetSpecificFeatureFlag(featureFlagsWrapper, wrappers.NewScanReportEnabled)
1895-
newScanReportEnabled := flagResponse.Status
1896-
if newScanReportEnabled {
1897-
pdfReportsPayload.ReportName = reportNameImprovedScanReport
1898-
} else {
1899-
pdfReportsPayload.ReportName = reportNameScanReport
1900-
}
1901-
1888+
pdfReportsPayload.ReportName = reportNameImprovedScanReport
19021889
pdfOptionsSections, pdfOptionsEngines, err := parsePDFOptions(pdfOptions, summary.EnginesEnabled, pdfReportsPayload.ReportName)
19031890
if err != nil {
19041891
return err
19051892
}
1906-
19071893
pdfReportsPayload.ReportType = CliType
19081894
pdfReportsPayload.FileFormat = printer.FormatPDF
19091895
pdfReportsPayload.Data.ScanID = summary.ScanID

internal/commands/result_test.go

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -643,7 +643,6 @@ func TestRunGetBFLByScanIdAndQueryIdWithFormatList(t *testing.T) {
643643

644644
func TestRunGetResultsGeneratingPdfReportWithInvalidEmail(t *testing.T) {
645645
clearFlags()
646-
mock.Flag = wrappers.FeatureFlagResponseModel{Name: wrappers.NewScanReportEnabled, Status: false}
647646
err := execCmdNotNilAssertion(t,
648647
"results", "show",
649648
"--report-format", "pdf",
@@ -654,7 +653,6 @@ func TestRunGetResultsGeneratingPdfReportWithInvalidEmail(t *testing.T) {
654653

655654
func TestRunGetResultsGeneratingPdfReportWithInvalidOptions(t *testing.T) {
656655
clearFlags()
657-
mock.Flag = wrappers.FeatureFlagResponseModel{Name: wrappers.NewScanReportEnabled, Status: false}
658656
err := execCmdNotNilAssertion(t,
659657
"results", "show",
660658
"--report-format", "pdf",
@@ -665,7 +663,6 @@ func TestRunGetResultsGeneratingPdfReportWithInvalidOptions(t *testing.T) {
665663

666664
func TestRunGetResultsGeneratingPdfReportWithInvalidImprovedOptions(t *testing.T) {
667665
clearFlags()
668-
mock.Flag = wrappers.FeatureFlagResponseModel{Name: wrappers.NewScanReportEnabled, Status: false}
669666
err := execCmdNotNilAssertion(t,
670667
"results", "show",
671668
"--report-format", "pdf",
@@ -676,7 +673,6 @@ func TestRunGetResultsGeneratingPdfReportWithInvalidImprovedOptions(t *testing.T
676673

677674
func TestRunGetResultsGeneratingPdfReportWithEmailAndOptions(t *testing.T) {
678675
clearFlags()
679-
mock.Flag = wrappers.FeatureFlagResponseModel{Name: wrappers.NewScanReportEnabled, Status: false}
680676
cmd := createASTTestCommand()
681677
err := executeTestCommand(cmd,
682678
"results", "show",
@@ -689,7 +685,6 @@ func TestRunGetResultsGeneratingPdfReportWithEmailAndOptions(t *testing.T) {
689685

690686
func TestRunGetResultsGeneratingPdfReportWithOptionsImprovedMappingHappens(t *testing.T) {
691687
clearFlags()
692-
mock.Flag = wrappers.FeatureFlagResponseModel{Name: wrappers.NewScanReportEnabled, Status: true}
693688
cmd := createASTTestCommand()
694689
err := executeTestCommand(cmd,
695690
"results", "show",
@@ -702,7 +697,6 @@ func TestRunGetResultsGeneratingPdfReportWithOptionsImprovedMappingHappens(t *te
702697

703698
func TestRunGetResultsGeneratingPdfReportWithInvalidOptionsImproved(t *testing.T) {
704699
clearFlags()
705-
mock.Flag = wrappers.FeatureFlagResponseModel{Name: wrappers.NewScanReportEnabled, Status: true}
706700
cmd := createASTTestCommand()
707701
err := executeTestCommand(cmd,
708702
"results", "show",
@@ -715,7 +709,6 @@ func TestRunGetResultsGeneratingPdfReportWithInvalidOptionsImproved(t *testing.T
715709

716710
func TestRunGetResultsGeneratingPdfReportWithOptions(t *testing.T) {
717711
clearFlags()
718-
mock.Flag = wrappers.FeatureFlagResponseModel{Name: wrappers.NewScanReportEnabled, Status: false}
719712
cmd := createASTTestCommand()
720713
err := executeTestCommand(cmd,
721714
"results", "show",
@@ -734,7 +727,6 @@ func TestRunGetResultsGeneratingPdfReportWithOptions(t *testing.T) {
734727

735728
func TestRunGetResultsGeneratingJsonV2Report(t *testing.T) {
736729
clearFlags()
737-
mock.Flag = wrappers.FeatureFlagResponseModel{Name: wrappers.NewScanReportEnabled, Status: false}
738730
cmd := createASTTestCommand()
739731
err := executeTestCommand(cmd,
740732
"results", "show",

internal/commands/scan.go

Lines changed: 35 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ import (
1919
"strconv"
2020
"strings"
2121
"time"
22+
"unicode"
2223

2324
"github.com/checkmarx/ast-cli/internal/commands/asca"
2425
"github.com/checkmarx/ast-cli/internal/commands/scarealtime"
@@ -1551,9 +1552,9 @@ func runScaResolver(sourceDir, scaResolver, scaResolverParams, projectName strin
15511552
scaResolverResultsFile,
15521553
}
15531554
if scaResolverParams != "" {
1554-
args = append(args, scaResolverParams)
1555+
parsedscaResolverParams := parseArgs(scaResolverParams)
1556+
args = append(args, parsedscaResolverParams...)
15551557
}
1556-
15571558
log.Println(fmt.Sprintf("Using SCA resolver: %s %v", scaResolver, args))
15581559
out, err := exec.Command(scaResolver, args...).Output()
15591560
logger.PrintIfVerbose(string(out))
@@ -1727,6 +1728,7 @@ func getScaResolverFlags(cmd *cobra.Command) (scaResolverParams, scaResolver str
17271728
scaResolver = ""
17281729
scaResolverParams = ""
17291730
}
1731+
logger.PrintfIfVerbose("Sca-Resolver params:: %v", scaResolverParams)
17301732
return scaResolverParams, scaResolver
17311733
}
17321734

@@ -2973,3 +2975,34 @@ func validateBooleanString(value string) error {
29732975
}
29742976
return nil
29752977
}
2978+
2979+
func parseArgs(input string) []string {
2980+
var args []string
2981+
var current strings.Builder
2982+
var quote rune
2983+
inQuotes := false
2984+
2985+
for i, r := range input {
2986+
switch {
2987+
case (r == '\'' || r == '"') && !inQuotes:
2988+
inQuotes = true
2989+
quote = r
2990+
case r == quote && inQuotes:
2991+
inQuotes = false
2992+
case unicode.IsSpace(r) && !inQuotes:
2993+
if current.Len() > 0 {
2994+
args = append(args, current.String())
2995+
current.Reset()
2996+
}
2997+
default:
2998+
current.WriteRune(r)
2999+
}
3000+
3001+
// Append last token if input ends
3002+
if i == len(input)-1 && current.Len() > 0 {
3003+
args = append(args, current.String())
3004+
}
3005+
}
3006+
3007+
return args
3008+
}

internal/commands/scan_test.go

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2237,3 +2237,22 @@ func TestCreateScanWith_ScaResolver_Source_as_Zip(t *testing.T) {
22372237
err := execCmdNotNilAssertion(t, baseArgs...)
22382238
assert.Assert(t, strings.Contains(err.Error(), ScaResolverZipNotSupportedErr), err.Error())
22392239
}
2240+
2241+
func Test_parseArgs(t *testing.T) {
2242+
tests := []struct {
2243+
inputString string
2244+
lenOfArgs int
2245+
}{
2246+
{"--log-level Debug --break-on-manifest-failure", 3},
2247+
{`test test1`, 2},
2248+
{"--gradle-parameters='-Prepository.proxy.url=123 -Prepository.proxy.username=123 -Prepository.proxy.password=123' --log-level Debug", 3},
2249+
}
2250+
2251+
for _, test := range tests {
2252+
fmt.Println("test ::", test)
2253+
result := parseArgs(test.inputString)
2254+
if len(result) != test.lenOfArgs {
2255+
t.Errorf(" test case failed for params %v", test)
2256+
}
2257+
}
2258+
}

internal/wrappers/feature-flags.go

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ const MinioEnabled = "MINIO_ENABLED"
1414
const SastCustomStateEnabled = "SAST_CUSTOM_STATES_ENABLED"
1515
const ContainerEngineCLIEnabled = "CONTAINER_ENGINE_CLI_ENABLED"
1616
const SCSEngineCLIEnabled = "NEW_2MS_SCORECARD_RESULTS_CLI_ENABLED"
17-
const NewScanReportEnabled = "NEW_SAST_SCAN_REPORT_ENABLED"
1817
const RiskManagementEnabled = "RISK_MANAGEMENT_IDES_PROJECT_RESULTS_SCORES_API_ENABLED"
1918
const OssRealtimeEnabled = "OSS_REALTIME_ENABLED"
2019
const maxRetries = 3
@@ -56,15 +55,6 @@ var FeatureFlagsBaseMap = []CommandFlags{
5655
},
5756
},
5857
},
59-
{
60-
CommandName: "cx results show",
61-
FeatureFlags: []FlagBase{
62-
{
63-
Name: NewScanReportEnabled,
64-
Default: false,
65-
},
66-
},
67-
},
6858
{
6959
CommandName: "cx triage update",
7060
FeatureFlags: []FlagBase{

test/integration/data/manifests/requirements.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,11 +59,11 @@ Django>=3.0,<4.0
5959

6060
# Less than or equal
6161

62-
requests<=2.25.1
62+
requests<=2.32.4
6363

6464
# Compatible release (PEP 440)
6565

66-
urllib3\~=1.26.0
66+
urllib3\~=2.5.0
6767

6868
# Not equal
6969

0 commit comments

Comments
 (0)