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

51 lines
1.2 KiB
TypeScript
Raw Normal View History

2023-08-02 16:17:51 +02:00
import {Change} from './schemas'
import * as core from '@actions/core'
export async function getDeniedChanges(
changes: Change[],
2023-08-07 14:04:41 +02:00
deniedPackages: string[],
deniedGroups: string[]
2023-08-02 16:17:51 +02:00
): Promise<Change[]> {
const changesDenied: Change[] = []
let failed = false
for (const change of changes) {
change.name = change.name.toLowerCase()
2024-03-27 15:04:38 +01:00
const [name, version] = change.package_url.toLowerCase().split('@')
2023-08-02 16:17:51 +02:00
2023-08-07 14:04:41 +02:00
if (deniedPackages) {
for (const denied of deniedPackages) {
2024-03-27 15:04:38 +01:00
const [dpName, dpVersion] = denied.toLowerCase().split('@')
if (dpVersion) {
if (name === dpName && version === dpVersion) {
changesDenied.push(change)
failed = true
}
} else {
if (name === dpName) {
changesDenied.push(change)
failed = true
}
2023-08-07 14:04:41 +02:00
}
}
}
if (deniedGroups) {
for (const denied of deniedGroups) {
2024-03-27 15:04:38 +01:00
if (name.startsWith(denied.toLowerCase())) {
2023-08-07 14:04:41 +02:00
changesDenied.push(change)
failed = true
}
2023-08-02 16:17:51 +02:00
}
}
}
if (failed) {
core.setFailed('Dependency review detected denied packages.')
} else {
core.info('Dependency review did not detect any denied packages')
}
return changesDenied
}