Skip to content

Commit 267a576

Browse files
committed
adding sca remediation command
1 parent 363594f commit 267a576

File tree

4 files changed

+826
-7
lines changed

4 files changed

+826
-7
lines changed

src/main/wrapper/CxConstants.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,13 @@ export enum CxConstants {
1818
CMD_UTILS = "utils",
1919
CMD_REMEDIATION = "remediation",
2020
SUB_CMD_REMEDIATION_KICS = "kics",
21+
SUB_CMD_REMEDIATION_SCA = "sca",
2122
KICS_REMEDIATION_RESULTS_FILE = "--results-file",
2223
KICS_REMEDIATION_KICS_FILE = "--kics-files",
2324
KICS_REMEDIATION_SIMILARITY_IDS = "--similarity-ids",
25+
SCA_REMEDIATION_PACKAGE_FILE = "--package-file",
26+
SCA_REMEDIATION_PACKAGE = "--package",
27+
SCA_REMEDIATION_PACKAGE_VERSION = "--package-version",
2428
CMD_AUTH = "auth",
2529
SUB_CMD_VALIDATE = "validate",
2630
CMD_PROJECT = "project",

src/main/wrapper/CxWrapper.ts

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
1-
import { CxConfig } from "./CxConfig";
2-
import { CxParamType } from "./CxParamType";
3-
import { CxConstants } from "./CxConstants";
4-
import { ExecutionService } from "./ExecutionService";
5-
import { CxCommandOutput } from "./CxCommandOutput";
6-
import path = require('path');
7-
import { getLoggerWithFilePath, logger } from "./loggerConfig";
1+
import {CxConfig} from "./CxConfig";
2+
import {CxParamType} from "./CxParamType";
3+
import {CxConstants} from "./CxConstants";
4+
import {ExecutionService} from "./ExecutionService";
5+
import {CxCommandOutput} from "./CxCommandOutput";
6+
import {getLoggerWithFilePath, logger} from "./loggerConfig";
87
import * as fs from "fs"
98
import * as os from "os";
109
import CxBFL from "../bfl/CxBFL";
10+
import path = require('path');
1111

1212
type ParamTypeMap = Map<CxParamType, string>;
1313

@@ -260,6 +260,13 @@ export class CxWrapper {
260260
return exec.executeKicsCommands(this.config.pathToExecutable, commands, CxConstants.KICS_REMEDIATION_TYPE);
261261
}
262262

263+
async scaRemediation(packageFile: string, packages:string, packageVersion:string): Promise<CxCommandOutput> {
264+
const commands: string[] = [CxConstants.CMD_UTILS, CxConstants.CMD_REMEDIATION,CxConstants.SUB_CMD_REMEDIATION_SCA,CxConstants.SCA_REMEDIATION_PACKAGE_FILE, packageFile,CxConstants.SCA_REMEDIATION_PACKAGE, packages,CxConstants.SCA_REMEDIATION_PACKAGE_VERSION,packageVersion];
265+
commands.push(...this.initializeCommands(false));
266+
const exec = new ExecutionService();
267+
return exec.executeCommands(this.config.pathToExecutable, commands);
268+
}
269+
263270
getIndexOfBflNode(bflNodes: CxBFL[], resultNodes: any[]): number {
264271

265272
const bflNodeNotFound = -1;

src/tests/RemediationTest.test.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,4 +22,10 @@ describe("Kics Remediation cases",() => {
2222
expect(remediation.availableRemediation).toBeDefined();
2323
expect(remediation.appliedRemediation).toBeDefined();
2424
});
25+
26+
it('SCA Remediation Successful case ', async () => {
27+
const auth = new CxWrapper(cxScanConfig);
28+
const e:CxCommandOutput = await auth.scaRemediation("dist/tests/data/package.json","copyfiles","1.2")
29+
expect(e.exitCode).toBe(0);
30+
});
2531
});

0 commit comments

Comments
 (0)