diff --git a/src/deny.ts b/src/deny.ts index f24e593..2614306 100644 --- a/src/deny.ts +++ b/src/deny.ts @@ -8,39 +8,31 @@ export async function getDeniedChanges( ): Promise { const changesDenied: Change[] = [] - let failed = false + let hasDeniedPackage = false for (const change of changes) { change.name = change.name.toLowerCase() const [name, version] = change.package_url.toLowerCase().split('@') - if (deniedPackages) { - for (const denied of deniedPackages) { - 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 - } - } + for (const denied of deniedPackages) { + const [deniedName, deniedVersion] = denied.toLowerCase().split('@') + if ( + (!deniedVersion || version === deniedVersion) && + name === deniedName + ) { + changesDenied.push(change) + hasDeniedPackage = true } } - if (deniedGroups) { - for (const denied of deniedGroups) { - if (name.startsWith(denied.toLowerCase())) { - changesDenied.push(change) - failed = true - } + for (const denied of deniedGroups) { + if (name.startsWith(denied.toLowerCase())) { + changesDenied.push(change) + hasDeniedPackage = true } } } - if (failed) { + if (hasDeniedPackage) { core.setFailed('Dependency review detected denied packages.') } else { core.info('Dependency review did not detect any denied packages')