Add support for additional CLI parameters
This commit is contained in:
+15
@@ -9,6 +9,21 @@ inputs:
|
|||||||
description: 'The path to the directory containing the environment files to upload. Defaults to Actions working directory.'
|
description: 'The path to the directory containing the environment files to upload. Defaults to Actions working directory.'
|
||||||
required: false
|
required: false
|
||||||
default: '.'
|
default: '.'
|
||||||
|
directoryExclusionList:
|
||||||
|
description: 'Filters out specific directories following a minimatch pattern.'
|
||||||
|
required: false
|
||||||
|
ignoreDirectories:
|
||||||
|
description: 'Filters out specific directories, providing individual directory paths separated by semicolon. Obsolete in favor of DirectoryExclusionList's glob syntax.'
|
||||||
|
required: false
|
||||||
|
detectorArgs:
|
||||||
|
description: 'Comma separated list of properties that can affect the detectors execution, like EnableIfDefaultOff that allows a specific detector that is in beta to run, the format for this property is DetectorId=EnableIfDefaultOff, for example Pip=EnableIfDefaultOff.'
|
||||||
|
required: false
|
||||||
|
dockerImagesToScan:
|
||||||
|
description: 'Comma separated list of docker image names or hashes to execute container scanning on, ex: ubuntu:16.04,56bab49eef2ef07505f6a1b0d5bd3a601dfc3c76ad4460f24c91d6fa298369ab'
|
||||||
|
required: false
|
||||||
|
detectorsFilter:
|
||||||
|
description: 'A comma separated list with the identifiers of the specific detectors to be used. This is meant to be used for testing purposes only.'
|
||||||
|
required: false
|
||||||
runs:
|
runs:
|
||||||
using: 'node16'
|
using: 'node16'
|
||||||
main: 'dist/index.js'
|
main: 'dist/index.js'
|
||||||
|
|||||||
+11
-1
@@ -49,12 +49,22 @@ export default class ComponentDetection {
|
|||||||
core.info("Running component-detection");
|
core.info("Running component-detection");
|
||||||
|
|
||||||
try {
|
try {
|
||||||
await exec.exec(`${this.componentDetectionPath} scan --SourceDirectory ${path} --ManifestFile ${this.outputPath}`);
|
await exec.exec(`${this.componentDetectionPath} scan --SourceDirectory ${path} --ManifestFile ${this.outputPath} ${this.getComponentDetectionParameters()}`);
|
||||||
} catch (error: any) {
|
} catch (error: any) {
|
||||||
core.error(error);
|
core.error(error);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static getComponentDetectionParameters(): string {
|
||||||
|
var parameters = "";
|
||||||
|
parameters += (core.getInput('directoryExclusionList')) ? ` --DirectoryExclusionList ${core.getInput('directoryExclusionList')}` : "";
|
||||||
|
parameters += (core.getInput('ignoreDirectories')) ? ` --IgnoreDirectories ${core.getInput('ignoreDirectories')}` : "";
|
||||||
|
parameters += (core.getInput('detectorArgs')) ? ` --DetectorArgs ${core.getInput('detectorArgs')}` : "";
|
||||||
|
parameters += (core.getInput('detectorsFilter')) ? ` --DetectorsFilter ${core.getInput('detectorsFilter')}` : "";
|
||||||
|
parameters += (core.getInput('dockerImagesToScan')) ? ` --DockerImagesToScan ${core.getInput('dockerImagesToScan')}` : "";
|
||||||
|
return parameters;
|
||||||
|
}
|
||||||
|
|
||||||
private static async getManifestsFromResults(): Promise<Manifest[]| undefined> {
|
private static async getManifestsFromResults(): Promise<Manifest[]| undefined> {
|
||||||
core.info("Getting manifests from results");
|
core.info("Getting manifests from results");
|
||||||
// Parse the result file and add the packages to the package cache
|
// Parse the result file and add the packages to the package cache
|
||||||
|
|||||||
+1
@@ -5,6 +5,7 @@ export default class ComponentDetection {
|
|||||||
static scanAndGetManifests(path: string): Promise<Manifest[] | undefined>;
|
static scanAndGetManifests(path: string): Promise<Manifest[] | undefined>;
|
||||||
private static downloadLatestRelease;
|
private static downloadLatestRelease;
|
||||||
private static runComponentDetection;
|
private static runComponentDetection;
|
||||||
|
private static getComponentDetectionParameters;
|
||||||
private static getManifestsFromResults;
|
private static getManifestsFromResults;
|
||||||
private static getDependencyScope;
|
private static getDependencyScope;
|
||||||
private static makePackageUrl;
|
private static makePackageUrl;
|
||||||
|
|||||||
+10
-1
@@ -23772,13 +23772,22 @@ class ComponentDetection {
|
|||||||
return __awaiter(this, void 0, void 0, function* () {
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
core.info("Running component-detection");
|
core.info("Running component-detection");
|
||||||
try {
|
try {
|
||||||
yield exec.exec(`${this.componentDetectionPath} scan --SourceDirectory ${path} --ManifestFile ${this.outputPath}`);
|
yield exec.exec(`${this.componentDetectionPath} scan --SourceDirectory ${path} --ManifestFile ${this.outputPath} ${this.getComponentDetectionParameters()}`);
|
||||||
}
|
}
|
||||||
catch (error) {
|
catch (error) {
|
||||||
core.error(error);
|
core.error(error);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
static getComponentDetectionParameters() {
|
||||||
|
var parameters = "";
|
||||||
|
parameters += (core.getInput('directoryExclusionList')) ? ` --DirectoryExclusionList ${core.getInput('directoryExclusionList')}` : "";
|
||||||
|
parameters += (core.getInput('ignoreDirectories')) ? ` --IgnoreDirectories ${core.getInput('ignoreDirectories')}` : "";
|
||||||
|
parameters += (core.getInput('detectorArgs')) ? ` --DetectorArgs ${core.getInput('detectorArgs')}` : "";
|
||||||
|
parameters += (core.getInput('detectorsFilter')) ? ` --DetectorsFilter ${core.getInput('detectorsFilter')}` : "";
|
||||||
|
parameters += (core.getInput('dockerImagesToScan')) ? ` --DockerImagesToScan ${core.getInput('dockerImagesToScan')}` : "";
|
||||||
|
return parameters;
|
||||||
|
}
|
||||||
static getManifestsFromResults() {
|
static getManifestsFromResults() {
|
||||||
return __awaiter(this, void 0, void 0, function* () {
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
core.info("Getting manifests from results");
|
core.info("Getting manifests from results");
|
||||||
|
|||||||
+1
-1
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user