@sectester/runner 0.33.1 → 0.34.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sectester/runner",
3
- "version": "0.33.1",
3
+ "version": "0.34.0",
4
4
  "description": "Run scanning for vulnerabilities just from your unit tests on CI phase.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -33,7 +33,7 @@
33
33
  "brightsec"
34
34
  ],
35
35
  "dependencies": {
36
- "fastify": "~4.15.0",
36
+ "fastify": "^4.28.1",
37
37
  "tslib": "~2.6.3"
38
38
  },
39
39
  "peerDependencies": {
@@ -43,5 +43,6 @@
43
43
  "@sectester/scan": ">=0.16.0 <1.0.0"
44
44
  },
45
45
  "main": "./src/index.js",
46
- "type": "commonjs"
46
+ "type": "commonjs",
47
+ "types": "./src/index.d.ts"
47
48
  }
@@ -58,13 +58,25 @@ class SecRunner {
58
58
  return new SecScan_1.SecScan({
59
59
  ...options,
60
60
  repeaterId: this.repeater.repeaterId
61
- }, this.configuration.container.resolve(scan_1.ScanFactory), this.configuration.container.resolve(reporter_1.Formatter));
61
+ }, this.configuration.container.resolve(scan_1.ScanFactory), this.configuration.container.resolve(reporter_1.Formatter), this.configuration.container.resolve(reporter_1.Reporter));
62
62
  }
63
63
  async initConfiguration(configuration) {
64
64
  await configuration.loadCredentials();
65
65
  configuration.container.register(reporter_1.Formatter, {
66
66
  useClass: reporter_1.PlainTextFormatter
67
67
  });
68
+ if (process.env.GITHUB_ACTIONS === 'true') {
69
+ if (process.env.PR_COMMIT_SHA) {
70
+ configuration.container.register(reporter_1.Reporter, {
71
+ useClass: reporter_1.GitHubCheckRunReporter
72
+ });
73
+ }
74
+ }
75
+ else {
76
+ configuration.container.register(reporter_1.Reporter, {
77
+ useClass: reporter_1.StdReporter
78
+ });
79
+ }
68
80
  }
