Add scorecard to summary and count scorecard warnings
This commit is contained in:
+3
-1
@@ -126,10 +126,13 @@ async function run(): Promise<void> {
|
|||||||
config.deny_groups
|
config.deny_groups
|
||||||
)
|
)
|
||||||
|
|
||||||
|
const scorecard = await getScorecardLevels(filteredChanges)
|
||||||
|
|
||||||
summary.addSummaryToSummary(
|
summary.addSummaryToSummary(
|
||||||
vulnerableChanges,
|
vulnerableChanges,
|
||||||
invalidLicenseChanges,
|
invalidLicenseChanges,
|
||||||
deniedChanges,
|
deniedChanges,
|
||||||
|
scorecard,
|
||||||
config
|
config
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -150,7 +153,6 @@ async function run(): Promise<void> {
|
|||||||
printDeniedDependencies(deniedChanges, config)
|
printDeniedDependencies(deniedChanges, config)
|
||||||
}
|
}
|
||||||
if (config.show_openssf_scorecard) {
|
if (config.show_openssf_scorecard) {
|
||||||
const scorecard = await getScorecardLevels(filteredChanges)
|
|
||||||
summary.addScorecardToSummary(scorecard, config)
|
summary.addScorecardToSummary(scorecard, config)
|
||||||
printScorecardBlock(scorecard, config)
|
printScorecardBlock(scorecard, config)
|
||||||
createScorecardWarnings(scorecard, config)
|
createScorecardWarnings(scorecard, config)
|
||||||
|
|||||||
+36
-11
@@ -14,22 +14,30 @@ export function addSummaryToSummary(
|
|||||||
vulnerableChanges: Changes,
|
vulnerableChanges: Changes,
|
||||||
invalidLicenseChanges: InvalidLicenseChanges,
|
invalidLicenseChanges: InvalidLicenseChanges,
|
||||||
deniedChanges: Changes,
|
deniedChanges: Changes,
|
||||||
|
scorecard: Scorecard,
|
||||||
config: ConfigurationOptions
|
config: ConfigurationOptions
|
||||||
): void {
|
): void {
|
||||||
|
const scorecardWarnings = countScorecardWarnings(scorecard, config)
|
||||||
|
const licenseIssues = countLicenseIssues(invalidLicenseChanges)
|
||||||
|
|
||||||
core.summary.addHeading('Dependency Review', 1)
|
core.summary.addHeading('Dependency Review', 1)
|
||||||
|
|
||||||
if (
|
if (
|
||||||
vulnerableChanges.length === 0 &&
|
vulnerableChanges.length === 0 &&
|
||||||
countLicenseIssues(invalidLicenseChanges) === 0 &&
|
licenseIssues === 0 &&
|
||||||
deniedChanges.length === 0
|
deniedChanges.length === 0 &&
|
||||||
|
scorecardWarnings === 0
|
||||||
) {
|
) {
|
||||||
if (!config.license_check) {
|
const issueTypes = [
|
||||||
core.summary.addRaw(`${icons.check} No vulnerabilities found.`)
|
config.vulnerability_check ? 'vulnerabilities' : '',
|
||||||
} else if (!config.vulnerability_check) {
|
config.license_check ? 'license issues' : '',
|
||||||
core.summary.addRaw(`${icons.check} No license issues found.`)
|
config.show_openssf_scorecard ? 'OpenSSF Scorecard issues' : ''
|
||||||
|
]
|
||||||
|
if (issueTypes.filter(Boolean).length === 0) {
|
||||||
|
core.summary.addRaw(`${icons.check} No issues found.`)
|
||||||
} else {
|
} else {
|
||||||
core.summary.addRaw(
|
core.summary.addRaw(
|
||||||
`${icons.check} No vulnerabilities or license issues found.`
|
`No ${issueTypes.filter(Boolean).join(' or ')} found.`
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -65,11 +73,31 @@ export function addSummaryToSummary(
|
|||||||
deniedChanges.length
|
deniedChanges.length
|
||||||
} package(s) denied.`
|
} package(s) denied.`
|
||||||
]
|
]
|
||||||
|
: []),
|
||||||
|
...(config.show_openssf_scorecard && scorecardWarnings > 0
|
||||||
|
? [
|
||||||
|
`${checkOrWarnIcon(scorecardWarnings)} ${scorecardWarnings ? scorecardWarnings : 'No'} packages with OpenSSF Scorecard issues.`
|
||||||
|
]
|
||||||
: [])
|
: [])
|
||||||
])
|
])
|
||||||
.addRaw('See the Details below.')
|
.addRaw('See the Details below.')
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function countScorecardWarnings(
|
||||||
|
scorecard: Scorecard,
|
||||||
|
config: ConfigurationOptions
|
||||||
|
): number {
|
||||||
|
return scorecard.dependencies.reduce(
|
||||||
|
(total, dependency) =>
|
||||||
|
total +
|
||||||
|
(dependency.scorecard?.score &&
|
||||||
|
dependency.scorecard?.score < config.warn_on_openssf_scorecard_level
|
||||||
|
? 1
|
||||||
|
: 0),
|
||||||
|
0
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
export function addChangeVulnerabilitiesToSummary(
|
export function addChangeVulnerabilitiesToSummary(
|
||||||
vulnerableChanges: Changes,
|
vulnerableChanges: Changes,
|
||||||
severity: string
|
severity: string
|
||||||
@@ -267,10 +295,7 @@ export function addScorecardToSummary(
|
|||||||
|
|
||||||
// Set the icon based on the overall score value
|
// Set the icon based on the overall score value
|
||||||
let overallIcon = ''
|
let overallIcon = ''
|
||||||
if (
|
if (dependency.scorecard?.score) {
|
||||||
dependency.scorecard?.score !== undefined &&
|
|
||||||
dependency.scorecard?.score !== null
|
|
||||||
) {
|
|
||||||
overallIcon =
|
overallIcon =
|
||||||
dependency.scorecard?.score < config.warn_on_openssf_scorecard_level
|
dependency.scorecard?.score < config.warn_on_openssf_scorecard_level
|
||||||
? ':warning:'
|
? ':warning:'
|
||||||
|
|||||||
Reference in New Issue
Block a user