@security-alert/sarif-to-markdown 1.7.0 → 1.9.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.
|
@@ -33,6 +33,10 @@ export declare type sarifFormatterOptions = {
|
|
|
33
33
|
* Should the markdown include suppressed findings, defaults to true
|
|
34
34
|
*/
|
|
35
35
|
suppressedResults?: boolean;
|
|
36
|
+
/**
|
|
37
|
+
* Should the markdown include rule details or tool details at all
|
|
38
|
+
*/
|
|
39
|
+
simple?: boolean;
|
|
36
40
|
};
|
|
37
41
|
declare type sarifToMarkdownResult = {
|
|
38
42
|
title?: string;
|
package/lib/sarif-to-markdown.js
CHANGED
|
@@ -26,6 +26,19 @@ function escapeMarkdown(strings) {
|
|
|
26
26
|
}
|
|
27
27
|
});
|
|
28
28
|
}
|
|
29
|
+
function createRuleInfo(run) {
|
|
30
|
+
var _a, _b;
|
|
31
|
+
return escapeMarkdown(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n## Rules information\n<!-- Rule Info -->\n<details><summary>Rules details</summary>\n", ""], ["\n## Rules information\n<!-- Rule Info -->\n<details><summary>Rules details</summary>\n", ""])), (_b = (_a = run.tool.driver) === null || _a === void 0 ? void 0 : _a.rules) === null || _b === void 0 ? void 0 : _b.map(function (rule) {
|
|
32
|
+
var _a, _b;
|
|
33
|
+
var severity = rule.properties ? (_a = rule.properties) === null || _a === void 0 ? void 0 : _a["problem.severity"] : "";
|
|
34
|
+
// rule description
|
|
35
|
+
return "\n\n - ".concat(rule.id, " [").concat(severity, "] \n\n > ").concat((_b = rule.shortDescription) === null || _b === void 0 ? void 0 : _b.text, "\n");
|
|
36
|
+
}));
|
|
37
|
+
}
|
|
38
|
+
function createToolInfo(run) {
|
|
39
|
+
var _a, _b, _c;
|
|
40
|
+
return "\n## Tool information\n- Name: ".concat((_a = run.tool.driver) === null || _a === void 0 ? void 0 : _a.name, "\n- Organization: ").concat((_b = run.tool.driver) === null || _b === void 0 ? void 0 : _b.organization, "\n- Version: ").concat((_c = run.tool.driver) === null || _c === void 0 ? void 0 : _c.semanticVersion, "\n");
|
|
41
|
+
}
|
|
29
42
|
var createCodeURL = function (result, options) {
|
|
30
43
|
var _a, _b;
|
|
31
44
|
var githubHost = (_a = options.githubHost) !== null && _a !== void 0 ? _a : "https://github.com";
|
|
@@ -59,44 +72,79 @@ function groupBy(arr, criteria) {
|
|
|
59
72
|
}, {});
|
|
60
73
|
return [newObj];
|
|
61
74
|
}
|
|
75
|
+
function createGroupedResultsMarkdown(groupedResults, run, options) {
|
|
76
|
+
var _a, _b, _c, _d;
|
|
77
|
+
var groupedResultsMarkdown = "";
|
|
78
|
+
for (var _i = 0, groupedResults_1 = groupedResults; _i < groupedResults_1.length; _i++) {
|
|
79
|
+
var group = groupedResults_1[_i];
|
|
80
|
+
var _loop_1 = function (r) {
|
|
81
|
+
var ruleId = group[r][0].ruleId;
|
|
82
|
+
var ruleMatch = run.tool.driver.rules.filter(function (r) {
|
|
83
|
+
return r.id == ruleId;
|
|
84
|
+
});
|
|
85
|
+
var severityLevel = (_c = (_b = (_a = ruleMatch[0].defaultConfiguration) === null || _a === void 0 ? void 0 : _a.level) === null || _b === void 0 ? void 0 : _b.toUpperCase()) !== null && _c !== void 0 ? _c : "";
|
|
86
|
+
var helpUri = (_d = "[[HELP LINK](" + ruleMatch[0].helpUri + ")]") !== null && _d !== void 0 ? _d : "";
|
|
87
|
+
groupedResultsMarkdown +=
|
|
88
|
+
"- **".concat("[" + severityLevel + "]** **[" + r + "]** " + helpUri, " `").concat(group[r][0] ? (0, markdown_escape_1.default)(group[r][0].message.text) : "", "`") + "\n";
|
|
89
|
+
for (var _e = 0, _f = group[r]; _e < _f.length; _e++) {
|
|
90
|
+
var result = _f[_e];
|
|
91
|
+
var properResult = result;
|
|
92
|
+
if (properResult.suppressions === undefined) {
|
|
93
|
+
groupedResultsMarkdown += " - " + createCodeURL(result, options) + "\n";
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
};
|
|
97
|
+
for (var r in group) {
|
|
98
|
+
_loop_1(r);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
return groupedResultsMarkdown;
|
|
102
|
+
}
|
|
103
|
+
function createGroupedSuppressedResultsMarkdown(groupedResults, run, options) {
|
|
104
|
+
var _a, _b, _c, _d;
|
|
105
|
+
var groupedSuppressedResultsMD = "";
|
|
106
|
+
var suppressedCounter = 0;
|
|
107
|
+
for (var _i = 0, groupedResults_2 = groupedResults; _i < groupedResults_2.length; _i++) {
|
|
108
|
+
var group = groupedResults_2[_i];
|
|
109
|
+
var _loop_2 = function (r) {
|
|
110
|
+
var groupContainsSuppressed = group[r].filter(function (r) { return r.suppressions !== undefined; }).length > 0;
|
|
111
|
+
if (groupContainsSuppressed) {
|
|
112
|
+
var ruleId_1 = group[r][0].ruleId;
|
|
113
|
+
var ruleMatch = run.tool.driver.rules.filter(function (r) {
|
|
114
|
+
return r.id == ruleId_1;
|
|
115
|
+
});
|
|
116
|
+
var helpUri = (_a = "[[HELP LINK](" + ruleMatch[0].helpUri + ")]") !== null && _a !== void 0 ? _a : "";
|
|
117
|
+
var severityLevel = (_d = (_c = (_b = ruleMatch[0].defaultConfiguration) === null || _b === void 0 ? void 0 : _b.level) === null || _c === void 0 ? void 0 : _c.toUpperCase()) !== null && _d !== void 0 ? _d : "";
|
|
118
|
+
groupedSuppressedResultsMD +=
|
|
119
|
+
"- **".concat("[" + severityLevel + "]** **[" + r + "]** " + helpUri, " `").concat(group[r][0] ? (0, markdown_escape_1.default)(group[r][0].message.text) : "", "`") + "\n";
|
|
120
|
+
for (var _e = 0, _f = group[r]; _e < _f.length; _e++) {
|
|
121
|
+
var result = _f[_e];
|
|
122
|
+
var properResult = result;
|
|
123
|
+
if (properResult.suppressions !== undefined) {
|
|
124
|
+
suppressedCounter += 1;
|
|
125
|
+
groupedSuppressedResultsMD += " - " + createCodeURL(result, options) + "\n";
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
};
|
|
130
|
+
for (var r in group) {
|
|
131
|
+
_loop_2(r);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
return { groupedSuppressedResultsMD: groupedSuppressedResultsMD, suppressedCounter: suppressedCounter };
|
|
135
|
+
}
|
|
62
136
|
var sarifToMarkdown = function (options) {
|
|
63
137
|
var suppressedResultsFlag = options.suppressedResults !== undefined ? options.suppressedResults : true;
|
|
138
|
+
var simpleMode = options.simple !== undefined ? options.simple : false;
|
|
64
139
|
return function (sarifLog) {
|
|
65
140
|
return sarifLog.runs.map(function (run) {
|
|
66
|
-
var _a, _b
|
|
141
|
+
var _a, _b;
|
|
67
142
|
var title = options.title ? "# ".concat(options.title, "\n") : "# Report";
|
|
68
|
-
var toolInfo =
|
|
69
|
-
|
|
70
|
-
// Rule info
|
|
71
|
-
// Vulnerability info
|
|
72
|
-
// ## Results
|
|
73
|
-
// Result(s)
|
|
74
|
-
/**
|
|
75
|
-
* # Rule Info
|
|
76
|
-
*/
|
|
77
|
-
var ruleInfo = escapeMarkdown(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n## Rules information\n<!-- Rule Info -->\n<details><summary>Rules details</summary>\n\n", "\n "], ["\n## Rules information\n<!-- Rule Info -->\n<details><summary>Rules details</summary>\n\n", "\n "])), (_e = (_d = run.tool.driver) === null || _d === void 0 ? void 0 : _d.rules) === null || _e === void 0 ? void 0 : _e.map(function (rule) {
|
|
78
|
-
var _a, _b;
|
|
79
|
-
var severity = rule.properties ? (_a = rule.properties) === null || _a === void 0 ? void 0 : _a["problem.severity"] : "";
|
|
80
|
-
// rule description
|
|
81
|
-
return "\n - ".concat(rule.id, " [").concat(severity, "] \n\n > ").concat((_b = rule.shortDescription) === null || _b === void 0 ? void 0 : _b.text, "\n");
|
|
82
|
-
}));
|
|
143
|
+
var toolInfo = simpleMode ? "" : createToolInfo(run);
|
|
144
|
+
var ruleInfo = simpleMode ? "" : createRuleInfo(run);
|
|
83
145
|
var ruleDetails = "<details><summary>Details</summary>\n<pre>".concat(JSON.stringify(run.tool, null, 4), "</pre></details>\n");
|
|
84
146
|
var groupedResults = groupBy(run.results, "ruleId");
|
|
85
|
-
var groupedResultsMarkdown =
|
|
86
|
-
for (var _i = 0, groupedResults_1 = groupedResults; _i < groupedResults_1.length; _i++) {
|
|
87
|
-
var group = groupedResults_1[_i];
|
|
88
|
-
for (var r in group) {
|
|
89
|
-
groupedResultsMarkdown +=
|
|
90
|
-
"- **".concat(r, "**: ").concat(group[r][0] ? (0, markdown_escape_1.default)(group[r][0].message.text) : "") + "\n";
|
|
91
|
-
for (var _h = 0, _j = group[r]; _h < _j.length; _h++) {
|
|
92
|
-
var result = _j[_h];
|
|
93
|
-
var properResult = result;
|
|
94
|
-
if (properResult.suppressions === undefined) {
|
|
95
|
-
groupedResultsMarkdown += " - " + createCodeURL(result, options) + "\n";
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
}
|
|
147
|
+
var groupedResultsMarkdown = createGroupedResultsMarkdown(groupedResults, run, options);
|
|
100
148
|
/* Results
|
|
101
149
|
- rule id
|
|
102
150
|
- message
|
|
@@ -105,34 +153,15 @@ var sarifToMarkdown = function (options) {
|
|
|
105
153
|
If pass the scan, results is empty array
|
|
106
154
|
*/
|
|
107
155
|
var results = run.results && run.results.length > 0
|
|
108
|
-
? "\n## Results\n".concat(groupedResultsMarkdown)
|
|
109
|
-
: "\n## Results\n\
|
|
110
|
-
var groupedSuppressedResultsMD =
|
|
111
|
-
var suppressedCounter = 0;
|
|
112
|
-
for (var _k = 0, groupedResults_2 = groupedResults; _k < groupedResults_2.length; _k++) {
|
|
113
|
-
var group = groupedResults_2[_k];
|
|
114
|
-
for (var r in group) {
|
|
115
|
-
var groupContainsSuppressed = group[r].filter(function (r) { return r.suppressions !== undefined; }).length > 0;
|
|
116
|
-
if (groupContainsSuppressed) {
|
|
117
|
-
groupedSuppressedResultsMD +=
|
|
118
|
-
"- **".concat(r, "**: ").concat(group[r][0] ? (0, markdown_escape_1.default)(group[r][0].message.text) : "") + "\n";
|
|
119
|
-
for (var _l = 0, _m = group[r]; _l < _m.length; _l++) {
|
|
120
|
-
var result = _m[_l];
|
|
121
|
-
var properResult = result;
|
|
122
|
-
if (properResult.suppressions !== undefined) {
|
|
123
|
-
suppressedCounter += 1;
|
|
124
|
-
groupedSuppressedResultsMD += " - " + createCodeURL(result, options) + "\n";
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
}
|
|
156
|
+
? "\n## Results\n\n".concat(groupedResultsMarkdown, "\n")
|
|
157
|
+
: "\n## Results\n\nNothing here.\n\n";
|
|
158
|
+
var _c = createGroupedSuppressedResultsMarkdown(groupedResults, run, options), groupedSuppressedResultsMD = _c.groupedSuppressedResultsMD, suppressedCounter = _c.suppressedCounter;
|
|
130
159
|
// careful, double ternary... first check if we should include suppressedresults (return empty string)
|
|
131
160
|
// then check if there are results, if none, return default string
|
|
132
161
|
var suppressedResultsText = suppressedResultsFlag
|
|
133
162
|
? run.results && suppressedCounter > 0
|
|
134
163
|
? "\n## Suppressed results\n\n".concat(groupedSuppressedResultsMD, "\n")
|
|
135
|
-
: "\n## Results\n\
|
|
164
|
+
: "\n## Suppressed Results\n\nNothing here.\n\n"
|
|
136
165
|
: "";
|
|
137
166
|
if (options.details) {
|
|
138
167
|
return {
|
|
@@ -145,12 +174,12 @@ var sarifToMarkdown = function (options) {
|
|
|
145
174
|
"\n" +
|
|
146
175
|
ruleDetails +
|
|
147
176
|
toolInfo,
|
|
148
|
-
hasMessages: ((
|
|
177
|
+
hasMessages: ((_a = run.results) === null || _a === void 0 ? void 0 : _a.length) !== 0
|
|
149
178
|
};
|
|
150
179
|
}
|
|
151
180
|
return {
|
|
152
181
|
body: title + results + "\n" + suppressedResultsText + "\n" + ruleInfo + "\n" + toolInfo,
|
|
153
|
-
hasMessages: ((
|
|
182
|
+
hasMessages: ((_b = run.results) === null || _b === void 0 ? void 0 : _b.length) !== 0
|
|
154
183
|
};
|
|
155
184
|
});
|
|
156
185
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sarif-to-markdown.js","sourceRoot":"","sources":["../src/sarif-to-markdown.ts"],"names":[],"mappings":";;;;;;;;;;AACA,aAAa;AACb,oEAAqC;AACrC,sDAA+B;AAE/B,SAAS,cAAc,CAAC,OAA6B;IAAE,gBAAgB;SAAhB,UAAgB,EAAhB,qBAAgB,EAAhB,IAAgB;QAAhB,+BAAgB;;IACnE,OAAO,OAAO,CAAC,MAAM,CAAC,UAAC,MAAM,EAAE,GAAG,EAAE,CAAC;QACjC,IAAM,KAAK,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC5B,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC3B,OAAO,MAAM,GAAG,IAAA,yBAAM,EAAC,KAAK,CAAC,GAAG,GAAG,CAAC;SACvC;aAAM;YACH,OAAO,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC;SACvC;IACL,CAAC,CAAC,CAAC;AACP,CAAC;AAED,IAAM,aAAa,GAAG,UAAC,MAAc,EAAE,OAA8B;;IACjE,IAAM,UAAU,GAAG,MAAA,OAAO,CAAC,UAAU,mCAAI,oBAAoB,CAAC;IAC9D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE;QAClC,OAAO,EAAE,CAAC;KACb;IACD,OAAO,MAAA,MAAM,CAAC,SAAS,0CAAE,OAAO,CAAC,UAAC,QAAa;QAC3C,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE;YAC5B,OAAO,EAAE,CAAC;SACb;QACD,IAAM,gBAAgB,GAAG,QAAQ,CAAC,gBAAgB,CAAC;QACnD,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,EAAE;YACpC,OAAO,EAAE,CAAC;SACb;QACD,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE;YAC1B,OAAO,EAAE,CAAC;SACb;QACD,IAAM,UAAU,GACZ,gBAAgB,CAAC,MAAM,CAAC,OAAO,KAAK,SAAS;YACzC,CAAC,CAAC,WAAI,gBAAgB,CAAC,MAAM,CAAC,SAAS,cAAI,gBAAgB,CAAC,MAAM,CAAC,OAAO,CAAE;YAC5E,CAAC,CAAC,WAAI,gBAAgB,CAAC,MAAM,CAAC,SAAS,CAAE,CAAC;QAClD,OAAO,IAAA,kBAAO,EACV,UAAU,EACV,OAAO,CAAC,KAAK,EACb,OAAO,CAAC,IAAI,EACZ,eAAQ,OAAO,CAAC,MAAM,CAAE,EACxB,OAAO,CAAC,UAAU,EAClB,UAAG,gBAAgB,CAAC,gBAAgB,CAAC,GAAG,cAAI,UAAU,CAAE,CAC3D,CAAC;IACN,CAAC,CAAC,CAAC;AACP,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"sarif-to-markdown.js","sourceRoot":"","sources":["../src/sarif-to-markdown.ts"],"names":[],"mappings":"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"}
|
|
@@ -33,6 +33,10 @@ export declare type sarifFormatterOptions = {
|
|
|
33
33
|
* Should the markdown include suppressed findings, defaults to true
|
|
34
34
|
*/
|
|
35
35
|
suppressedResults?: boolean;
|
|
36
|
+
/**
|
|
37
|
+
* Should the markdown include rule details or tool details at all
|
|
38
|
+
*/
|
|
39
|
+
simple?: boolean;
|
|
36
40
|
};
|
|
37
41
|
declare type sarifToMarkdownResult = {
|
|
38
42
|
title?: string;
|
|
@@ -20,6 +20,19 @@ function escapeMarkdown(strings) {
|
|
|
20
20
|
}
|
|
21
21
|
});
|
|
22
22
|
}
|
|
23
|
+
function createRuleInfo(run) {
|
|
24
|
+
var _a, _b;
|
|
25
|
+
return escapeMarkdown(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n## Rules information\n<!-- Rule Info -->\n<details><summary>Rules details</summary>\n", ""], ["\n## Rules information\n<!-- Rule Info -->\n<details><summary>Rules details</summary>\n", ""])), (_b = (_a = run.tool.driver) === null || _a === void 0 ? void 0 : _a.rules) === null || _b === void 0 ? void 0 : _b.map(function (rule) {
|
|
26
|
+
var _a, _b;
|
|
27
|
+
var severity = rule.properties ? (_a = rule.properties) === null || _a === void 0 ? void 0 : _a["problem.severity"] : "";
|
|
28
|
+
// rule description
|
|
29
|
+
return "\n\n - ".concat(rule.id, " [").concat(severity, "] \n\n > ").concat((_b = rule.shortDescription) === null || _b === void 0 ? void 0 : _b.text, "\n");
|
|
30
|
+
}));
|
|
31
|
+
}
|
|
32
|
+
function createToolInfo(run) {
|
|
33
|
+
var _a, _b, _c;
|
|
34
|
+
return "\n## Tool information\n- Name: ".concat((_a = run.tool.driver) === null || _a === void 0 ? void 0 : _a.name, "\n- Organization: ").concat((_b = run.tool.driver) === null || _b === void 0 ? void 0 : _b.organization, "\n- Version: ").concat((_c = run.tool.driver) === null || _c === void 0 ? void 0 : _c.semanticVersion, "\n");
|
|
35
|
+
}
|
|
23
36
|
var createCodeURL = function (result, options) {
|
|
24
37
|
var _a, _b;
|
|
25
38
|
var githubHost = (_a = options.githubHost) !== null && _a !== void 0 ? _a : "https://github.com";
|
|
@@ -53,44 +66,79 @@ function groupBy(arr, criteria) {
|
|
|
53
66
|
}, {});
|
|
54
67
|
return [newObj];
|
|
55
68
|
}
|
|
69
|
+
function createGroupedResultsMarkdown(groupedResults, run, options) {
|
|
70
|
+
var _a, _b, _c, _d;
|
|
71
|
+
var groupedResultsMarkdown = "";
|
|
72
|
+
for (var _i = 0, groupedResults_1 = groupedResults; _i < groupedResults_1.length; _i++) {
|
|
73
|
+
var group = groupedResults_1[_i];
|
|
74
|
+
var _loop_1 = function (r) {
|
|
75
|
+
var ruleId = group[r][0].ruleId;
|
|
76
|
+
var ruleMatch = run.tool.driver.rules.filter(function (r) {
|
|
77
|
+
return r.id == ruleId;
|
|
78
|
+
});
|
|
79
|
+
var severityLevel = (_c = (_b = (_a = ruleMatch[0].defaultConfiguration) === null || _a === void 0 ? void 0 : _a.level) === null || _b === void 0 ? void 0 : _b.toUpperCase()) !== null && _c !== void 0 ? _c : "";
|
|
80
|
+
var helpUri = (_d = "[[HELP LINK](" + ruleMatch[0].helpUri + ")]") !== null && _d !== void 0 ? _d : "";
|
|
81
|
+
groupedResultsMarkdown +=
|
|
82
|
+
"- **".concat("[" + severityLevel + "]** **[" + r + "]** " + helpUri, " `").concat(group[r][0] ? escape(group[r][0].message.text) : "", "`") + "\n";
|
|
83
|
+
for (var _e = 0, _f = group[r]; _e < _f.length; _e++) {
|
|
84
|
+
var result = _f[_e];
|
|
85
|
+
var properResult = result;
|
|
86
|
+
if (properResult.suppressions === undefined) {
|
|
87
|
+
groupedResultsMarkdown += " - " + createCodeURL(result, options) + "\n";
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
};
|
|
91
|
+
for (var r in group) {
|
|
92
|
+
_loop_1(r);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
return groupedResultsMarkdown;
|
|
96
|
+
}
|
|
97
|
+
function createGroupedSuppressedResultsMarkdown(groupedResults, run, options) {
|
|
98
|
+
var _a, _b, _c, _d;
|
|
99
|
+
var groupedSuppressedResultsMD = "";
|
|
100
|
+
var suppressedCounter = 0;
|
|
101
|
+
for (var _i = 0, groupedResults_2 = groupedResults; _i < groupedResults_2.length; _i++) {
|
|
102
|
+
var group = groupedResults_2[_i];
|
|
103
|
+
var _loop_2 = function (r) {
|
|
104
|
+
var groupContainsSuppressed = group[r].filter(function (r) { return r.suppressions !== undefined; }).length > 0;
|
|
105
|
+
if (groupContainsSuppressed) {
|
|
106
|
+
var ruleId_1 = group[r][0].ruleId;
|
|
107
|
+
var ruleMatch = run.tool.driver.rules.filter(function (r) {
|
|
108
|
+
return r.id == ruleId_1;
|
|
109
|
+
});
|
|
110
|
+
var helpUri = (_a = "[[HELP LINK](" + ruleMatch[0].helpUri + ")]") !== null && _a !== void 0 ? _a : "";
|
|
111
|
+
var severityLevel = (_d = (_c = (_b = ruleMatch[0].defaultConfiguration) === null || _b === void 0 ? void 0 : _b.level) === null || _c === void 0 ? void 0 : _c.toUpperCase()) !== null && _d !== void 0 ? _d : "";
|
|
112
|
+
groupedSuppressedResultsMD +=
|
|
113
|
+
"- **".concat("[" + severityLevel + "]** **[" + r + "]** " + helpUri, " `").concat(group[r][0] ? escape(group[r][0].message.text) : "", "`") + "\n";
|
|
114
|
+
for (var _e = 0, _f = group[r]; _e < _f.length; _e++) {
|
|
115
|
+
var result = _f[_e];
|
|
116
|
+
var properResult = result;
|
|
117
|
+
if (properResult.suppressions !== undefined) {
|
|
118
|
+
suppressedCounter += 1;
|
|
119
|
+
groupedSuppressedResultsMD += " - " + createCodeURL(result, options) + "\n";
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
};
|
|
124
|
+
for (var r in group) {
|
|
125
|
+
_loop_2(r);
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
return { groupedSuppressedResultsMD: groupedSuppressedResultsMD, suppressedCounter: suppressedCounter };
|
|
129
|
+
}
|
|
56
130
|
export var sarifToMarkdown = function (options) {
|
|
57
131
|
var suppressedResultsFlag = options.suppressedResults !== undefined ? options.suppressedResults : true;
|
|
132
|
+
var simpleMode = options.simple !== undefined ? options.simple : false;
|
|
58
133
|
return function (sarifLog) {
|
|
59
134
|
return sarifLog.runs.map(function (run) {
|
|
60
|
-
var _a, _b
|
|
135
|
+
var _a, _b;
|
|
61
136
|
var title = options.title ? "# ".concat(options.title, "\n") : "# Report";
|
|
62
|
-
var toolInfo =
|
|
63
|
-
|
|
64
|
-
// Rule info
|
|
65
|
-
// Vulnerability info
|
|
66
|
-
// ## Results
|
|
67
|
-
// Result(s)
|
|
68
|
-
/**
|
|
69
|
-
* # Rule Info
|
|
70
|
-
*/
|
|
71
|
-
var ruleInfo = escapeMarkdown(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n## Rules information\n<!-- Rule Info -->\n<details><summary>Rules details</summary>\n\n", "\n "], ["\n## Rules information\n<!-- Rule Info -->\n<details><summary>Rules details</summary>\n\n", "\n "])), (_e = (_d = run.tool.driver) === null || _d === void 0 ? void 0 : _d.rules) === null || _e === void 0 ? void 0 : _e.map(function (rule) {
|
|
72
|
-
var _a, _b;
|
|
73
|
-
var severity = rule.properties ? (_a = rule.properties) === null || _a === void 0 ? void 0 : _a["problem.severity"] : "";
|
|
74
|
-
// rule description
|
|
75
|
-
return "\n - ".concat(rule.id, " [").concat(severity, "] \n\n > ").concat((_b = rule.shortDescription) === null || _b === void 0 ? void 0 : _b.text, "\n");
|
|
76
|
-
}));
|
|
137
|
+
var toolInfo = simpleMode ? "" : createToolInfo(run);
|
|
138
|
+
var ruleInfo = simpleMode ? "" : createRuleInfo(run);
|
|
77
139
|
var ruleDetails = "<details><summary>Details</summary>\n<pre>".concat(JSON.stringify(run.tool, null, 4), "</pre></details>\n");
|
|
78
140
|
var groupedResults = groupBy(run.results, "ruleId");
|
|
79
|
-
var groupedResultsMarkdown =
|
|
80
|
-
for (var _i = 0, groupedResults_1 = groupedResults; _i < groupedResults_1.length; _i++) {
|
|
81
|
-
var group = groupedResults_1[_i];
|
|
82
|
-
for (var r in group) {
|
|
83
|
-
groupedResultsMarkdown +=
|
|
84
|
-
"- **".concat(r, "**: ").concat(group[r][0] ? escape(group[r][0].message.text) : "") + "\n";
|
|
85
|
-
for (var _h = 0, _j = group[r]; _h < _j.length; _h++) {
|
|
86
|
-
var result = _j[_h];
|
|
87
|
-
var properResult = result;
|
|
88
|
-
if (properResult.suppressions === undefined) {
|
|
89
|
-
groupedResultsMarkdown += " - " + createCodeURL(result, options) + "\n";
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
}
|
|
141
|
+
var groupedResultsMarkdown = createGroupedResultsMarkdown(groupedResults, run, options);
|
|
94
142
|
/* Results
|
|
95
143
|
- rule id
|
|
96
144
|
- message
|
|
@@ -99,34 +147,15 @@ export var sarifToMarkdown = function (options) {
|
|
|
99
147
|
If pass the scan, results is empty array
|
|
100
148
|
*/
|
|
101
149
|
var results = run.results && run.results.length > 0
|
|
102
|
-
? "\n## Results\n".concat(groupedResultsMarkdown)
|
|
103
|
-
: "\n## Results\n\
|
|
104
|
-
var groupedSuppressedResultsMD =
|
|
105
|
-
var suppressedCounter = 0;
|
|
106
|
-
for (var _k = 0, groupedResults_2 = groupedResults; _k < groupedResults_2.length; _k++) {
|
|
107
|
-
var group = groupedResults_2[_k];
|
|
108
|
-
for (var r in group) {
|
|
109
|
-
var groupContainsSuppressed = group[r].filter(function (r) { return r.suppressions !== undefined; }).length > 0;
|
|
110
|
-
if (groupContainsSuppressed) {
|
|
111
|
-
groupedSuppressedResultsMD +=
|
|
112
|
-
"- **".concat(r, "**: ").concat(group[r][0] ? escape(group[r][0].message.text) : "") + "\n";
|
|
113
|
-
for (var _l = 0, _m = group[r]; _l < _m.length; _l++) {
|
|
114
|
-
var result = _m[_l];
|
|
115
|
-
var properResult = result;
|
|
116
|
-
if (properResult.suppressions !== undefined) {
|
|
117
|
-
suppressedCounter += 1;
|
|
118
|
-
groupedSuppressedResultsMD += " - " + createCodeURL(result, options) + "\n";
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
}
|
|
150
|
+
? "\n## Results\n\n".concat(groupedResultsMarkdown, "\n")
|
|
151
|
+
: "\n## Results\n\nNothing here.\n\n";
|
|
152
|
+
var _c = createGroupedSuppressedResultsMarkdown(groupedResults, run, options), groupedSuppressedResultsMD = _c.groupedSuppressedResultsMD, suppressedCounter = _c.suppressedCounter;
|
|
124
153
|
// careful, double ternary... first check if we should include suppressedresults (return empty string)
|
|
125
154
|
// then check if there are results, if none, return default string
|
|
126
155
|
var suppressedResultsText = suppressedResultsFlag
|
|
127
156
|
? run.results && suppressedCounter > 0
|
|
128
157
|
? "\n## Suppressed results\n\n".concat(groupedSuppressedResultsMD, "\n")
|
|
129
|
-
: "\n## Results\n\
|
|
158
|
+
: "\n## Suppressed Results\n\nNothing here.\n\n"
|
|
130
159
|
: "";
|
|
131
160
|
if (options.details) {
|
|
132
161
|
return {
|
|
@@ -139,12 +168,12 @@ export var sarifToMarkdown = function (options) {
|
|
|
139
168
|
"\n" +
|
|
140
169
|
ruleDetails +
|
|
141
170
|
toolInfo,
|
|
142
|
-
hasMessages: ((
|
|
171
|
+
hasMessages: ((_a = run.results) === null || _a === void 0 ? void 0 : _a.length) !== 0
|
|
143
172
|
};
|
|
144
173
|
}
|
|
145
174
|
return {
|
|
146
175
|
body: title + results + "\n" + suppressedResultsText + "\n" + ruleInfo + "\n" + toolInfo,
|
|
147
|
-
hasMessages: ((
|
|
176
|
+
hasMessages: ((_b = run.results) === null || _b === void 0 ? void 0 : _b.length) !== 0
|
|
148
177
|
};
|
|
149
178
|
});
|
|
150
179
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sarif-to-markdown.js","sourceRoot":"","sources":["../src/sarif-to-markdown.ts"],"names":[],"mappings":";;;;AACA,aAAa;AACb,OAAO,MAAM,MAAM,iBAAiB,CAAC;AACrC,OAAO,OAAO,MAAM,UAAU,CAAC;AAE/B,SAAS,cAAc,CAAC,OAA6B;IAAE,gBAAgB;SAAhB,UAAgB,EAAhB,qBAAgB,EAAhB,IAAgB;QAAhB,+BAAgB;;IACnE,OAAO,OAAO,CAAC,MAAM,CAAC,UAAC,MAAM,EAAE,GAAG,EAAE,CAAC;QACjC,IAAM,KAAK,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC5B,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC3B,OAAO,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC;SACvC;aAAM;YACH,OAAO,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC;SACvC;IACL,CAAC,CAAC,CAAC;AACP,CAAC;AAED,IAAM,aAAa,GAAG,UAAC,MAAc,EAAE,OAA8B;;IACjE,IAAM,UAAU,GAAG,MAAA,OAAO,CAAC,UAAU,mCAAI,oBAAoB,CAAC;IAC9D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE;QAClC,OAAO,EAAE,CAAC;KACb;IACD,OAAO,MAAA,MAAM,CAAC,SAAS,0CAAE,OAAO,CAAC,UAAC,QAAa;QAC3C,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE;YAC5B,OAAO,EAAE,CAAC;SACb;QACD,IAAM,gBAAgB,GAAG,QAAQ,CAAC,gBAAgB,CAAC;QACnD,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,EAAE;YACpC,OAAO,EAAE,CAAC;SACb;QACD,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE;YAC1B,OAAO,EAAE,CAAC;SACb;QACD,IAAM,UAAU,GACZ,gBAAgB,CAAC,MAAM,CAAC,OAAO,KAAK,SAAS;YACzC,CAAC,CAAC,WAAI,gBAAgB,CAAC,MAAM,CAAC,SAAS,cAAI,gBAAgB,CAAC,MAAM,CAAC,OAAO,CAAE;YAC5E,CAAC,CAAC,WAAI,gBAAgB,CAAC,MAAM,CAAC,SAAS,CAAE,CAAC;QAClD,OAAO,OAAO,CACV,UAAU,EACV,OAAO,CAAC,KAAK,EACb,OAAO,CAAC,IAAI,EACZ,eAAQ,OAAO,CAAC,MAAM,CAAE,EACxB,OAAO,CAAC,UAAU,EAClB,UAAG,gBAAgB,CAAC,gBAAgB,CAAC,GAAG,cAAI,UAAU,CAAE,CAC3D,CAAC;IACN,CAAC,CAAC,CAAC;AACP,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"sarif-to-markdown.js","sourceRoot":"","sources":["../src/sarif-to-markdown.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@security-alert/sarif-to-markdown",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.9.0",
|
|
4
4
|
"description": "Convert Sarif format to body text",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"sarif",
|
|
@@ -56,5 +56,5 @@
|
|
|
56
56
|
"publishConfig": {
|
|
57
57
|
"access": "public"
|
|
58
58
|
},
|
|
59
|
-
"gitHead": "
|
|
59
|
+
"gitHead": "75c8d82f52cfca7f39c75e2805b83c83ddaa61c5"
|
|
60
60
|
}
|