@fabasoad/sarif-to-slack 1.3.4 → 1.4.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/.github/workflows/release.yml +1 -1
- package/.github/workflows/security.yml +1 -0
- package/.github/workflows/send-sarif-to-slack.yml +39 -15
- package/.pre-commit-config.yaml +4 -4
- package/.tool-versions +1 -1
- package/Makefile +1 -1
- package/README.md +8 -7
- package/api-extractor.json +2 -2
- package/dist/Logger.js +40 -30
- package/dist/SarifToSlackClient.d.ts +0 -1
- package/dist/SarifToSlackClient.d.ts.map +1 -1
- package/dist/SarifToSlackClient.js +11 -8
- package/dist/globalState.d.ts +2 -0
- package/dist/globalState.d.ts.map +1 -0
- package/dist/globalState.js +2 -0
- package/dist/index.cjs +118 -81
- package/dist/index.d.ts +529 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -2
- package/dist/model/Finding.js +7 -5
- package/dist/model/FindingArray.js +1 -1
- package/dist/model/SendIf.js +1 -1
- package/dist/model/SlackMessage.js +6 -6
- package/dist/model/color/Color.d.ts.map +1 -1
- package/dist/model/color/Color.js +1 -1
- package/dist/model/color/ColorIdentification.js +5 -5
- package/dist/model/color/ColorOptions.d.ts.map +1 -1
- package/dist/processors/CodeQLProcessor.js +1 -1
- package/dist/processors/CommonProcessor.js +1 -1
- package/dist/processors/ProcessorFactory.js +1 -1
- package/dist/processors/SnykProcessor.js +2 -1
- package/dist/representations/CompactGroupByRepresentation.js +1 -1
- package/dist/representations/CompactGroupByRunPerLevelRepresentation.js +1 -1
- package/dist/representations/CompactGroupByRunPerSeverityRepresentation.js +1 -1
- package/dist/representations/CompactGroupByRunRepresentation.js +1 -1
- package/dist/representations/CompactGroupBySarifPerLevelRepresentation.js +1 -1
- package/dist/representations/CompactGroupBySarifPerSeverityRepresentation.js +1 -1
- package/dist/representations/CompactGroupBySarifRepresentation.js +1 -1
- package/dist/representations/CompactGroupByToolNamePerLevelRepresentation.js +1 -1
- package/dist/representations/CompactGroupByToolNamePerSeverityRepresentation.js +1 -1
- package/dist/representations/CompactGroupByToolNameRepresentation.js +1 -1
- package/dist/representations/CompactTotalPerLevelRepresentation.js +1 -1
- package/dist/representations/CompactTotalPerSeverityRepresentation.js +1 -1
- package/dist/representations/CompactTotalRepresentation.js +1 -1
- package/dist/representations/Representation.js +1 -1
- package/dist/representations/RepresentationFactory.js +1 -1
- package/dist/representations/TableGroupByRunPerLevelRepresentation.d.ts.map +1 -1
- package/dist/representations/TableGroupByRunPerLevelRepresentation.js +1 -1
- package/dist/representations/TableGroupByRunPerSeverityRepresentation.d.ts.map +1 -1
- package/dist/representations/TableGroupByRunPerSeverityRepresentation.js +1 -1
- package/dist/representations/TableGroupByRunRepresentation.d.ts.map +1 -1
- package/dist/representations/TableGroupByRunRepresentation.js +1 -1
- package/dist/representations/TableGroupBySarifPerLevelRepresentation.d.ts.map +1 -1
- package/dist/representations/TableGroupBySarifPerLevelRepresentation.js +1 -1
- package/dist/representations/TableGroupBySarifPerSeverityRepresentation.d.ts.map +1 -1
- package/dist/representations/TableGroupBySarifPerSeverityRepresentation.js +1 -1
- package/dist/representations/TableGroupBySarifRepresentation.d.ts.map +1 -1
- package/dist/representations/TableGroupBySarifRepresentation.js +1 -1
- package/dist/representations/TableGroupByToolNamePerLevelRepresentation.d.ts.map +1 -1
- package/dist/representations/TableGroupByToolNamePerLevelRepresentation.js +1 -1
- package/dist/representations/TableGroupByToolNamePerSeverityRepresentation.d.ts.map +1 -1
- package/dist/representations/TableGroupByToolNamePerSeverityRepresentation.js +1 -1
- package/dist/representations/TableGroupByToolNameRepresentation.d.ts.map +1 -1
- package/dist/representations/TableGroupByToolNameRepresentation.js +1 -1
- package/dist/representations/TableGroupRepresentation.d.ts +0 -1
- package/dist/representations/TableGroupRepresentation.d.ts.map +1 -1
- package/dist/representations/TableGroupRepresentation.js +3 -3
- package/dist/representations/table/Cell.d.ts.map +1 -1
- package/dist/representations/table/Cell.js +1 -1
- package/dist/representations/table/Column.d.ts +0 -1
- package/dist/representations/table/Column.d.ts.map +1 -1
- package/dist/representations/table/Column.js +4 -3
- package/dist/representations/table/Row.d.ts +0 -1
- package/dist/representations/table/Row.d.ts.map +1 -1
- package/dist/representations/table/Row.js +3 -3
- package/dist/representations/table/Table.d.ts.map +1 -1
- package/dist/representations/table/Table.js +1 -1
- package/dist/system.js +5 -5
- package/dist/tsdoc-metadata.json +1 -1
- package/dist/types.d.ts +29 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +11 -1
- package/dist/utils/Comparators.js +1 -1
- package/dist/utils/ExtendedArray.js +1 -1
- package/dist/utils/FileUtils.js +2 -2
- package/dist/utils/SarifUtils.js +1 -1
- package/dist/utils/StringUtils.js +1 -1
- package/etc/sarif-to-slack.api.md +21 -1
- package/jest.config.json +4 -4
- package/package.json +10 -9
- package/src/Logger.ts +50 -34
- package/src/SarifToSlackClient.ts +73 -68
- package/src/globalState.ts +11 -0
- package/src/index.ts +23 -12
- package/src/model/Finding.ts +36 -35
- package/src/model/FindingArray.ts +5 -5
- package/src/model/SendIf.ts +25 -25
- package/src/model/SlackMessage.ts +49 -49
- package/src/model/color/Color.ts +7 -7
- package/src/model/color/ColorIdentification.ts +77 -77
- package/src/model/color/ColorOptions.ts +1 -1
- package/src/processors/CodeQLProcessor.ts +3 -3
- package/src/processors/CommonProcessor.ts +24 -24
- package/src/processors/ProcessorFactory.ts +9 -9
- package/src/processors/SnykProcessor.ts +3 -2
- package/src/representations/CompactGroupByRepresentation.ts +20 -20
- package/src/representations/CompactGroupByRunPerLevelRepresentation.ts +2 -2
- package/src/representations/CompactGroupByRunPerSeverityRepresentation.ts +2 -2
- package/src/representations/CompactGroupByRunRepresentation.ts +10 -10
- package/src/representations/CompactGroupBySarifPerLevelRepresentation.ts +2 -2
- package/src/representations/CompactGroupBySarifPerSeverityRepresentation.ts +2 -2
- package/src/representations/CompactGroupBySarifRepresentation.ts +11 -11
- package/src/representations/CompactGroupByToolNamePerLevelRepresentation.ts +2 -2
- package/src/representations/CompactGroupByToolNamePerSeverityRepresentation.ts +2 -2
- package/src/representations/CompactGroupByToolNameRepresentation.ts +10 -10
- package/src/representations/CompactTotalPerLevelRepresentation.ts +2 -2
- package/src/representations/CompactTotalPerSeverityRepresentation.ts +2 -2
- package/src/representations/CompactTotalRepresentation.ts +5 -5
- package/src/representations/Representation.ts +8 -8
- package/src/representations/RepresentationFactory.ts +32 -32
- package/src/representations/TableGroupByRunPerLevelRepresentation.ts +3 -3
- package/src/representations/TableGroupByRunPerSeverityRepresentation.ts +3 -3
- package/src/representations/TableGroupByRunRepresentation.ts +5 -5
- package/src/representations/TableGroupBySarifPerLevelRepresentation.ts +3 -3
- package/src/representations/TableGroupBySarifPerSeverityRepresentation.ts +3 -3
- package/src/representations/TableGroupBySarifRepresentation.ts +9 -9
- package/src/representations/TableGroupByToolNamePerLevelRepresentation.ts +3 -3
- package/src/representations/TableGroupByToolNamePerSeverityRepresentation.ts +3 -3
- package/src/representations/TableGroupByToolNameRepresentation.ts +4 -4
- package/src/representations/TableGroupRepresentation.ts +32 -32
- package/src/representations/table/Cell.ts +8 -8
- package/src/representations/table/Column.ts +13 -13
- package/src/representations/table/Row.ts +17 -17
- package/src/representations/table/Table.ts +21 -21
- package/src/system.ts +5 -5
- package/src/types.ts +43 -13
- package/src/utils/Comparators.ts +6 -6
- package/src/utils/ExtendedArray.ts +1 -1
- package/src/utils/FileUtils.ts +3 -3
- package/src/utils/SarifUtils.ts +6 -6
- package/src/utils/StringUtils.ts +3 -3
- package/tests/integration/SendSarifToSlack.spec.ts +73 -67
- package/tests/representations/CompactGroupByRunPerLevelRepresentation.spec.ts +121 -0
- package/tests/representations/CompactGroupByRunPerSeverityRepresentation.spec.ts +122 -0
- package/tests/representations/CompactGroupBySarifPerLevelRepresentation.spec.ts +132 -0
- package/tests/representations/CompactGroupBySarifPerSeverityRepresentation.spec.ts +133 -0
- package/tsconfig.json +3 -4
- package/dist/sarif-to-slack.d.ts +0 -562
|
@@ -28,7 +28,7 @@ jobs:
|
|
|
28
28
|
ref-name: ${{ steps.metadata.outputs.ref-name }}
|
|
29
29
|
steps:
|
|
30
30
|
- name: Get GitHub token
|
|
31
|
-
uses: actions/create-github-app-token@
|
|
31
|
+
uses: actions/create-github-app-token@v3
|
|
32
32
|
id: github-app
|
|
33
33
|
with:
|
|
34
34
|
app-id: ${{ vars.GH_APP_CONTENTS_CRUD_APP_ID }}
|
|
@@ -24,4 +24,5 @@ jobs:
|
|
|
24
24
|
security-events: write
|
|
25
25
|
with:
|
|
26
26
|
code-scanning: ${{ contains(fromJSON('["all", "code-scanning"]'), github.event.inputs.security-type || 'all') }}
|
|
27
|
+
code-scanning-languages: "actions,typescript"
|
|
27
28
|
sca: ${{ contains(fromJSON('["all", "sca"]'), github.event.inputs.security-type || 'all') }}
|
|
@@ -74,19 +74,6 @@ on: # yamllint disable-line rule:truthy
|
|
|
74
74
|
- "compact-group-by-sarif-per-severity"
|
|
75
75
|
- "compact-total-per-level"
|
|
76
76
|
- "compact-total-per-severity"
|
|
77
|
-
log-level:
|
|
78
|
-
description: "Log level:"
|
|
79
|
-
required: false
|
|
80
|
-
default: "info"
|
|
81
|
-
type: choice
|
|
82
|
-
options:
|
|
83
|
-
- "silly"
|
|
84
|
-
- "trace"
|
|
85
|
-
- "debug"
|
|
86
|
-
- "info"
|
|
87
|
-
- "warning"
|
|
88
|
-
- "error"
|
|
89
|
-
- "fatal"
|
|
90
77
|
send-if:
|
|
91
78
|
description: "Send if:"
|
|
92
79
|
required: false
|
|
@@ -151,6 +138,39 @@ on: # yamllint disable-line rule:truthy
|
|
|
151
138
|
required: false
|
|
152
139
|
default: true
|
|
153
140
|
type: boolean
|
|
141
|
+
log-level:
|
|
142
|
+
description: "Log level:"
|
|
143
|
+
required: false
|
|
144
|
+
default: "info"
|
|
145
|
+
type: choice
|
|
146
|
+
options:
|
|
147
|
+
- "silly"
|
|
148
|
+
- "trace"
|
|
149
|
+
- "debug"
|
|
150
|
+
- "info"
|
|
151
|
+
- "warning"
|
|
152
|
+
- "error"
|
|
153
|
+
- "fatal"
|
|
154
|
+
log-template:
|
|
155
|
+
description: "Log template:"
|
|
156
|
+
required: false
|
|
157
|
+
default: "[{{logLevelName}}] [{{name}}] {{dateIsoStr}} "
|
|
158
|
+
type: string
|
|
159
|
+
style-pretty-logs:
|
|
160
|
+
description: "Colored logs"
|
|
161
|
+
required: false
|
|
162
|
+
default: true
|
|
163
|
+
type: boolean
|
|
164
|
+
log-function-name:
|
|
165
|
+
description: "Log function name"
|
|
166
|
+
required: false
|
|
167
|
+
default: false
|
|
168
|
+
type: boolean
|
|
169
|
+
log-function-name-on-position:
|
|
170
|
+
description: "Log function name from this position in stacktrace:"
|
|
171
|
+
required: false
|
|
172
|
+
default: 2
|
|
173
|
+
type: number
|
|
154
174
|
|
|
155
175
|
defaults:
|
|
156
176
|
run:
|
|
@@ -161,6 +181,8 @@ jobs:
|
|
|
161
181
|
name: ${{ github.event.inputs.sarif }}
|
|
162
182
|
timeout-minutes: 5
|
|
163
183
|
runs-on: ubuntu-latest
|
|
184
|
+
permissions:
|
|
185
|
+
contents: read
|
|
164
186
|
steps:
|
|
165
187
|
- name: Checkout ${{ github.repository }}
|
|
166
188
|
uses: actions/checkout@v6
|
|
@@ -289,8 +311,10 @@ jobs:
|
|
|
289
311
|
SARIF_TO_SLACK_SARIF_PATH_RECURSIVE: "false"
|
|
290
312
|
SARIF_TO_SLACK_SARIF_FILE_EXTENSION: "sarif"
|
|
291
313
|
SARIF_TO_SLACK_LOG_LEVEL: "${{ github.event.inputs.log-level }}"
|
|
292
|
-
SARIF_TO_SLACK_LOG_TEMPLATE: "
|
|
293
|
-
|
|
314
|
+
SARIF_TO_SLACK_LOG_TEMPLATE: "${{ github.event.inputs.log-template }}"
|
|
315
|
+
SARIF_TO_SLACK_STYLE_PRETTY_LOGS: "${{ github.event.inputs.style-pretty-logs }}"
|
|
316
|
+
SARIF_TO_SLACK_LOG_FUNCTION_NAME: "${{ github.event.inputs.log-function-name }}"
|
|
317
|
+
SARIF_TO_SLACK_LOG_FUNCTION_NAME_ON_POSITION: "${{ github.event.inputs.log-function-name-on-position }}"
|
|
294
318
|
SARIF_TO_SLACK_HEADER: "${{ github.event.inputs.header }}"
|
|
295
319
|
SARIF_TO_SLACK_FOOTER: "${{ github.event.inputs.footer }}"
|
|
296
320
|
SARIF_TO_SLACK_ACTOR: "${{ github.event.inputs.actor }}"
|
package/.pre-commit-config.yaml
CHANGED
|
@@ -40,7 +40,7 @@ repos:
|
|
|
40
40
|
hooks:
|
|
41
41
|
- id: detect-secrets
|
|
42
42
|
- repo: https://github.com/gitleaks/gitleaks
|
|
43
|
-
rev: v8.30.
|
|
43
|
+
rev: v8.30.1
|
|
44
44
|
hooks:
|
|
45
45
|
- id: gitleaks
|
|
46
46
|
- repo: https://github.com/fabasoad/pre-commit-snyk
|
|
@@ -60,7 +60,7 @@ repos:
|
|
|
60
60
|
- --hook-args=--log-level debug
|
|
61
61
|
stages: ["pre-push"]
|
|
62
62
|
- repo: https://github.com/google/osv-scanner
|
|
63
|
-
rev: v2.3.
|
|
63
|
+
rev: v2.3.5
|
|
64
64
|
hooks:
|
|
65
65
|
- id: osv-scanner
|
|
66
66
|
args:
|
|
@@ -69,7 +69,7 @@ repos:
|
|
|
69
69
|
stages: ["pre-push"]
|
|
70
70
|
# Markdown
|
|
71
71
|
- repo: https://github.com/igorshubovych/markdownlint-cli
|
|
72
|
-
rev: v0.
|
|
72
|
+
rev: v0.48.0
|
|
73
73
|
hooks:
|
|
74
74
|
- id: markdownlint-fix
|
|
75
75
|
stages: ["pre-commit"]
|
|
@@ -81,7 +81,7 @@ repos:
|
|
|
81
81
|
stages: ["pre-push"]
|
|
82
82
|
# GitHub Actions
|
|
83
83
|
- repo: https://github.com/rhysd/actionlint
|
|
84
|
-
rev: v1.7.
|
|
84
|
+
rev: v1.7.12
|
|
85
85
|
hooks:
|
|
86
86
|
- id: actionlint
|
|
87
87
|
args: ["-pyflakes=", "-shellcheck="]
|
package/.tool-versions
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
nodejs 25.
|
|
1
|
+
nodejs 25.9.0
|
package/Makefile
CHANGED
package/README.md
CHANGED
|
@@ -22,12 +22,6 @@ TypeScript library to send results of SARIF file to Slack webhook URL.
|
|
|
22
22
|
|
|
23
23
|
## How to use
|
|
24
24
|
|
|
25
|
-
```shell
|
|
26
|
-
export SARIF_TO_SLACK_LOG_LEVEL="debug"
|
|
27
|
-
export SARIF_TO_SLACK_LOG_TEMPLATE="[{{logLevelName}}] [{{name}}] {{dateIsoStr}} "
|
|
28
|
-
export SARIF_TO_SLACK_LOG_COLORED="true"
|
|
29
|
-
```
|
|
30
|
-
|
|
31
25
|
```typescript
|
|
32
26
|
import {
|
|
33
27
|
Color,
|
|
@@ -84,7 +78,14 @@ const client: SarifToSlackClient = await SarifToSlackClient.create(
|
|
|
84
78
|
},
|
|
85
79
|
representation: RepresentationType.CompactGroupByToolNamePerSeverity,
|
|
86
80
|
sendIf: SendIf.MediumOrHigher,
|
|
87
|
-
|
|
81
|
+
loggerOptions: {
|
|
82
|
+
logFunctionName: false,
|
|
83
|
+
minLevel: 'debug',
|
|
84
|
+
name: 'my-app',
|
|
85
|
+
stylePrettyLogs: true,
|
|
86
|
+
prettyLogTemplate: '[{{logLevelName}}] [{{name}}] {{dateIsoStr}} ',
|
|
87
|
+
},
|
|
88
|
+
},
|
|
88
89
|
);
|
|
89
90
|
await client.send();
|
|
90
91
|
```
|
package/api-extractor.json
CHANGED
|
@@ -264,7 +264,7 @@
|
|
|
264
264
|
/**
|
|
265
265
|
* (REQUIRED) Whether to generate the .d.ts rollup file.
|
|
266
266
|
*/
|
|
267
|
-
"enabled": true
|
|
267
|
+
"enabled": true,
|
|
268
268
|
|
|
269
269
|
/**
|
|
270
270
|
* Specifies the output path for a .d.ts rollup file to be generated without any trimming.
|
|
@@ -278,7 +278,7 @@
|
|
|
278
278
|
* SUPPORTED TOKENS: <projectFolder>, <packageName>, <unscopedPackageName>
|
|
279
279
|
* DEFAULT VALUE: "<projectFolder>/dist/<unscopedPackageName>.d.ts"
|
|
280
280
|
*/
|
|
281
|
-
|
|
281
|
+
"untrimmedFilePath": "<projectFolder>/dist/index.d.ts",
|
|
282
282
|
|
|
283
283
|
/**
|
|
284
284
|
* Specifies the output path for a .d.ts rollup file to be generated with trimming for an "alpha" release.
|
package/dist/Logger.js
CHANGED
|
@@ -1,54 +1,64 @@
|
|
|
1
|
-
import { Logger as TSLogger } from 'tslog';
|
|
2
1
|
import { z } from 'zod';
|
|
2
|
+
import * as stackTraceParser from 'stacktrace-parser';
|
|
3
|
+
import { Logger as TSLogger } from 'tslog';
|
|
3
4
|
import { isDebug } from './system';
|
|
4
|
-
|
|
5
|
+
import { LogLevelItems } from './types';
|
|
6
|
+
import { globalState } from './globalState';
|
|
5
7
|
/**
|
|
6
8
|
* Logger class for managing logging operations.
|
|
7
9
|
* @internal
|
|
8
10
|
*/
|
|
9
11
|
export default class Logger {
|
|
10
|
-
static APP_NAME = '@fabasoad/sarif-to-slack';
|
|
11
12
|
static DEFAULT_LOG_LEVEL = 'info';
|
|
12
|
-
static
|
|
13
|
-
static DEFAULT_LOG_COLORED = true;
|
|
13
|
+
static DEFAULT_FUNC_NAME_POSITION = 2;
|
|
14
14
|
_instance;
|
|
15
|
-
|
|
16
|
-
return LogLevelItems.includes(v);
|
|
17
|
-
}
|
|
18
|
-
getMinLevel() {
|
|
15
|
+
getMinLevel(minLevel) {
|
|
19
16
|
let result = Logger.DEFAULT_LOG_LEVEL;
|
|
20
17
|
if (isDebug()) {
|
|
21
18
|
result = 'silly';
|
|
22
19
|
}
|
|
23
|
-
else {
|
|
24
|
-
const parseResult = z
|
|
25
|
-
.string()
|
|
26
|
-
.refine((v) => this.isLogLevel(v))
|
|
27
|
-
.transform((v) => v)
|
|
28
|
-
.safeParse(process.env.SARIF_TO_SLACK_LOG_LEVEL);
|
|
20
|
+
else if (minLevel !== undefined) {
|
|
21
|
+
const parseResult = z.enum(LogLevelItems).safeParse(minLevel);
|
|
29
22
|
if (parseResult.success) {
|
|
30
23
|
result = parseResult.data;
|
|
31
24
|
}
|
|
32
25
|
}
|
|
33
26
|
return LogLevelItems.findIndex((v) => v === result);
|
|
34
27
|
}
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
28
|
+
composeLogHeader(name, logFunctionName, logFunctionNameOnPosition) {
|
|
29
|
+
let result = name;
|
|
30
|
+
if (logFunctionName === true) {
|
|
31
|
+
const pos = logFunctionNameOnPosition ?? Logger.DEFAULT_FUNC_NAME_POSITION;
|
|
32
|
+
if (result === undefined) {
|
|
33
|
+
result = '';
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
result += '::';
|
|
37
|
+
}
|
|
38
|
+
const stackFrames = stackTraceParser.parse(new Error().stack ?? '');
|
|
39
|
+
if (stackFrames.length > pos) {
|
|
40
|
+
result += stackFrames[pos].methodName;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
return result;
|
|
42
44
|
}
|
|
43
|
-
constructor(
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
45
|
+
constructor(overrides = {}) {
|
|
46
|
+
const opts = {
|
|
47
|
+
...structuredClone(globalState.loggerOpts ?? {}),
|
|
48
|
+
...overrides,
|
|
49
|
+
};
|
|
50
|
+
const logName = this.composeLogHeader(opts.name, opts.logFunctionName, opts.logFunctionNameOnPosition);
|
|
51
|
+
const settings = {
|
|
52
|
+
minLevel: this.getMinLevel(opts.minLevel),
|
|
53
|
+
name: logName,
|
|
47
54
|
type: 'pretty',
|
|
55
|
+
prettyLogTemplate: opts.prettyLogTemplate || (logName === undefined
|
|
56
|
+
? '[{{logLevelName}}] {{dateIsoStr}} '
|
|
57
|
+
: '[{{logLevelName}}] [{{name}}] {{dateIsoStr}} '),
|
|
48
58
|
prettyLogTimeZone: 'UTC',
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
59
|
+
stylePrettyLogs: opts.stylePrettyLogs ?? true,
|
|
60
|
+
};
|
|
61
|
+
this._instance = new TSLogger(settings);
|
|
52
62
|
}
|
|
53
63
|
info(...args) {
|
|
54
64
|
this._instance.info(...args);
|
|
@@ -63,4 +73,4 @@ export default class Logger {
|
|
|
63
73
|
this._instance.debug(...args);
|
|
64
74
|
}
|
|
65
75
|
}
|
|
66
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
76
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTG9nZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL0xvZ2dlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsQ0FBQyxFQUEyQixNQUFNLEtBQUssQ0FBQztBQUNqRCxPQUFPLEtBQUssZ0JBQWdCLE1BQU0sbUJBQW1CLENBQUM7QUFDdEQsT0FBTyxFQUFxQyxNQUFNLElBQUksUUFBUSxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDbkMsT0FBTyxFQUFxQyxhQUFhLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDM0UsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU1Qzs7O0dBR0c7QUFDSCxNQUFNLENBQUMsT0FBTyxPQUFPLE1BQU07SUFDakIsTUFBTSxDQUFDLGlCQUFpQixHQUFhLE1BQU0sQ0FBQztJQUM1QyxNQUFNLENBQUMsMEJBQTBCLEdBQVcsQ0FBQyxDQUFDO0lBRXJDLFNBQVMsQ0FBb0I7SUFFdEMsV0FBVyxDQUFDLFFBQThCO1FBQ2hELElBQUksTUFBTSxHQUFhLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQztRQUVoRCxJQUFJLE9BQU8sRUFBRSxFQUFFLENBQUM7WUFDZCxNQUFNLEdBQUcsT0FBTyxDQUFDO1FBQ25CLENBQUM7YUFBTSxJQUFJLFFBQVEsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUNsQyxNQUFNLFdBQVcsR0FBaUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDNUYsSUFBSSxXQUFXLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQ3hCLE1BQU0sR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDO1lBQzVCLENBQUM7UUFDSCxDQUFDO1FBRUQsT0FBTyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBVyxFQUFXLEVBQUUsQ0FBQyxDQUFDLEtB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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SarifToSlackClient.d.ts","sourceRoot":"","sources":["../src/SarifToSlackClient.ts"],"names":[],"mappings":"AAGA,OAAO,EAIL,KAAK,yBAAyB,EAG/B,MAAM,SAAS,
|
|
1
|
+
{"version":3,"file":"SarifToSlackClient.d.ts","sourceRoot":"","sources":["../src/SarifToSlackClient.ts"],"names":[],"mappings":"AAGA,OAAO,EAIL,KAAK,yBAAyB,EAG/B,MAAM,SAAS,CAAC;AAYjB;;;GAGG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,CAAe;IAChC,OAAO,CAAC,WAAW,CAAC,CAAa;IAEjC,OAAO,CAAC,OAAO,CAAyB;IAExC,OAAO;IAIP,OAAO,CAAC,MAAM,CAAE,oBAAoB;IAOpC;;;;;;;;;OASG;WACiB,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,yBAAyB,GAAG,OAAO,CAAC,kBAAkB,CAAC;mBAavF,UAAU;IAoE/B;;;;;OAKG;IACU,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAgBlC,OAAO,KAAK,iBAAiB,GAyD5B;CACF"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { promises as fs } from 'node:fs';
|
|
2
2
|
import Logger from './Logger';
|
|
3
|
-
import { SecurityLevel, SecuritySeverity } from './types';
|
|
3
|
+
import { SecurityLevel, SecuritySeverity, } from './types';
|
|
4
4
|
import { logMetadata } from './system';
|
|
5
5
|
import { extractListOfFiles } from './utils/FileUtils';
|
|
6
6
|
import { createRepresentation } from './representations/RepresentationFactory';
|
|
@@ -10,12 +10,12 @@ import { identifyColor } from './model/color/ColorIdentification';
|
|
|
10
10
|
import FindingArray from './model/FindingArray';
|
|
11
11
|
import { createSlackMessage } from './model/SlackMessage';
|
|
12
12
|
import { SendIf, sendIfLogMessage } from './model/SendIf';
|
|
13
|
+
import { globalState } from './globalState';
|
|
13
14
|
/**
|
|
14
15
|
* Service to convert SARIF files to Slack messages and send them.
|
|
15
16
|
* @public
|
|
16
17
|
*/
|
|
17
18
|
export class SarifToSlackClient {
|
|
18
|
-
_logger = new Logger('SarifToSlackClient');
|
|
19
19
|
_message;
|
|
20
20
|
_sarifModel;
|
|
21
21
|
_sendIf = SendIf.Always;
|
|
@@ -39,8 +39,10 @@ export class SarifToSlackClient {
|
|
|
39
39
|
* @public
|
|
40
40
|
*/
|
|
41
41
|
static async create(webhookUrl, opts) {
|
|
42
|
+
globalState.loggerOpts = opts.loggerOptions;
|
|
43
|
+
const logger = new Logger();
|
|
44
|
+
logger.trace(opts);
|
|
42
45
|
const instance = new SarifToSlackClient();
|
|
43
|
-
instance._logger.trace(opts);
|
|
44
46
|
instance._sendIf = opts.sendIf ?? instance._sendIf;
|
|
45
47
|
instance._sarifModel = await SarifToSlackClient.buildModel(opts.sarif);
|
|
46
48
|
instance._message = await SarifToSlackClient.initialize(webhookUrl, opts, instance._sarifModel);
|
|
@@ -63,12 +65,12 @@ export class SarifToSlackClient {
|
|
|
63
65
|
runMetadata = {
|
|
64
66
|
id: runId.value,
|
|
65
67
|
run,
|
|
66
|
-
toolName: findToolComponent(run, result).name
|
|
68
|
+
toolName: findToolComponent(run, result).name,
|
|
67
69
|
};
|
|
68
70
|
model.findings.push(createFinding({ sarifPath, result, runMetadata }));
|
|
69
71
|
}
|
|
70
72
|
runMetadata ??= {
|
|
71
|
-
id: runId.value, run, toolName: findToolComponentDriver(run).name
|
|
73
|
+
id: runId.value, run, toolName: findToolComponentDriver(run).name,
|
|
72
74
|
};
|
|
73
75
|
model.runs.push(runMetadata);
|
|
74
76
|
}
|
|
@@ -116,15 +118,16 @@ export class SarifToSlackClient {
|
|
|
116
118
|
if (this._sarifModel == null) {
|
|
117
119
|
throw new Error('Could not parse SARIF file(s).');
|
|
118
120
|
}
|
|
121
|
+
const logger = new Logger();
|
|
119
122
|
if (this.shouldSendMessage) {
|
|
120
123
|
if (this._message == null) {
|
|
121
124
|
throw new Error('Slack message was not prepared.');
|
|
122
125
|
}
|
|
123
126
|
const text = await this._message.send();
|
|
124
|
-
|
|
127
|
+
logger.info('Message sent. Status:', text);
|
|
125
128
|
}
|
|
126
129
|
else {
|
|
127
|
-
|
|
130
|
+
logger.info(sendIfLogMessage(this._sendIf));
|
|
128
131
|
}
|
|
129
132
|
}
|
|
130
133
|
get shouldSendMessage() {
|
|
@@ -185,4 +188,4 @@ export class SarifToSlackClient {
|
|
|
185
188
|
}
|
|
186
189
|
}
|
|
187
190
|
}
|
|
188
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
191
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2FyaWZUb1NsYWNrQ2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL1NhcmlmVG9TbGFja0NsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxJQUFJLEVBQUUsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUV6QyxPQUFPLE1BQU0sTUFBTSxVQUFVLENBQUM7QUFDOUIsT0FBTyxFQUtMLGFBQWEsRUFDYixnQkFBZ0IsR0FDakIsTUFBTSxTQUFTLENBQUM7QUFDakIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUN2QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUMvRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDaEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLHVCQUF1QixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDaEYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ2xFLE9BQU8sWUFBWSxNQUFNLHNCQUFzQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxrQkFBa0IsRUFBcUIsTUFBTSxzQkFBc0IsQ0FBQztBQUM3RSxPQUFPLEVBQUUsTUFBTSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU1Qzs7O0dBR0c7QUFDSCxNQUFNLE9BQU8sa0JBQWtCO0lBQ3JCLFFBQVEsQ0FBZ0I7SUFDeEIsV0FBVyxDQUFjO0lBRXpCLE9BQU8sR0FBVyxNQUFNLENBQUMsTUFBTSxDQUFDO0lBRXhDO1FBQ0UsV0FBVyxFQUFFLENBQUM7SUFDaEIsQ0FBQztJQUVPLE1BQU0sQ0FBQyxDQUFDLG9CQUFvQjtRQUNsQyxJQUFJLEtBQUssR0FBVyxD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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"globalState.d.ts","sourceRoot":"","sources":["../src/globalState.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,WAAW,EAAE,WAAgB,CAAC"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export const globalState = {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xvYmFsU3RhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvZ2xvYmFsU3RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBVUEsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFnQixFQUFFLENBQUMifQ==
|