Skip to content

Commit 5a8d67a

Browse files
committed
Adds SCA vulnerability details and severity levels to CxOss
1 parent b93668d commit 5a8d67a

File tree

2 files changed

+50
-32
lines changed

2 files changed

+50
-32
lines changed

src/main/oss/CxManifestStatus.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
export enum CxManifestStatus {
22
malicious = "Malicious",
33
ok = "OK",
4-
unknown = "Unknown"
4+
unknown = "Unknown",
5+
critical = "Critical",
6+
high = "High",
7+
medium = "Medium",
8+
low = "Low"
59
}

src/main/oss/CxOss.ts

Lines changed: 45 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,46 +1,60 @@
1-
import {CxManifestStatus} from './CxManifestStatus';
1+
import { CxManifestStatus } from './CxManifestStatus';
22

33
export default class CxOssResult {
4-
packageManager : string;
5-
packageName : string;
6-
version : string;
7-
filepath : string;
8-
lineStart : number;
9-
lineEnd : number;
10-
startIndex : number;
11-
endIndex : number;
12-
status :CxManifestStatus;
13-
4+
packageManager: string;
5+
packageName: string;
6+
version: string;
7+
filepath: string;
8+
lineStart: number;
9+
lineEnd: number;
10+
startIndex: number;
11+
endIndex: number;
12+
status: CxManifestStatus;
13+
vulnerabilities: { cve: string, description: string, severity: string }[];
1414

1515
static parseResult(resultObject: any): CxOssResult[] {
1616
const packages = resultObject.Packages;
1717
let ossResults: CxOssResult[] = [];
1818
if (packages instanceof Array) {
19-
ossResults = packages.map((member: any) => {
19+
ossResults = packages.map((member: any) => {
2020
const ossResult = new CxOssResult();
2121
ossResult.packageManager = member.PackageManager;
22-
ossResult.packageName = member.PackageName;
23-
ossResult.version = member.PackageVersion;
24-
ossResult.filepath = member.FilePath;
25-
ossResult.lineStart = member.LineStart;
26-
ossResult.lineEnd = member.LineEnd;
27-
ossResult.startIndex = member.StartIndex;
28-
ossResult.endIndex = member.EndIndex;
29-
ossResult.status = member.Status as CxManifestStatus;
22+
ossResult.packageName = member.PackageName;
23+
ossResult.version = member.PackageVersion;
24+
ossResult.filepath = member.FilePath;
25+
ossResult.lineStart = member.LineStart;
26+
ossResult.lineEnd = member.LineEnd;
27+
ossResult.startIndex = member.StartIndex;
28+
ossResult.endIndex = member.EndIndex;
29+
ossResult.status = member.Status as CxManifestStatus;
30+
ossResult.vulnerabilities = Array.isArray(member.Vulnerabilities)
31+
? member.Vulnerabilities.map((vul: any) => ({
32+
cve: vul.CVE,
33+
description: vul.Description,
34+
severity: vul.Severity
35+
}))
36+
: [];
3037
return ossResult;
3138
});
3239
} else {
33-
const ossResult = new CxOssResult();
34-
ossResult.packageManager = packages.PackageManager;
35-
ossResult.packageName = packages.PackageName;
36-
ossResult.version = packages.PackageVersion;
37-
ossResult.filepath = packages.FilePath;
38-
ossResult.lineStart = packages.LineStart;
39-
ossResult.lineEnd = packages.LineEnd;
40-
ossResult.startIndex = packages.StartIndex;
41-
ossResult.endIndex = packages.EndIndex;
42-
ossResult.status = packages.Status as CxManifestStatus;
43-
ossResults.push(ossResult);
40+
const ossResult = new CxOssResult();
41+
ossResult.packageManager = packages.PackageManager;
42+
ossResult.packageName = packages.PackageName;
43+
ossResult.version = packages.PackageVersion;
44+
ossResult.filepath = packages.FilePath;
45+
ossResult.lineStart = packages.LineStart;
46+
ossResult.lineEnd = packages.LineEnd;
47+
ossResult.startIndex = packages.StartIndex;
48+
ossResult.endIndex = packages.EndIndex;
49+
ossResult.status = packages.Status as CxManifestStatus;
50+
ossResult.vulnerabilities = Array.isArray(packages.Vulnerabilities)
51+
? packages.Vulnerabilities.map((vul: any) => ({
52+
cve: vul.CVE,
53+
description: vul.Description,
54+
severity: vul.Severity
55+
}))
56+
: [];
57+
ossResults.push(ossResult);
4458
}
4559
return ossResults;
4660
}

0 commit comments

Comments
 (0)