Improve package URL validation and skip components with invalid URLs

This commit is contained in:
Chad Bentz
2025-05-09 05:25:36 +00:00
parent 5cef7e77dc
commit 6cf906749f
3 changed files with 56 additions and 7 deletions
Generated Vendored
+26 -3
View File
@@ -36177,8 +36177,15 @@ class ComponentDetection {
name: component.component.name || 'unnamed',
type: component.component.type || 'unknown'
}, null, 2)}`);
// Skip components without packageUrl
return;
}
const packageUrl = ComponentDetection.makePackageUrl(component.component.packageUrl);
// Skip if the packageUrl is empty (indicates an invalid or missing packageUrl)
if (!packageUrl) {
core.debug(`Skipping component with invalid packageUrl: ${component.component.id}`);
return;
}
if (!packageCache.hasPackage(packageUrl)) {
const pkg = new ComponentDetectionPackage(packageUrl, component.component.id, component.isDevelopmentDependency, component.topLevelReferrers, component.locationsFoundAt, component.containerDetailIds, component.containerLayerIds);
packageCache.addPackage(pkg);
@@ -36189,9 +36196,25 @@ class ComponentDetection {
core.debug("Sorting out transitive dependencies");
packages.forEach((pkg) => __awaiter(this, void 0, void 0, function* () {
pkg.topLevelReferrers.forEach((referrer) => __awaiter(this, void 0, void 0, function* () {
const referrerPackage = packageCache.lookupPackage(ComponentDetection.makePackageUrl(referrer.packageUrl));
if (referrerPackage) {
referrerPackage.dependsOn(pkg);
// Skip if referrer doesn't have a valid packageUrl
if (!referrer.packageUrl) {
core.debug(`Skipping referrer without packageUrl for component: ${pkg.id}`);
return;
}
const referrerUrl = ComponentDetection.makePackageUrl(referrer.packageUrl);
// Skip if the generated packageUrl is empty
if (!referrerUrl) {
core.debug(`Skipping referrer with invalid packageUrl for component: ${pkg.id}`);
return;
}
try {
const referrerPackage = packageCache.lookupPackage(referrerUrl);
if (referrerPackage) {
referrerPackage.dependsOn(pkg);
}
}
catch (error) {
core.debug(`Error looking up referrer package: ${error}`);
}
}));
}));
Generated Vendored
+1 -1
View File
File diff suppressed because one or more lines are too long