-
Notifications
You must be signed in to change notification settings - Fork 12
Expand file tree
/
Copy pathindex.ts
More file actions
51 lines (41 loc) · 1.71 KB
/
index.ts
File metadata and controls
51 lines (41 loc) · 1.71 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
import * as core from '@actions/core';
import { RunScanUseCase } from './src/application/use-cases/RunScanUseCase';
import { GitHubActionsInputProvider } from './src/infrastructure/github/GitHubActionsInputProvider';
import { SysdigCliScanner } from './src/infrastructure/sysdig/SysdigCliScanner';
import { SarifReportPresenter } from './src/infrastructure/github/SarifReportPresenter';
import { SummaryReportPresenter } from './src/infrastructure/github/SummaryReportPresenter';
import { IReportPresenter } from './src/application/ports/IReportPresenter';
import {
SysdigCliScannerDownloader,
withSha256Sum,
SysdigCliScannerDownloaderOption
} from './src/infrastructure/sysdig/SysdigCliScannerDownloader';
async function run(): Promise<void> {
try {
const inputProvider = new GitHubActionsInputProvider();
const config = inputProvider.getInputs();
const downloaderOptions: SysdigCliScannerDownloaderOption[] = [];
if (config.cliScannerSha256sum) {
downloaderOptions.push(withSha256Sum(config.cliScannerSha256sum));
}
const downloader = new SysdigCliScannerDownloader(...downloaderOptions);
const scanner = new SysdigCliScanner(downloader);
const presenters: IReportPresenter[] = [
new SarifReportPresenter(),
];
if (!config.skipSummary) {
presenters.push(new SummaryReportPresenter(core.summary));
}
const useCase = new RunScanUseCase(scanner, presenters, inputProvider);
core.summary.emptyBuffer().clear();
await useCase.execute();
await core.summary.write({ overwrite: true });
} catch (error) {
if (error instanceof Error) {
core.setFailed(error.message);
} else {
core.setFailed(`Unknown error: ${error}`);
}
}
}
run();