Skip to content

Commit b132850

Browse files
Merge branch 'main' into feature/AST-110820
2 parents db61f76 + f3a5174 commit b132850

File tree

17 files changed

+194
-31
lines changed

17 files changed

+194
-31
lines changed

internal/commands/result.go

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1158,7 +1158,7 @@ func filterResultsByType(results *wrappers.ScanResultsCollection, excludedTypes
11581158
func filterScsResultsByAgent(results *wrappers.ScanResultsCollection, agent string) *wrappers.ScanResultsCollection {
11591159
unsupportedTypesByAgent := map[string][]string{
11601160
commonParams.VSCodeAgent: {commonParams.SCSScorecardType},
1161-
commonParams.JetbrainsAgent: {commonParams.SCSScorecardType, commonParams.SCSSecretDetectionType},
1161+
commonParams.JetbrainsAgent: {commonParams.SCSScorecardType},
11621162
commonParams.EclipseAgent: {commonParams.SCSScorecardType, commonParams.SCSSecretDetectionType},
11631163
commonParams.VisualStudioAgent: {commonParams.SCSScorecardType},
11641164
}
@@ -1211,7 +1211,7 @@ func CreateScanReport(
12111211
return nil, err
12121212
}
12131213
if !scanPending {
1214-
results, err = ReadResults(resultsWrapper, exportWrapper, scan, resultsParams, agent)
1214+
results, err = ReadResults(resultsWrapper, exportWrapper, scan, resultsParams, agent, featureFlagsWrapper)
12151215
if err != nil {
12161216
return nil, err
12171217
}
@@ -1498,8 +1498,7 @@ func ReadResults(
14981498
exportWrapper wrappers.ExportWrapper,
14991499
scan *wrappers.ScanResponseModel,
15001500
resultsParams map[string]string,
1501-
agent string,
1502-
) (results *wrappers.ScanResultsCollection, err error) {
1501+
agent string, featureflagsWrappers wrappers.FeatureFlagsWrapper) (results *wrappers.ScanResultsCollection, err error) {
15031502
var resultsModel *wrappers.ScanResultsCollection
15041503
var errorModel *wrappers.WebError
15051504

@@ -1522,7 +1521,7 @@ func ReadResults(
15221521
// Compute SAST results redundancy
15231522
resultsModel = ComputeRedundantSastResults(resultsModel)
15241523
}
1525-
resultsModel, err = enrichScaResults(exportWrapper, scan, resultsModel, scaHideDevAndTestDep)
1524+
resultsModel, err = enrichScaResults(exportWrapper, scan, resultsModel, scaHideDevAndTestDep, featureflagsWrappers)
15261525
if err != nil {
15271526
return nil, err
15281527
}
@@ -1545,10 +1544,9 @@ func enrichScaResults(
15451544
exportWrapper wrappers.ExportWrapper,
15461545
scan *wrappers.ScanResponseModel,
15471546
resultsModel *wrappers.ScanResultsCollection,
1548-
scaHideDevAndTestDep bool,
1549-
) (*wrappers.ScanResultsCollection, error) {
1547+
scaHideDevAndTestDep bool, featureflagWrapper wrappers.FeatureFlagsWrapper) (*wrappers.ScanResultsCollection, error) {
15501548
if slices.Contains(scan.Engines, commonParams.ScaType) {
1551-
scaExportDetails, err := services.GetExportPackage(exportWrapper, scan.ID, scaHideDevAndTestDep)
1549+
scaExportDetails, err := services.GetExportPackage(exportWrapper, scan.ID, scaHideDevAndTestDep, featureflagWrapper)
15521550
if err != nil {
15531551
return nil, errors.Wrapf(err, "%s", failedListingResults)
15541552
}

internal/commands/result_test.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -197,7 +197,7 @@ func TestRunScsResultsShow_VSCode_AgentShouldNotShowScorecardResults(t *testing.
197197
mock.SetScsMockVarsToDefault()
198198
}
199199

200-
func TestRunScsResultsShow_Other_AgentsShouldNotShowScsResults(t *testing.T) {
200+
func TestRunScsResultsShow_Jetbrains_AgentShouldShowScsResults(t *testing.T) {
201201
clearFlags()
202202
mock.HasScs = true
203203
mock.ScsScanPartial = false
@@ -206,8 +206,8 @@ func TestRunScsResultsShow_Other_AgentsShouldNotShowScsResults(t *testing.T) {
206206

207207
execCmdNilAssertion(t, "results", "show", "--scan-id", "SCS_ONLY", "--report-format", "json", "--agent", params.JetbrainsAgent)
208208
assertTypePresentJSON(t, params.SCSScorecardType, 0)
209-
assertTypePresentJSON(t, params.SCSSecretDetectionType, 0)
210-
assertTotalCountJSON(t, 0)
209+
assertTypePresentJSON(t, params.SCSSecretDetectionType, 2)
210+
assertTotalCountJSON(t, 2)
211211

212212
removeFileBySuffix(t, printer.FormatJSON)
213213
mock.SetScsMockVarsToDefault()

internal/commands/telemetry.go

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,9 @@ func telemetryAISubCommand(telemetryAIWrapper wrappers.TelemetryWrapper) *cobra.
4040
telemetryAICmd.PersistentFlags().String(params.SubTypeFlag, "", "Sub Type")
4141
telemetryAICmd.PersistentFlags().String(params.EngineFlag, "", "Engine")
4242
telemetryAICmd.PersistentFlags().String(params.AgentFlag, "", "Agent")
43+
telemetryAICmd.PersistentFlags().String(params.ScanTypeFlag, "", "Scan Type")
44+
telemetryAICmd.PersistentFlags().String(params.StatusFlag, "", "Status")
45+
telemetryAICmd.PersistentFlags().Int(params.TotalCountFlag, 0, "Total Count")
4346

4447
return telemetryAICmd
4548
}
@@ -52,6 +55,9 @@ func runTelemetryAI(telemetryWrapper wrappers.TelemetryWrapper) func(*cobra.Comm
5255
subType, _ := cmd.Flags().GetString("sub-type")
5356
agent, _ := cmd.Flags().GetString("agent")
5457
engine, _ := cmd.Flags().GetString("engine")
58+
scanType, _ := cmd.Flags().GetString("scan-type")
59+
status, _ := cmd.Flags().GetString("status")
60+
totalCount, _ := cmd.Flags().GetInt("total-count")
5561

5662
err := telemetryWrapper.SendAIDataToLog(&wrappers.DataForAITelemetry{
5763
AIProvider: aiProvider,
@@ -60,6 +66,9 @@ func runTelemetryAI(telemetryWrapper wrappers.TelemetryWrapper) func(*cobra.Comm
6066
SubType: subType,
6167
Agent: agent,
6268
Engine: engine,
69+
ScanType: scanType,
70+
Status: status,
71+
TotalCount: totalCount,
6372
})
6473

6574
if err != nil {

internal/params/filters.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -141,6 +141,10 @@ var BaseIncludeFilters = []string{
141141
"*.bicepparam",
142142
"*.bicep",
143143
"Gemfile",
144+
"*.cjs",
145+
"*.mjs",
146+
"*.mts",
147+
"*.cts",
144148
}
145149

146150
var BaseExcludeFilters = []string{

internal/params/flags.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,9 @@ const (
99
TypeFlag = "type"
1010
SubTypeFlag = "sub-type"
1111
EngineFlag = "engine"
12+
StatusFlag = "status"
13+
scanTypeFlag = "scan-type"
14+
TotalCountFlag = "total-count"
1215
OriginFlag = "origin"
1316
AgentFlagUsage = "Scan origin name"
1417
ApplicationName = "application-name"

internal/services/export.go

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ const (
2020
pollingTimeout = 15 // minutes
2121
)
2222

23-
func GetExportPackage(exportWrapper wrappers.ExportWrapper, scanID string, scaHideDevAndTestDep bool) (*wrappers.ScaPackageCollectionExport, error) {
23+
func GetExportPackage(exportWrapper wrappers.ExportWrapper, scanID string, scaHideDevAndTestDep bool, featureflagWrappers wrappers.FeatureFlagsWrapper) (*wrappers.ScaPackageCollectionExport, error) {
2424
var scaPackageCollection = &wrappers.ScaPackageCollectionExport{
2525
Packages: []wrappers.ScaPackage{},
2626
ScaTypes: []wrappers.ScaType{},
@@ -44,9 +44,16 @@ func GetExportPackage(exportWrapper wrappers.ExportWrapper, scanID string, scaHi
4444
if err != nil {
4545
return nil, err
4646
}
47+
minioEnabled, _ := wrappers.GetSpecificFeatureFlag(featureflagWrappers, wrappers.MinioEnabled)
4748

4849
if exportResponse != nil && strings.EqualFold(exportResponse.ExportStatus, completedStatus) && exportResponse.FileURL != "" {
49-
scaPackageCollection, err = exportWrapper.GetScaPackageCollectionExport(exportResponse.FileURL)
50+
filePath := ""
51+
if minioEnabled.Status {
52+
filePath = exportResponse.FileURL
53+
} else {
54+
filePath = exportID.ExportID
55+
}
56+
scaPackageCollection, err = exportWrapper.GetScaPackageCollectionExport(filePath, minioEnabled.Status)
5057
if err != nil {
5158
return nil, err
5259
}

internal/wrappers/export-http.go

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -176,23 +176,27 @@ func (e *ExportHTTPWrapper) DownloadExportReport(reportID, targetFile string) er
176176
return nil
177177
}
178178

179-
func (e *ExportHTTPWrapper) GetScaPackageCollectionExport(fileURL string) (*ScaPackageCollectionExport, error) {
179+
func (e *ExportHTTPWrapper) GetScaPackageCollectionExport(fileURL string, auth bool) (*ScaPackageCollectionExport, error) {
180180
const bomPrefix = "\xef\xbb\xbf"
181-
182-
accessToken, err := GetAccessToken()
183-
if err != nil {
184-
return nil, errors.Wrap(err, "failed to get access token")
185-
}
186-
187181
start := time.Now()
188182
var resp *http.Response
183+
var err error
184+
var accessToken string
189185

190186
for {
191187
if time.Since(start) > timeout {
192188
return nil, errors.New(errorTimeoutMsg)
193189
}
194-
195-
resp, err = SendHTTPRequestByFullURL(http.MethodGet, fileURL, http.NoBody, true, viper.GetUint(commonParams.ClientTimeoutKey), accessToken, true)
190+
if !auth {
191+
customURL := fmt.Sprintf("%s/requests/%s/download", e.path, fileURL)
192+
resp, err = SendHTTPRequest(http.MethodGet, customURL, http.NoBody, true, viper.GetUint(commonParams.ClientTimeoutKey))
193+
} else {
194+
accessToken, err = GetAccessToken()
195+
if err != nil {
196+
return nil, errors.Wrap(err, "failed to get access token")
197+
}
198+
resp, err = SendHTTPRequestByFullURL(http.MethodGet, fileURL, http.NoBody, true, viper.GetUint(commonParams.ClientTimeoutKey), accessToken, true)
199+
}
196200
if err == nil && resp.StatusCode == http.StatusOK {
197201
break
198202
}

internal/wrappers/export.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ type ExportWrapper interface {
44
InitiateExportRequest(payload *ExportRequestPayload) (*ExportResponse, error)
55
GetExportReportStatus(reportID string) (*ExportPollingResponse, error)
66
DownloadExportReport(reportID, targetFile string) error
7-
GetScaPackageCollectionExport(fileURL string) (*ScaPackageCollectionExport, error)
7+
GetScaPackageCollectionExport(fileURL string, auth bool) (*ScaPackageCollectionExport, error)
88
}
99

1010
type ScaPackageCollectionExport struct {

internal/wrappers/mock/export-mock.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,6 @@ func (*ExportMockWrapper) DownloadExportReport(_, targetFile string) error {
4343
return nil
4444
}
4545

46-
func (e *ExportMockWrapper) GetScaPackageCollectionExport(fileURL string) (*wrappers.ScaPackageCollectionExport, error) {
46+
func (e *ExportMockWrapper) GetScaPackageCollectionExport(fileURL string, auth bool) (*wrappers.ScaPackageCollectionExport, error) {
4747
return &wrappers.ScaPackageCollectionExport{}, nil
4848
}

internal/wrappers/realtime-scanner-http.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ func (r RealtimeScannerHTTPWrapper) ScanPackages(packages *RealtimeScannerPackag
3434
}
3535

3636
fn := func() (*http.Response, error) {
37-
return SendHTTPRequest(http.MethodPost, fmt.Sprint(r.path, "/analyze-manifest"), bytes.NewBuffer(jsonBytes), true, clientTimeout)
37+
return SendHTTPRequest(http.MethodPost, fmt.Sprint(r.path, "/scan/packages"), bytes.NewBuffer(jsonBytes), true, clientTimeout)
3838
}
3939
resp, err := retryHTTPRequest(fn, retryAttempts, retryDelay*time.Millisecond)
4040
if err != nil {

0 commit comments

Comments
 (0)