Fix icons and undefined/null checks

This commit is contained in:
Justin Hutchings
2024-03-04 20:03:39 +00:00
parent b5a1aee21a
commit 29b9ef447a
4 changed files with 47 additions and 19 deletions

33
dist/index.js generated vendored
View File

@@ -963,7 +963,7 @@ exports.DepsDevProjectSchema = z
shortDescription: z.string(),
url: z.string()
}),
score: z.number(),
score: z.string(),
reason: z.string(),
details: z.array(z.string())
}))
@@ -1323,21 +1323,32 @@ function snapshotWarningRecommendation(config, warnings) {
return 'Re-running this action after a short time may resolve the issue.';
}
function addScorecardToSummary(scorecard, config) {
var _a, _b, _c, _d, _e, _f;
var _a, _b, _c, _d, _e, _f, _g, _h, _j;
core.summary.addHeading('OpenSSF Scorecard', 2);
core.summary.addRaw(`<table><tr><th>Package</th><th>Version</th><th>Score</th><th>Details</th></tr>`, true);
for (const dependency of scorecard.dependencies) {
core.debug("Adding scorecard to summary");
core.debug('Adding scorecard to summary');
core.debug(`Overall score ${(_a = dependency.depsDevData) === null || _a === void 0 ? void 0 : _a.scorecard.overallScore}`);
core.summary.addRaw(`<tr><td>${dependency.ecosystem}/${dependency.packageName}</td><td>${dependency.version}</td>
<td>${((_b = dependency.depsDevData) === null || _b === void 0 ? void 0 : _b.scorecard.overallScore) === undefined || ((_c = dependency.depsDevData) === null || _c === void 0 ? void 0 : _c.scorecard.overallScore) === null ? 'Unknown' : (_d = dependency.depsDevData) === null || _d === void 0 ? void 0 : _d.scorecard.overallScore}</td>`, false);
if (((_e = dependency.depsDevData) === null || _e === void 0 ? void 0 : _e.scorecard.checks) !== undefined) {
let detailsTable = '<table><tr><th>Check</th><th>Score</th><th>Reason</th></tr>';
for (const check of ((_f = dependency.depsDevData) === null || _f === void 0 ? void 0 : _f.scorecard.checks) || []) {
let icon = check.score < config.warn_on_openssf_scorecard_level
// Set the icon based on the overall score value
let overallIcon = null;
if (((_b = dependency.depsDevData) === null || _b === void 0 ? void 0 : _b.scorecard.overallScore) !== undefined &&
((_c = dependency.depsDevData) === null || _c === void 0 ? void 0 : _c.scorecard.overallScore) !== null) {
overallIcon =
((_d = dependency.depsDevData) === null || _d === void 0 ? void 0 : _d.scorecard.overallScore) <
config.warn_on_openssf_scorecard_level
? ':warning:'
: ':green_circle:';
detailsTable += `<tr><td>${check.name}</td><td>${check.score}</td><td>${icon} ${check.reason}</td></tr>`;
}
//Add a row for the dependency
core.summary.addRaw(`<tr><td>${dependency.ecosystem}/${dependency.packageName}</td><td>${dependency.version}</td>
<td>${overallIcon} ${((_e = dependency.depsDevData) === null || _e === void 0 ? void 0 : _e.scorecard.overallScore) === undefined || ((_f = dependency.depsDevData) === null || _f === void 0 ? void 0 : _f.scorecard.overallScore) === null ? 'Unknown' : (_g = dependency.depsDevData) === null || _g === void 0 ? void 0 : _g.scorecard.overallScore}</td>`, false);
if (((_h = dependency.depsDevData) === null || _h === void 0 ? void 0 : _h.scorecard.checks) !== undefined) {
let detailsTable = '<table><tr><th>Check</th><th>Score</th><th>Reason</th></tr>';
for (const check of ((_j = dependency.depsDevData) === null || _j === void 0 ? void 0 : _j.scorecard.checks) || []) {
const icon = parseFloat(check.score) < config.warn_on_openssf_scorecard_level
? ':warning:'
: ':green_circle:';
detailsTable += `<tr><td>${check.name}</td><td>${icon} ${check.score}</td><td>${icon} ${check.reason}</td></tr>`;
}
detailsTable += `</table>`;
core.summary.addRaw(`<td><details><summary>Details</summary>${detailsTable}</details></td></tr>`, true);
@@ -50110,7 +50121,7 @@ exports.DepsDevProjectSchema = z
shortDescription: z.string(),
url: z.string()
}),
score: z.number(),
score: z.string(),
reason: z.string(),
details: z.array(z.string())
}))

2
dist/index.js.map generated vendored

File diff suppressed because one or more lines are too long

View File

@@ -135,7 +135,7 @@ export const DepsDevProjectSchema = z
shortDescription: z.string(),
url: z.string()
}),
score: z.number(),
score: z.string(),
reason: z.string(),
details: z.array(z.string())
})

View File

@@ -259,23 +259,40 @@ export function addScorecardToSummary(
true
)
for (const dependency of scorecard.dependencies) {
core.debug("Adding scorecard to summary")
core.debug(`Overall score ${dependency.depsDevData?.scorecard.overallScore}`)
core.debug('Adding scorecard to summary')
core.debug(
`Overall score ${dependency.depsDevData?.scorecard.overallScore}`
)
// Set the icon based on the overall score value
let overallIcon = null
if (
dependency.depsDevData?.scorecard.overallScore !== undefined &&
dependency.depsDevData?.scorecard.overallScore !== null
) {
overallIcon =
dependency.depsDevData?.scorecard.overallScore <
config.warn_on_openssf_scorecard_level
? ':warning:'
: ':green_circle:'
}
//Add a row for the dependency
core.summary.addRaw(
`<tr><td>${dependency.ecosystem}/${dependency.packageName}</td><td>${dependency.version}</td>
<td>${dependency.depsDevData?.scorecard.overallScore === undefined || dependency.depsDevData?.scorecard.overallScore === null ? 'Unknown' : dependency.depsDevData?.scorecard.overallScore}</td>`,
<td>${overallIcon} ${dependency.depsDevData?.scorecard.overallScore === undefined || dependency.depsDevData?.scorecard.overallScore === null ? 'Unknown' : dependency.depsDevData?.scorecard.overallScore}</td>`,
false
)
if (dependency.depsDevData?.scorecard.checks !== undefined) {
let detailsTable =
'<table><tr><th>Check</th><th>Score</th><th>Reason</th></tr>'
for (const check of dependency.depsDevData?.scorecard.checks || []) {
let icon =
check.score < config.warn_on_openssf_scorecard_level
const icon =
parseFloat(check.score) < config.warn_on_openssf_scorecard_level
? ':warning:'
: ':green_circle:'
detailsTable += `<tr><td>${check.name}</td><td>${check.score}</td><td>${icon} ${check.reason}</td></tr>`
detailsTable += `<tr><td>${check.name}</td><td>${icon} ${check.score}</td><td>${icon} ${check.reason}</td></tr>`
}
detailsTable += `</table>`
core.summary.addRaw(