From 552ddbfadb488c6f0e73fa418671a855845f768e Mon Sep 17 00:00:00 2001 From: Monibee-Fudgekins <148405685+Monibee-Fudgekins@users.noreply.github.com> Date: Mon, 13 Jul 2026 16:43:34 -0400 Subject: [PATCH] fix: map NuGet PURLs to dotnet package type (#4861) * test: use unique NuGet PURL subtest name Signed-off-by: Monibee Fudgekins * fix: emit canonical NuGet PURL type Signed-off-by: Monibee Fudgekins * chore: regenerate dotnet capabilities for nuget PURL type regenerated after emitting canonical nuget PURL type for dotnet packages. Signed-off-by: Alex Goodman --------- Signed-off-by: Monibee Fudgekins Signed-off-by: Alex Goodman Co-authored-by: Alex Goodman --- syft/pkg/cataloger/dotnet/capabilities.yaml | 8 ++++---- syft/pkg/type.go | 2 +- syft/pkg/type_test.go | 11 ++++++++++- 3 files changed, 15 insertions(+), 6 deletions(-) diff --git a/syft/pkg/cataloger/dotnet/capabilities.yaml b/syft/pkg/cataloger/dotnet/capabilities.yaml index b6cf64d64..2d1107ec2 100644 --- a/syft/pkg/cataloger/dotnet/capabilities.yaml +++ b/syft/pkg/cataloger/dotnet/capabilities.yaml @@ -50,8 +50,8 @@ catalogers: - dotnet - npm purl_types: # AUTO-GENERATED - - dotnet - npm + - nuget json_schema_types: # AUTO-GENERATED - DotnetDepsEntry - DotnetPortableExecutableEntry @@ -91,7 +91,7 @@ catalogers: package_types: # AUTO-GENERATED - dotnet purl_types: # AUTO-GENERATED - - dotnet + - nuget json_schema_types: # AUTO-GENERATED - DotnetDepsEntry capabilities: # MANUAL - edit capabilities here @@ -137,7 +137,7 @@ catalogers: package_types: # AUTO-GENERATED - dotnet purl_types: # AUTO-GENERATED - - dotnet + - nuget json_schema_types: # AUTO-GENERATED - DotnetPackagesLockEntry capabilities: # MANUAL - preserved across regeneration @@ -186,7 +186,7 @@ catalogers: package_types: # AUTO-GENERATED - dotnet purl_types: # AUTO-GENERATED - - dotnet + - nuget json_schema_types: # AUTO-GENERATED - DotnetPortableExecutableEntry capabilities: # MANUAL - edit capabilities here diff --git a/syft/pkg/type.go b/syft/pkg/type.go index b4d42853f..c354c949c 100644 --- a/syft/pkg/type.go +++ b/syft/pkg/type.go @@ -128,7 +128,7 @@ func (t Type) PackageURLType() string { case DebPkg: return "deb" case DotnetPkg: - return "dotnet" + return packageurl.TypeNuget case ErlangOTPPkg: return packageurl.TypeOTP case GemPkg: diff --git a/syft/pkg/type_test.go b/syft/pkg/type_test.go index 514d06b13..4c4fd7add 100644 --- a/syft/pkg/type_test.go +++ b/syft/pkg/type_test.go @@ -3,6 +3,7 @@ package pkg import ( "testing" + "github.com/anchore/packageurl-go" "github.com/scylladb/go-set/strset" "github.com/stretchr/testify/assert" ) @@ -166,7 +167,11 @@ func TestTypeFromPURL(t *testing.T) { expectedTypes.Remove(string(VcpkgPkg)) for _, test := range tests { - t.Run(string(test.expected), func(t *testing.T) { + name := test.name + if name == "" { + name = string(test.expected) + } + t.Run(name, func(t *testing.T) { actual := TypeFromPURL(test.purl) if actual != "" { @@ -179,3 +184,7 @@ func TestTypeFromPURL(t *testing.T) { assert.ElementsMatch(t, expectedTypes.List(), pkgTypes.List(), "missing one or more package types to test against (maybe a package type was added?)") } + +func TestPackageURLType(t *testing.T) { + assert.Equal(t, packageurl.TypeNuget, DotnetPkg.PackageURLType()) +}