Skip to content

Commit a7c571e

Browse files
cx-sarah-chentiagobcxgithub-actionscx-daniel-greenspan
authored
Add an AlternateID field to enable opening the vulnerability details. (AST-94450) (#1108)
* Adds error handling for file not found in workspace * Add AlternateID and remove "coming soon" * Update AST CLI JavaScript Wrapper to version 0.0.130 * Update webViewCommand.ts --------- Co-authored-by: galactica <[email protected]> Co-authored-by: github-actions <[email protected]> Co-authored-by: Daniel Greenspan <[email protected]>
1 parent e008139 commit a7c571e

File tree

6 files changed

+14
-31
lines changed

6 files changed

+14
-31
lines changed

media/riskManagement.css

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -125,10 +125,6 @@ button:hover {
125125
filter: brightness(1.5);
126126
}
127127

128-
.disabled-result {
129-
cursor: not-allowed;
130-
}
131-
132128
svg {
133129
vertical-align: text-top;
134130
color: var(--cx-main-color);

media/riskManagement.js

Lines changed: 3 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -400,28 +400,17 @@
400400
return results.results.map((result) => {
401401
const matchedScore = getMatchedScore(result, app.applicationID);
402402

403-
const isNA =
404-
result.engine.toLowerCase() === "sca" ||
405-
result.engine.toLowerCase() === "kics";
406-
const tooltip = isNA
407-
? 'title="Coming soon..." data-bs-toggle="tooltip" data-bs-placement="top"'
408-
: "";
409-
410403
const resultElement = createResultElement(
411404
result,
412405
matchedScore,
413-
isNA,
414-
tooltip
415406
);
416407

417-
if (!isNA) {
418408
resultElement.addEventListener("click", () => {
419409
vscode.postMessage({
420410
command: "openVulnerabilityDetails",
421411
result: result,
422412
});
423413
});
424-
}
425414

426415
return resultElement;
427416
});
@@ -434,9 +423,9 @@
434423
return matchedScore || result.riskScore;
435424
}
436425

437-
function createResultElement(result, score, isSCA, tooltip) {
426+
function createResultElement(result, score) {
438427
const resultElement = document.createElement("div");
439-
resultElement.className = `result${isSCA ? " disabled-result" : ""}`;
428+
resultElement.className = "result";
440429

441430
score = formatScore(score);
442431

@@ -445,7 +434,7 @@
445434
<span>${icons[result.severity]}</span>
446435
<span>${score}</span>
447436
</span>
448-
<span class="ellipsis" ${isSCA ? tooltip : ""}> ${
437+
<span class="ellipsis"> ${
449438
result.name
450439
}</span>
451440
`;

package-lock.json

Lines changed: 4 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -953,7 +953,7 @@
953953
"@popperjs/core": "^2.11.8",
954954
"@vscode/codicons": "^0.0.36",
955955
"axios": "^1.8.3",
956-
"@checkmarxdev/ast-cli-javascript-wrapper": "0.0.129",
956+
"@checkmarxdev/ast-cli-javascript-wrapper": "0.0.130",
957957
"copyfiles": "2.4.1",
958958
"dotenv": "^16.4.7",
959959
"eslint-config-prettier": "^9.1.0",

src/models/results.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ export class AstResult extends CxResult {
2727
language = "";
2828
description = "";
2929
descriptionHTML = "";
30+
alternateId = "";
3031
similarityId = "";
3132
declare data: any;
3233
state = "";
@@ -60,6 +61,7 @@ export class AstResult extends CxResult {
6061
: result.vulnerabilityDetails.cveName,
6162
result.id,
6263
result.status,
64+
result.alternateId,
6365
result.similarityId,
6466
result.state,
6567
result.severity,

src/views/riskManagementView/riskManagementView.ts

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -46,13 +46,11 @@ export class riskManagementView implements vscode.WebviewViewProvider {
4646

4747
private async handleMessage(message: {
4848
command: string;
49-
result?: { hash: string; engine: string };
49+
result?: { hash: string };
5050
}): Promise<void> {
5151
switch (message.command) {
5252
case "openVulnerabilityDetails": {
53-
const hash = message.result.hash;
54-
const type = message.result.engine;
55-
const result = this.findResultByHash(hash, type);
53+
const result = this.findResultByHash(message.result.hash);
5654
if (result) {
5755
const astResult = new AstResult(result);
5856
await vscode.commands.executeCommand(commands.newDetails, astResult);
@@ -64,10 +62,8 @@ export class riskManagementView implements vscode.WebviewViewProvider {
6462
}
6563
}
6664

67-
private findResultByHash(hash: string, type: string): CxResult | undefined {
68-
if (type === constants.sast) {
69-
return this.cxResults.find((result) => result.data.resultHash === hash);
70-
}
65+
private findResultByHash(hash: string): CxResult | undefined {
66+
return this.cxResults.find((result) => result.alternateId === hash);
7167
}
7268

7369
public async updateContent(options?: {

0 commit comments

Comments
 (0)