@fabasoad/sarif-to-slack 0.1.1 → 0.2.1
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/ISSUE_TEMPLATE/bug_report.md +1 -1
- package/.github/pull_request_template.md +3 -3
- package/.github/workflows/linting.yml +14 -0
- package/.github/workflows/release.yml +5 -1
- package/.github/workflows/send-sarif-to-slack.yml +214 -0
- package/.github/workflows/unit-tests.yml +1 -0
- package/.pre-commit-config.yaml +3 -3
- package/.tool-versions +1 -1
- package/CONTRIBUTING.md +1 -1
- package/Makefile +10 -3
- package/README.md +36 -5
- package/biome.json +15 -12
- package/dist/Logger.js +17 -6
- package/dist/Processors.js +23 -22
- package/dist/SarifToSlackService.d.ts.map +1 -1
- package/dist/SarifToSlackService.js +6 -7
- package/dist/SlackMessageBuilder.js +51 -55
- package/dist/index.d.ts +9 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -5
- package/dist/model/SarifModelPerRun.d.ts +17 -0
- package/dist/model/SarifModelPerRun.d.ts.map +1 -0
- package/dist/model/SarifModelPerRun.js +84 -0
- package/dist/model/SarifModelPerSarif.d.ts +20 -0
- package/dist/model/SarifModelPerSarif.d.ts.map +1 -0
- package/dist/model/SarifModelPerSarif.js +97 -0
- package/dist/model/types.d.ts +17 -0
- package/dist/model/types.d.ts.map +1 -0
- package/dist/model/types.js +31 -0
- package/dist/sarif-to-slack.d.ts +121 -18
- package/dist/tsdoc-metadata.json +1 -1
- package/dist/types.d.ts +107 -15
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +73 -7
- package/dist/utils/SarifUtils.d.ts +5 -0
- package/dist/utils/SarifUtils.d.ts.map +1 -0
- package/dist/utils/SarifUtils.js +32 -0
- package/dist/utils/SortUtils.d.ts +5 -0
- package/dist/utils/SortUtils.d.ts.map +1 -0
- package/dist/utils/SortUtils.js +8 -0
- package/dist/version.d.ts +2 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +4 -0
- package/etc/sarif-to-slack.api.md +47 -9
- package/jest.config.json +4 -4
- package/package.json +14 -10
- package/scripts/save-version.sh +6 -0
- package/src/Logger.ts +22 -17
- package/src/Processors.ts +22 -22
- package/src/SarifToSlackService.ts +6 -7
- package/src/SlackMessageBuilder.ts +85 -68
- package/src/index.ts +17 -6
- package/src/model/SarifModelPerRun.ts +114 -0
- package/src/model/SarifModelPerSarif.ts +116 -0
- package/src/model/types.ts +31 -0
- package/src/types.ts +113 -15
- package/src/utils/SarifUtils.ts +44 -0
- package/src/utils/SortUtils.ts +21 -0
- package/src/version.ts +3 -0
- package/test-data/sarif/codeql-csharp.sarif +1 -0
- package/test-data/sarif/codeql-go.sarif +1 -0
- package/test-data/sarif/codeql-python.sarif +1 -0
- package/test-data/sarif/codeql-ruby.sarif +1 -0
- package/test-data/sarif/codeql-typescript.sarif +1 -0
- package/test-data/sarif/grype-container.sarif +1774 -0
- package/test-data/sarif/runs-1-tools-1-results-0.sarif +18 -0
- package/test-data/sarif/runs-2-tools-1-results-0.sarif +30 -0
- package/test-data/sarif/runs-2-tools-1.sarif +656 -0
- package/test-data/sarif/runs-2-tools-2-results-0.sarif +44 -0
- package/test-data/sarif/runs-2-tools-2.sarif +686 -0
- package/test-data/sarif/runs-3-tools-2-results-0.sarif +48 -0
- package/test-data/sarif/runs-3-tools-2.sarif +278 -0
- package/test-data/sarif/snyk-composer.sarif +934 -0
- package/test-data/sarif/snyk-container.sarif +313 -0
- package/test-data/sarif/snyk-gomodules.sarif +388 -0
- package/test-data/sarif/snyk-gradle.sarif +274 -0
- package/test-data/sarif/snyk-hex.sarif +66 -0
- package/test-data/sarif/snyk-maven.sarif +274 -0
- package/test-data/sarif/snyk-npm.sarif +896 -0
- package/test-data/sarif/snyk-nuget.sarif +90 -0
- package/test-data/sarif/snyk-pip.sarif +66 -0
- package/test-data/sarif/snyk-pnpm.sarif +90 -0
- package/test-data/sarif/snyk-poetry.sarif +1952 -0
- package/test-data/sarif/snyk-rubygems.sarif +440 -0
- package/test-data/sarif/snyk-sbt.sarif +178 -0
- package/test-data/sarif/snyk-swift.sarif +112 -0
- package/test-data/sarif/snyk-yarn.sarif +2900 -0
- package/test-data/sarif/trivy-iac.sarif +134 -0
- package/test-data/sarif/wiz-container.sarif +30916 -0
- package/test-data/sarif/wiz-iac.sarif +558 -0
- package/tests/Processors.spec.ts +3 -3
- package/tests/integration/SendSarifToSlack.spec.ts +56 -0
- package/tsconfig.json +14 -14
- package/dist/Logger.js.map +0 -1
- package/dist/Processors.js.map +0 -1
- package/dist/SarifToSlackService.js.map +0 -1
- package/dist/SlackMessageBuilder.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/types.js.map +0 -1
|
@@ -31,7 +31,7 @@ If applicable, add screenshots to help explain your problem.
|
|
|
31
31
|
#### Technical information (please complete the following information)
|
|
32
32
|
|
|
33
33
|
- OS: [e.g. Windows 10 Enterprise v.1909 (OS Build 18363.720)]
|
|
34
|
-
- `sarif-to-slack
|
|
34
|
+
- `sarif-to-slack` version [e.g. 0.1.1]
|
|
35
35
|
|
|
36
36
|
#### Additional context
|
|
37
37
|
|
|
@@ -4,12 +4,12 @@
|
|
|
4
4
|
|
|
5
5
|
Please check if your PR fulfills the following requirements:
|
|
6
6
|
|
|
7
|
-
- [ ] I have read the [CONTRIBUTING](https://github.com/fabasoad/sarif-to-slack
|
|
7
|
+
- [ ] I have read the [CONTRIBUTING](https://github.com/fabasoad/sarif-to-slack/blob/main/CONTRIBUTING.md)
|
|
8
8
|
doc.
|
|
9
9
|
- [ ] Tests for the changes have been added (for bug fixes / features).
|
|
10
10
|
- [ ] Docs have been reviewed and added / updated if needed (for bug fixes / features).
|
|
11
|
-
- [ ] Build (`
|
|
12
|
-
- [ ] Tests (`
|
|
11
|
+
- [ ] Build (`make build`) was run locally and any changes were pushed.
|
|
12
|
+
- [ ] Tests (`make test`) has passed locally and any fixes were made for failures.
|
|
13
13
|
|
|
14
14
|
## Pull request type
|
|
15
15
|
|
|
@@ -6,13 +6,27 @@ on: # yamllint disable-line rule:truthy
|
|
|
6
6
|
push:
|
|
7
7
|
branches:
|
|
8
8
|
- main
|
|
9
|
+
workflow_dispatch:
|
|
10
|
+
inputs:
|
|
11
|
+
linter:
|
|
12
|
+
description: |
|
|
13
|
+
The linter to run. Supported values: `js-lint`, `pre-commit`.
|
|
14
|
+
required: false
|
|
15
|
+
default: all
|
|
16
|
+
type: choice
|
|
17
|
+
options:
|
|
18
|
+
- all
|
|
19
|
+
- js-lint
|
|
20
|
+
- pre-commit
|
|
9
21
|
|
|
10
22
|
jobs:
|
|
11
23
|
js-lint:
|
|
12
24
|
name: JS Lint
|
|
25
|
+
if: ${{ (github.event.inputs.linter || 'all') == 'all' || github.event.inputs.linter == 'js-lint' }}
|
|
13
26
|
uses: fabasoad/reusable-workflows/.github/workflows/wf-js-lint.yml@main
|
|
14
27
|
pre-commit:
|
|
15
28
|
name: Pre-commit
|
|
29
|
+
if: ${{ (github.event.inputs.linter || 'all') == 'all' || github.event.inputs.linter == 'pre-commit' }}
|
|
16
30
|
uses: fabasoad/reusable-workflows/.github/workflows/wf-pre-commit.yml@main
|
|
17
31
|
with:
|
|
18
32
|
skip-hooks: "audit, build, lint, test"
|
|
@@ -28,6 +28,8 @@ jobs:
|
|
|
28
28
|
steps:
|
|
29
29
|
- name: Checkout ${{ github.repository }}
|
|
30
30
|
uses: actions/checkout@v4
|
|
31
|
+
with:
|
|
32
|
+
token: "${{ secrets.GH_TOKEN }}"
|
|
31
33
|
|
|
32
34
|
- name: Setup Node
|
|
33
35
|
uses: actions/setup-node@v4
|
|
@@ -40,10 +42,12 @@ jobs:
|
|
|
40
42
|
run: npm ci
|
|
41
43
|
|
|
42
44
|
- name: Bump version
|
|
45
|
+
env:
|
|
46
|
+
BUMP_STRATEGY: "${{ github.event.inputs.bump-strategy }}"
|
|
43
47
|
run: |
|
|
44
48
|
git config user.email "fabasoad@gmail.com"
|
|
45
49
|
git config user.name "fabasoad"
|
|
46
|
-
npm run version:${
|
|
50
|
+
npm run version:${BUMP_STRATEGY}
|
|
47
51
|
|
|
48
52
|
- name: Install jq
|
|
49
53
|
uses: dcarbone/install-jq-action@v3
|
|
@@ -0,0 +1,214 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Send SARIF to Slack
|
|
3
|
+
|
|
4
|
+
on: # yamllint disable-line rule:truthy
|
|
5
|
+
workflow_dispatch:
|
|
6
|
+
inputs:
|
|
7
|
+
sarif:
|
|
8
|
+
description: SARIF to send
|
|
9
|
+
required: true
|
|
10
|
+
default: "Snyk Yarn (Error: 30, Warning: 16, Note: 3)"
|
|
11
|
+
type: choice
|
|
12
|
+
options:
|
|
13
|
+
- "CodeQL C# (Unknown: 1)"
|
|
14
|
+
- "CodeQL Go (Unknown: 1)"
|
|
15
|
+
- "CodeQL Python (Unknown: 1)"
|
|
16
|
+
- "CodeQL Ruby (Unknown: 4)"
|
|
17
|
+
- "CodeQL TypeScript (Unknown: 1)"
|
|
18
|
+
- "Grype Container (Error: 10, Warning: 20, Note: 9)"
|
|
19
|
+
- "Snyk Composer (Error: 15, Warning: 5)"
|
|
20
|
+
- "Snyk Container (Error: 1, Note: 3)"
|
|
21
|
+
- "Snyk Gomodules (Error: 4, Warning: 4)"
|
|
22
|
+
- "Snyk Gradle (Error: 3, Warning: 1)"
|
|
23
|
+
- "Snyk Hex (Error: 1)"
|
|
24
|
+
- "Snyk Maven (Error: 3, Warning: 1)"
|
|
25
|
+
- "Snyk NPM (Error: 6, Warning: 6, Note: 2)"
|
|
26
|
+
- "Snyk Nuget (Error: 1)"
|
|
27
|
+
- "Snyk Pip (Warning: 1)"
|
|
28
|
+
- "Snyk PNPM (Error: 1)"
|
|
29
|
+
- "Snyk Poetry (Error: 6, Warning: 21, Note: 2)"
|
|
30
|
+
- "Snyk Rubygems (Error: 1, Warning: 5)"
|
|
31
|
+
- "Snyk Sbt (Error: 2, Warning: 1)"
|
|
32
|
+
- "Snyk Swift (Warning: 2)"
|
|
33
|
+
- "Snyk Yarn (Error: 30, Warning: 16, Note: 3)"
|
|
34
|
+
- "Trivy IaC (Error: 1, Note: 1)"
|
|
35
|
+
- "Wiz Container (Error: 12, Warning: 369, Note: 191)"
|
|
36
|
+
- "Wiz IaC (Warning: 5, Note: 5)"
|
|
37
|
+
- "Runs: 1, Tools: 1, Results: 0"
|
|
38
|
+
- "Runs: 2, Tools: 1, Results > 0"
|
|
39
|
+
- "Runs: 2, Tools: 1, Results: 0"
|
|
40
|
+
- "Runs: 2, Tools: 2, Results > 0"
|
|
41
|
+
- "Runs: 2, Tools: 2, Results: 0"
|
|
42
|
+
- "Runs: 3, Tools: 2, Results > 0"
|
|
43
|
+
- "Runs: 3, Tools: 2, Results: 0"
|
|
44
|
+
- "All"
|
|
45
|
+
group-by:
|
|
46
|
+
description: "Group results by:"
|
|
47
|
+
required: false
|
|
48
|
+
default: "Tool name"
|
|
49
|
+
type: choice
|
|
50
|
+
options:
|
|
51
|
+
- "Tool name"
|
|
52
|
+
- "Run"
|
|
53
|
+
- "Total"
|
|
54
|
+
calculate-by:
|
|
55
|
+
description: "Calculate results by:"
|
|
56
|
+
required: false
|
|
57
|
+
default: "Level"
|
|
58
|
+
type: choice
|
|
59
|
+
options:
|
|
60
|
+
- "Level"
|
|
61
|
+
- "Severity"
|
|
62
|
+
log-level:
|
|
63
|
+
description: "Log level:"
|
|
64
|
+
required: false
|
|
65
|
+
default: info
|
|
66
|
+
type: choice
|
|
67
|
+
options:
|
|
68
|
+
- silly
|
|
69
|
+
- trace
|
|
70
|
+
- debug
|
|
71
|
+
- info
|
|
72
|
+
- warning
|
|
73
|
+
- error
|
|
74
|
+
- fatal
|
|
75
|
+
color:
|
|
76
|
+
description: "Slack message color (hex):"
|
|
77
|
+
required: false
|
|
78
|
+
default: "#ff0000"
|
|
79
|
+
type: string
|
|
80
|
+
username:
|
|
81
|
+
description: "Slack message username:"
|
|
82
|
+
required: false
|
|
83
|
+
type: string
|
|
84
|
+
header:
|
|
85
|
+
description: |
|
|
86
|
+
Header (leave empty for default value, set to "skip" to not include it,
|
|
87
|
+
or set to any string to use it as a header):
|
|
88
|
+
required: false
|
|
89
|
+
default: "skip"
|
|
90
|
+
type: string
|
|
91
|
+
footer:
|
|
92
|
+
description: |
|
|
93
|
+
Footer (leave empty for default value, set to "skip" to not include it,
|
|
94
|
+
or set to any string to use it as a footer):
|
|
95
|
+
required: false
|
|
96
|
+
type: string
|
|
97
|
+
actor:
|
|
98
|
+
description: |
|
|
99
|
+
Actor (leave empty for default value, set to "skip" to not include it,
|
|
100
|
+
or set to any string to use it as an actor):
|
|
101
|
+
required: false
|
|
102
|
+
default: "skip"
|
|
103
|
+
type: string
|
|
104
|
+
include-run:
|
|
105
|
+
description: Include run in the message.
|
|
106
|
+
required: false
|
|
107
|
+
default: true
|
|
108
|
+
type: boolean
|
|
109
|
+
|
|
110
|
+
defaults:
|
|
111
|
+
run:
|
|
112
|
+
shell: sh
|
|
113
|
+
|
|
114
|
+
jobs:
|
|
115
|
+
send-sarif:
|
|
116
|
+
name: ${{ inputs.sarif }}
|
|
117
|
+
timeout-minutes: 5
|
|
118
|
+
runs-on: ubuntu-latest
|
|
119
|
+
steps:
|
|
120
|
+
- name: Checkout ${{ github.repository }}
|
|
121
|
+
uses: actions/checkout@v4
|
|
122
|
+
- name: Determine SARIF file
|
|
123
|
+
id: sarif-file
|
|
124
|
+
env:
|
|
125
|
+
INPUT_SARIF: "${{ inputs.sarif }}"
|
|
126
|
+
run: |
|
|
127
|
+
if [ "${INPUT_SARIF}" = "CodeQL C# (Unknown: 1)" ]; then
|
|
128
|
+
value="codeql-csharp.sarif"
|
|
129
|
+
elif [ "${INPUT_SARIF}" = "CodeQL Go (Unknown: 1)" ]; then
|
|
130
|
+
value="codeql-go.sarif"
|
|
131
|
+
elif [ "${INPUT_SARIF}" = "CodeQL Python (Unknown: 1)" ]; then
|
|
132
|
+
value="codeql-python.sarif"
|
|
133
|
+
elif [ "${INPUT_SARIF}" = "CodeQL Ruby (Unknown: 4)" ]; then
|
|
134
|
+
value="codeql-ruby.sarif"
|
|
135
|
+
elif [ "${INPUT_SARIF}" = "CodeQL TypeScript (Unknown: 1)" ]; then
|
|
136
|
+
value="codeql-typescript.sarif"
|
|
137
|
+
elif [ "${INPUT_SARIF}" = "Grype Container (Error: 10, Warning: 20, Note: 9)" ]; then
|
|
138
|
+
value="grype-container.sarif"
|
|
139
|
+
elif [ "${INPUT_SARIF}" = "Snyk Composer (Error: 15, Warning: 5)" ]; then
|
|
140
|
+
value="snyk-composer.sarif"
|
|
141
|
+
elif [ "${INPUT_SARIF}" = "Snyk Container (Error: 1, Note: 3)" ]; then
|
|
142
|
+
value="snyk-container.sarif"
|
|
143
|
+
elif [ "${INPUT_SARIF}" = "Snyk Gomodules (Error: 4, Warning: 4)" ]; then
|
|
144
|
+
value="snyk-gomodules.sarif"
|
|
145
|
+
elif [ "${INPUT_SARIF}" = "Snyk Gradle (Error: 3, Warning: 1)" ]; then
|
|
146
|
+
value="snyk-gradle.sarif"
|
|
147
|
+
elif [ "${INPUT_SARIF}" = "Snyk Hex (Error: 1)" ]; then
|
|
148
|
+
value="snyk-hex.sarif"
|
|
149
|
+
elif [ "${INPUT_SARIF}" = "Snyk Maven (Error: 3, Warning: 1)" ]; then
|
|
150
|
+
value="snyk-maven.sarif"
|
|
151
|
+
elif [ "${INPUT_SARIF}" = "Snyk NPM (Error: 6, Warning: 6, Note: 2)" ]; then
|
|
152
|
+
value="snyk-npm.sarif"
|
|
153
|
+
elif [ "${INPUT_SARIF}" = "Snyk Nuget (Error: 1)" ]; then
|
|
154
|
+
value="snyk-nuget.sarif"
|
|
155
|
+
elif [ "${INPUT_SARIF}" = "Snyk Pip (Warning: 1)" ]; then
|
|
156
|
+
value="snyk-pip.sarif"
|
|
157
|
+
elif [ "${INPUT_SARIF}" = "Snyk PNPM (Error: 1)" ]; then
|
|
158
|
+
value="snyk-pnpm.sarif"
|
|
159
|
+
elif [ "${INPUT_SARIF}" = "Snyk Poetry (Error: 6, Warning: 21, Note: 2)" ]; then
|
|
160
|
+
value="snyk-poetry.sarif"
|
|
161
|
+
elif [ "${INPUT_SARIF}" = "Snyk Rubygems (Error: 1, Warning: 5)" ]; then
|
|
162
|
+
value="snyk-rubygems.sarif"
|
|
163
|
+
elif [ "${INPUT_SARIF}" = "Snyk Sbt (Error: 2, Warning: 1)" ]; then
|
|
164
|
+
value="snyk-sbt.sarif"
|
|
165
|
+
elif [ "${INPUT_SARIF}" = "Snyk Swift (Warning: 2)" ]; then
|
|
166
|
+
value="snyk-swift.sarif"
|
|
167
|
+
elif [ "${INPUT_SARIF}" = "Snyk Yarn (Error: 30, Warning: 16, Note: 3)" ]; then
|
|
168
|
+
value="snyk-yarn.sarif"
|
|
169
|
+
elif [ "${INPUT_SARIF}" = "Trivy IaC (Error: 1, Note: 1)" ]; then
|
|
170
|
+
value="trivy-iac.sarif"
|
|
171
|
+
elif [ "${INPUT_SARIF}" = "Wiz Container (Error: 12, Warning: 369, Note: 191)" ]; then
|
|
172
|
+
value="wiz-container.sarif"
|
|
173
|
+
elif [ "${INPUT_SARIF}" = "Wiz IaC (Warning: 5, Note: 5)" ]; then
|
|
174
|
+
value="wiz-iac.sarif"
|
|
175
|
+
elif [ "${INPUT_SARIF}" = "Runs: 1, Tools: 1, Results: 0" ]; then
|
|
176
|
+
value="runs-1-tools-1-results-0.sarif"
|
|
177
|
+
elif [ "${INPUT_SARIF}" = "Runs: 2, Tools: 1, Results > 0" ]; then
|
|
178
|
+
value="runs-2-tools-1.sarif"
|
|
179
|
+
elif [ "${INPUT_SARIF}" = "Runs: 2, Tools: 1, Results: 0" ]; then
|
|
180
|
+
value="runs-2-tools-1-results-0.sarif"
|
|
181
|
+
elif [ "${INPUT_SARIF}" = "Runs: 2, Tools: 2, Results > 0" ]; then
|
|
182
|
+
value="runs-2-tools-2.sarif"
|
|
183
|
+
elif [ "${INPUT_SARIF}" = "Runs: 2, Tools: 2, Results: 0" ]; then
|
|
184
|
+
value="runs-2-tools-2-results-0.sarif"
|
|
185
|
+
elif [ "${INPUT_SARIF}" = "Runs: 3, Tools: 2, Results > 0" ]; then
|
|
186
|
+
value="runs-3-tools-2.sarif"
|
|
187
|
+
elif [ "${INPUT_SARIF}" = "Runs: 3, Tools: 2, Results: 0" ]; then
|
|
188
|
+
value="runs-3-tools-2-results-0.sarif"
|
|
189
|
+
else
|
|
190
|
+
# All
|
|
191
|
+
value=""
|
|
192
|
+
fi
|
|
193
|
+
echo "value=${value}" >> "$GITHUB_OUTPUT"
|
|
194
|
+
- name: Setup node
|
|
195
|
+
uses: actions/setup-node@v4
|
|
196
|
+
with:
|
|
197
|
+
node-version-file: ".tool-versions"
|
|
198
|
+
- name: Install dependencies
|
|
199
|
+
run: npm ci
|
|
200
|
+
- name: Send message
|
|
201
|
+
env:
|
|
202
|
+
SARIF_TO_SLACK_WEBHOOK_URL: "${{ secrets.TMP_EUGENE_SLACK_WEBHOOK }}"
|
|
203
|
+
SARIF_TO_SLACK_USERNAME: "${{ inputs.username }}"
|
|
204
|
+
SARIF_TO_SLACK_ICON_URL: "https://cdn-icons-png.flaticon.com/512/9070/9070006.png"
|
|
205
|
+
SARIF_TO_SLACK_COLOR: "${{ inputs.color }}"
|
|
206
|
+
SARIF_TO_SLACK_SARIF_FILE_NAME: "${{ steps.sarif-file.outputs.value }}"
|
|
207
|
+
SARIF_TO_SLACK_LOG_LEVEL: "${{ inputs.log-level }}"
|
|
208
|
+
SARIF_TO_SLACK_HEADER: "${{ inputs.header }}"
|
|
209
|
+
SARIF_TO_SLACK_FOOTER: "${{ inputs.footer }}"
|
|
210
|
+
SARIF_TO_SLACK_ACTOR: "${{ inputs.actor }}"
|
|
211
|
+
SARIF_TO_SLACK_INCLUDE_RUN: "${{ inputs.include-run }}"
|
|
212
|
+
SARIF_TO_SLACK_GROUP_BY: "${{ inputs.group-by}}"
|
|
213
|
+
SARIF_TO_SLACK_CALCULATE_BY: "${{ inputs.calculate-by}}"
|
|
214
|
+
run: npm run test:integration
|
package/.pre-commit-config.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
default_install_hook_types: ["pre-commit", "pre-push"]
|
|
3
3
|
default_stages: ["pre-commit", "pre-push"]
|
|
4
|
-
exclude: ^(dist/.*|etc/.*|
|
|
4
|
+
exclude: ^(dist/.*|etc/.*|node_modules/.*|temp/.*|test-data/.*)$
|
|
5
5
|
minimum_pre_commit_version: 4.0.0
|
|
6
6
|
repos:
|
|
7
7
|
- repo: local
|
|
@@ -40,7 +40,7 @@ repos:
|
|
|
40
40
|
hooks:
|
|
41
41
|
- id: detect-secrets
|
|
42
42
|
- repo: https://github.com/gitleaks/gitleaks
|
|
43
|
-
rev: v8.
|
|
43
|
+
rev: v8.28.0
|
|
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.0
|
|
63
|
+
rev: v2.1.0
|
|
64
64
|
hooks:
|
|
65
65
|
- id: osv-scanner
|
|
66
66
|
args:
|
package/.tool-versions
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
nodejs 24.
|
|
1
|
+
nodejs 24.4.1
|
package/CONTRIBUTING.md
CHANGED
|
@@ -33,7 +33,7 @@ In short, when you submit code changes, your submissions are understood to be
|
|
|
33
33
|
under the same [MIT License](http://choosealicense.com/licenses/mit/) that covers
|
|
34
34
|
the project. Feel free to contact the maintainers if that's a concern.
|
|
35
35
|
|
|
36
|
-
## Report bugs using [GitHub Issues](https://github.com/fabasoad/sarif-to-slack
|
|
36
|
+
## Report bugs using [GitHub Issues](https://github.com/fabasoad/sarif-to-slack/issues)
|
|
37
37
|
|
|
38
38
|
We use GitHub issues to track public bugs. Report a bug by opening a new issue.
|
|
39
39
|
It's that easy!
|
package/Makefile
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
.PHONY: audit
|
|
4
4
|
audit:
|
|
5
|
-
@npm audit --
|
|
5
|
+
@npm audit --audit-level moderate --package-lock-only --include dev
|
|
6
6
|
|
|
7
7
|
.PHONY: build
|
|
8
8
|
build:
|
|
@@ -26,10 +26,17 @@ reinstall:
|
|
|
26
26
|
lint:
|
|
27
27
|
@npm run lint
|
|
28
28
|
|
|
29
|
-
.PHONY: test
|
|
30
|
-
test:
|
|
29
|
+
.PHONY: test/integration
|
|
30
|
+
test/integration:
|
|
31
|
+
@npm run test:integration
|
|
32
|
+
|
|
33
|
+
.PHONY: test/unit
|
|
34
|
+
test/unit:
|
|
31
35
|
@npm run test
|
|
32
36
|
|
|
37
|
+
.PHONY: test
|
|
38
|
+
test: test/unit
|
|
39
|
+
|
|
33
40
|
.PHONY: npm/update
|
|
34
41
|
npm/update:
|
|
35
42
|
@npm update
|
package/README.md
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
# SARIF to Slack TypeScript Library
|
|
2
2
|
|
|
3
3
|
[](https://stand-with-ukraine.pp.ua)
|
|
4
|
-

|
|
5
|
+

|
|
6
|
+

|
|
7
|
+

|
|
8
|
+
[](https://codecov.io/github/fabasoad/sarif-to-slack)
|
|
9
9
|
|
|
10
10
|
TypeScript library to send results of SARIF file to Slack webhook URL.
|
|
11
11
|
|
|
@@ -16,19 +16,50 @@ TypeScript library to send results of SARIF file to Slack webhook URL.
|
|
|
16
16
|
* [Contents](#contents)
|
|
17
17
|
* [How to use](#how-to-use)
|
|
18
18
|
* [Sample](#sample)
|
|
19
|
+
* [References](#references)
|
|
19
20
|
* [Contributions](#contributions)
|
|
20
21
|
<!-- TOC -->
|
|
21
22
|
|
|
22
23
|
## How to use
|
|
23
24
|
|
|
24
25
|
```typescript
|
|
26
|
+
import { SarifToSlackService, FooterType } from '@fabasoad/sarif-to-slack';
|
|
25
27
|
|
|
28
|
+
const service = await SarifToSlackService.create({
|
|
29
|
+
webhookUrl: 'https://hooks.slack.com/services/your/webhook/url',
|
|
30
|
+
sarifPath: 'path/to/your/sarif/file.sarif',
|
|
31
|
+
logLevel: 'info',
|
|
32
|
+
username: 'SARIF Bot',
|
|
33
|
+
iconUrl: 'https://example.com/icon.png',
|
|
34
|
+
color: '#36a64f',
|
|
35
|
+
header: {
|
|
36
|
+
include: true,
|
|
37
|
+
value: 'SARIF Analysis Results',
|
|
38
|
+
},
|
|
39
|
+
footer: {
|
|
40
|
+
include: true,
|
|
41
|
+
type: FooterType.PLAIN_TEXT,
|
|
42
|
+
value: 'Generated by @fabasoad/sarif-to-slack',
|
|
43
|
+
},
|
|
44
|
+
actor: {
|
|
45
|
+
include: true,
|
|
46
|
+
value: 'fabasoad',
|
|
47
|
+
},
|
|
48
|
+
run: {
|
|
49
|
+
include: true,
|
|
50
|
+
},
|
|
51
|
+
});
|
|
52
|
+
await service.sendAll();
|
|
26
53
|
```
|
|
27
54
|
|
|
28
55
|
## Sample
|
|
29
56
|
|
|
30
57
|
<img alt="Sample" src="sample.png" width="450"/>
|
|
31
58
|
|
|
59
|
+
## References
|
|
60
|
+
|
|
61
|
+
* [API Report](./etc/sarif-to-slack.api.md)
|
|
62
|
+
|
|
32
63
|
## Contributions
|
|
33
64
|
|
|
34
65
|

|
package/biome.json
CHANGED
|
@@ -3,12 +3,12 @@
|
|
|
3
3
|
"enabled": true,
|
|
4
4
|
"rules": {
|
|
5
5
|
"recommended": false,
|
|
6
|
-
"a11y":
|
|
6
|
+
"a11y": "off",
|
|
7
7
|
"complexity": {
|
|
8
|
+
"noAdjacentSpacesInRegex": "error",
|
|
9
|
+
"noArguments": "error",
|
|
8
10
|
"noExtraBooleanCast": "error",
|
|
9
|
-
"
|
|
10
|
-
"noUselessCatch": "error",
|
|
11
|
-
"noWith": "error"
|
|
11
|
+
"noUselessCatch": "error"
|
|
12
12
|
},
|
|
13
13
|
"correctness": {
|
|
14
14
|
"noChildrenProp": "error",
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
"noGlobalObjectCalls": "error",
|
|
20
20
|
"noInnerDeclarations": "error",
|
|
21
21
|
"noInvalidConstructorSuper": "error",
|
|
22
|
-
"
|
|
22
|
+
"noInvalidBuiltinInstantiation": "error",
|
|
23
23
|
"noNonoctalDecimalEscape": "error",
|
|
24
24
|
"noPrecisionLoss": "error",
|
|
25
25
|
"noSelfAssign": "error",
|
|
@@ -35,12 +35,14 @@
|
|
|
35
35
|
"useIsNan": "error",
|
|
36
36
|
"useJsxKeyInIterable": "error",
|
|
37
37
|
"useValidForDirection": "error",
|
|
38
|
+
"useValidTypeof": "error",
|
|
38
39
|
"useYield": "error"
|
|
39
40
|
},
|
|
40
|
-
"security": {
|
|
41
|
+
"security": {
|
|
42
|
+
"noBlankTarget": "error",
|
|
43
|
+
"noDangerouslySetInnerHtml": "error"
|
|
44
|
+
},
|
|
41
45
|
"style": {
|
|
42
|
-
"noArguments": "error",
|
|
43
|
-
"noVar": "error",
|
|
44
46
|
"useBlockStatements": "error",
|
|
45
47
|
"useConst": "error",
|
|
46
48
|
"useSingleVarDeclarator": "error"
|
|
@@ -67,15 +69,16 @@
|
|
|
67
69
|
"noPrototypeBuiltins": "error",
|
|
68
70
|
"noRedeclare": "error",
|
|
69
71
|
"noShadowRestrictedNames": "error",
|
|
72
|
+
"noVar": "error",
|
|
73
|
+
"noWith": "error",
|
|
70
74
|
"noUnsafeNegation": "error",
|
|
71
|
-
"useGetterReturn": "error"
|
|
72
|
-
"useValidTypeof": "error"
|
|
75
|
+
"useGetterReturn": "error"
|
|
73
76
|
}
|
|
74
77
|
},
|
|
75
|
-
"
|
|
78
|
+
"includes": ["src/**", "tests/**"]
|
|
76
79
|
},
|
|
77
80
|
"javascript": {
|
|
78
81
|
"globals": ["Atomics", "SharedArrayBuffer", "jest", "afterEach", "beforeAll", "beforeEach", "expect", "test", "describe"]
|
|
79
82
|
},
|
|
80
|
-
"overrides": [{ "
|
|
83
|
+
"overrides": [{ "includes": ["**/*.spec.ts", "**/*.spec.tsx"] }]
|
|
81
84
|
}
|
package/dist/Logger.js
CHANGED
|
@@ -5,19 +5,30 @@ import { LogLevel } from './types';
|
|
|
5
5
|
* @internal
|
|
6
6
|
*/
|
|
7
7
|
export default class Logger {
|
|
8
|
-
static
|
|
9
|
-
static
|
|
8
|
+
static DEFAULT_LOG_LEVEL = LogLevel.Info;
|
|
9
|
+
static DEFAULT_LOG_TEMPLATE = '[{{logLevelName}}] [{{name}}] {{dateIsoStr}} ';
|
|
10
|
+
static DEFAULT_LOG_COLORED = true;
|
|
11
|
+
static instance;
|
|
12
|
+
static initialize(opts) {
|
|
10
13
|
if (!Logger.instance) {
|
|
11
14
|
Logger.instance = new TSLogger({
|
|
12
|
-
|
|
15
|
+
name: '@fabasoad/sarif-to-slack',
|
|
16
|
+
minLevel: process.env.ACTIONS_STEP_DEBUG === 'true' ? LogLevel.Silly : (opts?.level ?? Logger.DEFAULT_LOG_LEVEL),
|
|
17
|
+
type: 'pretty',
|
|
18
|
+
prettyLogTimeZone: 'UTC',
|
|
19
|
+
prettyLogTemplate: opts?.template ?? Logger.DEFAULT_LOG_TEMPLATE,
|
|
20
|
+
stylePrettyLogs: opts?.colored ?? Logger.DEFAULT_LOG_COLORED,
|
|
13
21
|
});
|
|
14
22
|
}
|
|
15
23
|
}
|
|
24
|
+
static warn(...args) {
|
|
25
|
+
Logger.instance.warn(...args);
|
|
26
|
+
}
|
|
16
27
|
static info(...args) {
|
|
17
|
-
Logger.instance.info(args);
|
|
28
|
+
Logger.instance.info(...args);
|
|
18
29
|
}
|
|
19
30
|
static debug(...args) {
|
|
20
|
-
Logger.instance.debug(args);
|
|
31
|
+
Logger.instance.debug(...args);
|
|
21
32
|
}
|
|
22
33
|
}
|
|
23
|
-
//# sourceMappingURL=
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTG9nZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL0xvZ2dlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQVcsTUFBTSxJQUFJLFFBQVEsRUFBRSxNQUFNLE9BQU8sQ0FBQTtBQUNuRCxPQUFPLEVBQUUsUUFBUSxFQUFjLE1BQU0sU0FBUyxDQUFBO0FBRTlDOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxPQUFPLE9BQU8sTUFBTTtJQUNqQixNQUFNLENBQUMsaUJBQWlCLEdBQWEsUUFBUSxDQUFDLElBQUksQ0FBQTtJQUNsRCxNQUFNLENBQUMsb0JBQW9CLEdBQVcsK0NBQStDLENBQUE7SUFDckYsTUFBTSxDQUFDLG1CQUFtQixHQUFZLElBQUksQ0FBQTtJQUUxQyxNQUFNLENBQUMsUUFBUSxDQUFtQjtJQUVuQyxNQUFNLENBQUMsVUFBVSxDQUFDLElBQWlCO1FBQ3hDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDckIsTUFBTSxDQUFDLFFBQVEsR0FBRyxJQUFJLFFBQVEsQ0FBQztnQkFDN0IsSUFBSSxFQUFFLDBCQUEwQjtnQkFDaEMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsa0JBQWtCLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxLQUFLLElBQUksTUFBTSxDQUFDLGlCQUFpQixDQUFDO2dCQUNoSCxJQUFJLEVBQUUsUUFBUTtnQkFDZCxpQkFBaUIsRUFBRSxLQUFLO2dCQUN4QixpQkFBaUIsRUFBRSxJQUFJLEVBQUUsUUFBUSxJQUFJLE1BQU0sQ0FBQyxvQkFBb0I7Z0JBQ2hFLGVBQWUsRUFBRSxJQUFJLEVBQUUsT0FBTyxJQUFJLE1BQU0sQ0FBQyxtQkFBbUI7YUFDN0QsQ0FBQyxDQUFBO1FBQ0osQ0FBQztJQUNILENBQUM7SUFFTSxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBZTtRQUNuQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFBO0lBQy9CLENBQUM7SUFFTSxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBZTtRQUNuQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFBO0lBQy9CLENBQUM7SUFFTSxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBZTtRQUNwQyxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFBO0lBQ2hDLENBQUMifQ==
|
package/dist/Processors.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import * as fs from 'fs';
|
|
2
2
|
import * as path from 'path';
|
|
3
3
|
import Logger from './Logger';
|
|
4
|
+
import { LogLevel } from './types';
|
|
4
5
|
/**
|
|
5
6
|
* Processes a color string and converts it to a specific hex code if it matches
|
|
6
7
|
* a CI status identifier.
|
|
@@ -25,7 +26,7 @@ export function processColor(color) {
|
|
|
25
26
|
Logger.info(`Converting "${color}" to #808080`);
|
|
26
27
|
return '#808080';
|
|
27
28
|
default:
|
|
28
|
-
Logger.debug(`"${color}" color is not a CI status identifier. Returning as is
|
|
29
|
+
Logger.debug(`"${color}" color is not a CI status identifier. Returning as is.`);
|
|
29
30
|
return color;
|
|
30
31
|
}
|
|
31
32
|
}
|
|
@@ -37,27 +38,27 @@ export function processColor(color) {
|
|
|
37
38
|
* @internal
|
|
38
39
|
*/
|
|
39
40
|
export function processLogLevel(logLevel) {
|
|
40
|
-
if (
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
41
|
+
if (!logLevel) {
|
|
42
|
+
return undefined;
|
|
43
|
+
}
|
|
44
|
+
switch (logLevel.toLowerCase()) {
|
|
45
|
+
case 'silly':
|
|
46
|
+
return LogLevel.Silly;
|
|
47
|
+
case 'trace':
|
|
48
|
+
return LogLevel.Trace;
|
|
49
|
+
case 'debug':
|
|
50
|
+
return LogLevel.Debug;
|
|
51
|
+
case 'info':
|
|
52
|
+
return LogLevel.Info;
|
|
53
|
+
case 'warning':
|
|
54
|
+
return LogLevel.Warning;
|
|
55
|
+
case 'error':
|
|
56
|
+
return LogLevel.Error;
|
|
57
|
+
case 'fatal':
|
|
58
|
+
return LogLevel.Fatal;
|
|
59
|
+
default:
|
|
60
|
+
throw new Error(`Unknown log level: ${logLevel}`);
|
|
59
61
|
}
|
|
60
|
-
return logLevel;
|
|
61
62
|
}
|
|
62
63
|
/**
|
|
63
64
|
* Processes the SARIF path, which can be a file or a directory. If it's a
|
|
@@ -88,4 +89,4 @@ export function processSarifPath(sarifPath) {
|
|
|
88
89
|
}
|
|
89
90
|
throw new Error(`"sarif-path" is neither a file nor a directory: ${sarifPath}`);
|
|
90
91
|
}
|
|
91
|
-
//# sourceMappingURL=
|
|
92
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUHJvY2Vzc29ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9Qcm9jZXNzb3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLE1BQU0sSUFBSSxDQUFBO0FBQ3hCLE9BQU8sS0FBSyxJQUFJLE1BQU0sTUFBTSxDQUFBO0FBQzVCLE9BQU8sTUFBTSxNQUFNLFVBQVUsQ0FBQTtBQUM3QixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sU0FBUyxDQUFBO0FBRWxDOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxVQUFVLFlBQVksQ0FBQyxLQUFjO0lBQ3pDLFFBQVEsS0FBSyxFQUFFLENBQUM7UUFDZCxLQUFLLFNBQVM7WUFDWixNQUFNLENBQUMsSUFBSSxDQUFDLGVBQWUsS0FBSyxjQUFjLENBQUMsQ0FBQTtZQUMvQyxPQUFPLFNBQVMsQ0FBQTtRQUNsQixLQUFLLFNBQVM7WUFDWixNQUFNLENBQUMsSUFBSSxDQUFDLGVBQWUsS0FBSyxjQUFjLENBQUMsQ0FBQTtZQUMvQyxPQUFPLFNBQVMsQ0FBQTtRQUNsQixLQUFLLFdBQVc7WUFDZCxNQUFNLENBQUMsSUFBSSxDQUFDLGVBQWUsS0FBSyxjQUFjLENBQUMsQ0FBQTtZQUMvQyxPQUFPLFNBQVMsQ0FBQTtRQUNsQixLQUFLLFNBQVM7WUFDWixNQUFNLENBQUMsSUFBSSxDQUFDLGVBQWUsS0FBSyxjQUFjLENBQUMsQ0FBQTtZQUMvQyxPQUFPLFNBQVMsQ0FBQTtRQUNsQjtZQUNFLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLHlEQUF5RCxDQUFDLENBQUE7WUFDaEYsT0FBTyxLQUFLLENBQUE7SUFDaEIsQ0FBQztBQUNILENBQUM7QUFFRDs7Ozs7O0dBTUc7QUFDSCxNQUFNLFVBQVUsZUFBZSxDQUFDLFFBQWlCO0lBQy9DLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNkLE9BQU8sU0FBUyxDQUFBO0lBQ2xCLENBQUM7SUFDRCxRQUFRLFFBQVEsQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDO1FBQy9CLEtBQUssT0FBTztZQUNWLE9BQU8sUUFBUSxDQUFDLEtBQUssQ0FBQTtRQUN2QixLQUFLLE9BQU87WUFDVixPQUFPLFFBQVEsQ0FBQyxLQUFLLENBQUE7UUFDdkIsS0FBSyxPQUFPO1lBQ1YsT0FBTyxRQUFRLENBQUMsS0FBSyxDQUFBO1FBQ3ZCLEtBQUssTUFBTTtZQUNULE9BQU8sUUFBUSxDQUFDLElBQUksQ0FBQTtRQUN0QixLQUFLLFNBQVM7WUFDWixPQUFPLFFBQVEsQ0FBQyxPQUFPLENBQUE7UUFDekIsS0FBSyxPQUFPO1lBQ1YsT0FBTyxRQUFRLENBQUMsS0FBSyxDQUFBO1FBQ3ZCLEtBQUssT0FBTztZQUNWLE9BQU8sUUFBUSxDQUFDLEtBQUssQ0FBQTtRQUN2QjtZQUNFLE1BQU0sSUFBSSxLQUFLLENBQUMsc0JBQXNCLFFBQVEsRUFBRSxDQUFDLENBQUE7SUFDckQsQ0FBQztBQUNILENBQUM7QUFFRDs7Ozs7Ozs7O0dBU0c7QUFDSCxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsU0FBaUI7SUFDaEQsSUFBSSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztRQUM5QixNQUFNLElBQUksS0FBSyxDQUFDLGdDQUFnQyxTQUFTLEVBQUUsQ0FBQyxDQUFBO0lBQzlELENBQUM7SUFFRCxNQUFNLFVBQVUsR0FBYSxFQUFFLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFBO0lBRW5ELElBQUksVUFBVSxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUM7UUFDN0IsTUFBTSxDQUFDLElBQUksQ0FBQyxnQ0FBZ0MsU0FBUyxFQUFFLENBQUMsQ0FBQTtRQUN4RCxNQUFNLEtBQUssR0FBYSxFQUFFLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFBO1FBQ2pELE1BQU0sYUFBYSxHQUFhLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFZLEVBQUUsRUFBRSxDQUM1RCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLFdBQVcsRUFBRSxLQUFLLFFBQVEsQ0FDOUMsQ0FBQTtRQUNELE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxhQUFhLENBQUMsTUFBTSxtQkFBbUIsU0FBUyxZQUFZLENBQUMsQ0FBQTtRQUNsRixNQUFNLENBQUMsS0FBSyxDQUFDLHlCQUF5QixhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQTtRQUNqRSxPQUFPLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFZLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUE7SUFDeEUsQ0FBQztJQUVELElBQUksVUFBVSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUM7UUFDeEIsTUFBTSxDQUFDLElBQUksQ0FBQywyQkFBMkIsU0FBUyxFQUFFLENBQUMsQ0FBQTtRQUNuRCxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUE7SUFDcEIsQ0FBQztJQUVELE1BQU0sSUFBSSxLQUFLLENBQUMsbURBQW1ELFNBQVMsRUFBRSxDQUFDLENBQUE7QUFDakYsQ0FBQyJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SarifToSlackService.d.ts","sourceRoot":"","sources":["../src/SarifToSlackService.ts"],"names":[],"mappings":"AAIA,OAAO,EAEL,0BAA0B,EAC1B,YAAY,EACb,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"SarifToSlackService.d.ts","sourceRoot":"","sources":["../src/SarifToSlackService.ts"],"names":[],"mappings":"AAIA,OAAO,EAEL,0BAA0B,EAC1B,YAAY,EACb,MAAM,SAAS,CAAA;AAoChB;;;GAGG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA4B;IAE3D,OAAO;IAIP;;;;OAIG;IACH,IAAW,aAAa,IAAI,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC,CAE5D;IAED;;;;;;OAMG;WACiB,MAAM,CAAC,IAAI,EAAE,0BAA0B,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAQ1F;;;;;OAKG;IACU,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAMrC;;;;;;OAMG;IACU,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAQpD"}
|