Skip to content

Commit cc6d11c

Browse files
Fix for Scan Create command with Source as zip with ScaResolver issue (AST-73409) (#1190)
* Added check for zip for scaresolver issue
1 parent 32c53f4 commit cc6d11c

File tree

3 files changed

+41
-2
lines changed

3 files changed

+41
-2
lines changed

internal/commands/scan.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1593,12 +1593,17 @@ func getUploadURLFromSource(cmd *cobra.Command, uploadsWrapper wrappers.UploadsW
15931593
sourceDirFilter, _ := cmd.Flags().GetString(commonParams.SourceDirFilterFlag)
15941594
userIncludeFilter, _ := cmd.Flags().GetString(commonParams.IncludeFilterFlag)
15951595
projectName, _ := cmd.Flags().GetString(commonParams.ProjectName)
1596+
scaResolverPath, _ := cmd.Flags().GetString(commonParams.ScaResolverFlag)
15961597
containerEngineCLIEnabled, _ := wrappers.GetSpecificFeatureFlag(featureFlagsWrapper, wrappers.ContainerEngineCLIEnabled)
15971598

15981599
containerScanTriggered := strings.Contains(actualScanTypes, commonParams.ContainersType) && containerEngineCLIEnabled.Status
15991600
scaResolverParams, scaResolver := getScaResolverFlags(cmd)
16001601

16011602
zipFilePath, directoryPath, err := definePathForZipFileOrDirectory(cmd)
1603+
1604+
if zipFilePath != "" && scaResolverPath != "" {
1605+
return "", "", errors.New("Scanning Zip files is not supported by ScaResolver.Please use non-zip source")
1606+
}
16021607
if err != nil {
16031608
return "", "", errors.Wrapf(err, "%s: Input in bad format", failedCreating)
16041609
}

internal/commands/scan_test.go

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,8 +62,9 @@ const (
6262
InvalidEngineMessage = "Please verify if engine is installed"
6363
SCSScoreCardError = "SCS scan failed to start: Scorecard scan is missing required flags, please include in the ast-cli arguments: " +
6464
"--scs-repo-url your_repo_url --scs-repo-token your_repo_token"
65-
outputFileName = "test_output.log"
66-
noUpdatesForExistingProject = "No tags to update. Skipping project update."
65+
outputFileName = "test_output.log"
66+
noUpdatesForExistingProject = "No tags to update. Skipping project update."
67+
ScaResolverZipNotSupportedErr = "Scanning Zip files is not supported by ScaResolver.Please use non-zip source"
6768
)
6869

6970
func TestScanHelp(t *testing.T) {
@@ -2218,3 +2219,21 @@ func TestIsContainersEngineEnabled_FlagRetrievalFails(t *testing.T) {
22182219

22192220
assert.Assert(t, !result, "expected result to be false")
22202221
}
2222+
2223+
func TestCreateScanWith_ScaResolver_Source_as_Zip(t *testing.T) {
2224+
clearFlags()
2225+
baseArgs := []string{
2226+
"scan",
2227+
"create",
2228+
"--project-name",
2229+
"MOCK",
2230+
"-s",
2231+
"data/sources.zip",
2232+
"-b",
2233+
"dummy_branch",
2234+
"--sca-resolver",
2235+
"ScaResolver.exe",
2236+
}
2237+
err := execCmdNotNilAssertion(t, baseArgs...)
2238+
assert.Assert(t, strings.Contains(err.Error(), ScaResolverZipNotSupportedErr), err.Error())
2239+
}

test/integration/scan_test.go

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2351,3 +2351,18 @@ func deletePreset(engine, presetID string) error {
23512351

23522352
return nil
23532353
}
2354+
2355+
func TestCreateScan_WithScaResolver_ZipSource_Fail(t *testing.T) {
2356+
configuration.LoadConfiguration()
2357+
args := []string{
2358+
"scan", "create",
2359+
flag(params.ProjectName), getProjectNameForScanTests(),
2360+
flag(params.SourcesFlag), "data/insecure.zip",
2361+
flag(params.ScanTypes), params.ScaType,
2362+
flag(params.BranchFlag), "dummy_branch",
2363+
flag(params.ScaResolverFlag), "ScaResolver.exe",
2364+
}
2365+
2366+
err, _ := executeCommand(t, args...)
2367+
assert.Error(t, err, "Scanning Zip files is not supported by ScaResolver.Please use non-zip source")
2368+
}

0 commit comments

Comments
 (0)