69
81
  setupShutdown() {
70
82
  SecRunner.SHUTDOWN_SIGNALS.forEach(event => process.once(event, this.beforeShutdownSignalHandler));
@@ -1 +1 @@
1
- {"version":3,"file":"SecRunner.js","sourceRoot":"","sources":["../../../../../packages/runner/src/lib/SecRunner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SecRunner.js","sourceRoot":"","sources":["../../../../../packages/runner/src/lib/SecRunner.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { Formatter } from '@sectester/reporter';
1
+ import { Formatter, Reporter } from '@sectester/reporter';
2
2
  import { ScanFactory, ScanSettingsOptions, Severity, TargetOptions } from '@sectester/scan';
3
3
  export interface FunctionScanOptions<T> {
4
4
  inputSample: T;
@@ -8,9 +8,10 @@ export declare class SecScan {
8
8
  private readonly settings;
9
9
  private readonly scanFactory;
10
10
  private readonly formatter;
11
+ private readonly reporter?;
11
12
  private _threshold;
12
13
  private _timeout;
13
- constructor(settings: Omit<ScanSettingsOptions, 'target'>, scanFactory: ScanFactory, formatter: Formatter);
14
+ constructor(settings: Omit<ScanSettingsOptions, 'target'>, scanFactory: ScanFactory, formatter: Formatter, reporter?: Reporter | undefined);
14
15
  run<T>(options: TargetOptions | FunctionScanOptions<T>): Promise<void>;
15
16
  threshold(severity: Severity): SecScan;
16
17
  timeout(value: number): SecScan;
@@ -5,14 +5,16 @@ const FunctionScanTarget_1 = require("./FunctionScanTarget");
5
5
  const IssueFound_1 = require("./IssueFound");
6
6
  const scan_1 = require("@sectester/scan");
7
7
  class SecScan {
8
- constructor(settings, scanFactory, formatter) {
8
+ constructor(settings, scanFactory, formatter, reporter) {
9
9
  this.settings = settings;
10
10
  this.scanFactory = scanFactory;
11
11
  this.formatter = formatter;
12
+ this.reporter = reporter;
12
13
  this._threshold = scan_1.Severity.LOW;
13
14
  this._timeout = 600000;
14
15
  }
15
16
  async run(options) {
17
+ var _a;
16
18
  let functionScanTarget;
17
19
  let targetOptions;
18
20
  if (this.isFunctionScanOptions(options)) {
@@ -43,6 +45,7 @@ class SecScan {
43
45
  finally {
44
46
  await scan.stop();
45
47
  await (functionScanTarget === null || functionScanTarget === void 0 ? void 0 : functionScanTarget.stop());
48
+ await ((_a = this.reporter) === null || _a === void 0 ? void 0 : _a.report(scan));
46
49
  }
47
50
  }
48
51
  threshold(severity) {
@@ -1 +1 @@
1
- {"version":3,"file":"SecScan.js","sourceRoot":"","sources":["../../../../../packages/runner/src/lib/SecScan.ts"],"names":[],"mappings":";;;AAAA,6DAA0D;AAC1D,6CAA0C;AAE1C,0CAQyB;AAOzB,MAAa,OAAO;IAIlB,YACmB,QAA6C,EAC7C,WAAwB,EACxB,SAAoB;QAFpB,aAAQ,GAAR,QAAQ,CAAqC;QAC7C,gBAAW,GAAX,WAAW,CAAa;QACxB,cAAS,GAAT,SAAS,CAAW;QAN/B,eAAU,GAAG,eAAQ,CAAC,GAAG,CAAC;QAC1B,aAAQ,GAAG,MAAO,CAAC;IAMxB,CAAC;IAEG,KAAK,CAAC,GAAG,CACd,OAA+C;QAE/C,IAAI,kBAAkD,CAAC;QAEvD,IAAI,aAA4B,CAAC;QACjC,IAAI,IAAI,CAAC,qBAAqB,CAAI,OAAO,CAAC,EAAE,CAAC;YAC3C,kBAAkB,GAAG,IAAI,uCAAkB,EAAE,CAAC;YAC9C,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,kBAAkB,CAAC,KAAK,CAAI,OAAO,CAAC,EAAE,CAAC,CAAC;YAE9D,aAAa,GAAG;gBACd,GAAG;gBACH,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE,OAAO,CAAC,WAAW;gBACzB,GAAG,CAAC,OAAO,OAAO,CAAC,WAAW,KAAK,QAAQ;oBACzC,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,EAAE;oBACrD,CAAC,CAAC,EAAE,CAAC;aACR,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,aAAa,GAAG,OAAO,CAAC;QAC1B,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,UAAU,CAC5C;YACE,GAAG,IAAI,CAAC,QAAQ;YAChB,MAAM,EAAE,aAAa;SACtB,EACD;YACE,OAAO,EAAE,IAAI,CAAC,QAAQ;SACvB,CACF,CAAC;QAEF,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAEnC,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC;gBAAS,CAAC;YACT,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;YAClB,MAAM,CAAA,kBAAkB,aAAlB,kBAAkB,uBAAlB,kBAAkB,CAAE,IAAI,EAAE,CAAA,CAAC;QACnC,CAAC;IACH,CAAC;IAEM,SAAS,CAAC,QAAkB;QACjC,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC;QAE3B,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,OAAO,CAAC,KAAa;QAC1B,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QAEtB,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,KAAK,CAAC,MAAM,CAAC,IAAU;QAC7B,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAEjD,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,IAAI,uBAAU,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAAC,IAAU;QACxC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;QAEnC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,WACrB,OAAA,MAAA,qBAAc,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,0CAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAA,EAAA,CAC1D,CAAC;QACJ,CAAC;IACH,CAAC;IAEO,qBAAqB,CAAI,CAAM;QACrC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAChB,CAAC;CACF;AArFD,0BAqFC"}
1
+ {"version":3,"file":"SecScan.js","sourceRoot":"","sources":["../../../../../packages/runner/src/lib/SecScan.ts"],"names":[],"mappings":"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"}