Files
dependency-review-action/src/filter.ts
T

49 lines
1.1 KiB
TypeScript
Raw Normal View History

import {Changes, Severity, SEVERITIES, Scope, SCOPES} from './schemas'
2022-06-01 12:09:11 +02:00
export function filterChangesBySeverity(
severity: Severity,
changes: Changes
): Changes {
const severityIdx = SEVERITIES.indexOf(severity)
2022-06-01 13:10:58 +02:00
let filteredChanges = []
2022-07-04 20:05:43 +09:00
for (const change of changes) {
2022-06-01 12:09:11 +02:00
if (
change === undefined ||
change.vulnerabilities === undefined ||
change.vulnerabilities.length === 0
) {
continue
}
2022-06-01 13:10:58 +02:00
2022-07-04 20:05:43 +09:00
const fChange = {
2022-06-01 13:10:58 +02:00
...change,
vulnerabilities: change.vulnerabilities.filter(vuln => {
const vulnIdx = SEVERITIES.indexOf(vuln.severity)
if (vulnIdx <= severityIdx) {
return true
}
})
}
filteredChanges.push(fChange)
2022-06-01 12:09:11 +02:00
}
2022-06-01 12:09:11 +02:00
// don't want to deal with changes with no vulnerabilities
2022-06-01 13:10:58 +02:00
filteredChanges = filteredChanges.filter(
2022-06-01 12:09:11 +02:00
change => change.vulnerabilities.length > 0
)
return filteredChanges
2022-05-31 16:54:59 +02:00
}
export function filterChangesByScopes(
scopes: Scope[],
changes: Changes
): Changes {
const filteredChanges = changes.filter(change => {
if (scopes.indexOf(change.scope) > -1) {
return true
}
})
return filteredChanges
}