File tree Expand file tree Collapse file tree 5 files changed +662
-76
lines changed Expand file tree Collapse file tree 5 files changed +662
-76
lines changed Original file line number Diff line number Diff line change 1212
1313import requests
1414
15- from vulntotal .ecosystem .nuget import get_closest_nuget_package_name
15+ from vulntotal .ecosystem .nuget import search_closest_nuget_package_name
1616from vulntotal .validator import DataSource
1717from vulntotal .validator import VendorData
1818from vulntotal .vulntotal_utils import get_item
@@ -130,7 +130,7 @@ def generate_payload(purl):
130130 package ["name" ] = "Kernel"
131131
132132 elif purl_type == "nuget" :
133- nuget_package = get_closest_nuget_package_name (purl .name )
133+ nuget_package = search_closest_nuget_package_name (purl .name )
134134 if not nuget_package :
135135 logger .error (f"Invalid NuGet PURL { str (purl )} " )
136136 return
Original file line number Diff line number Diff line change 1111
1212import requests
1313
14+ """
15+ Find case-sensitive NuGet package names using API calls.
16+ Some data source such as OSV demand case-sensitive names.
17+ """
18+
1419
1520def get_closest_nuget_package_name (query ):
1621 """
@@ -31,3 +36,26 @@ def get_closest_nuget_package_name(query):
3136 query_response = requests .get (url_query ).json ()
3237 if query_response .get ("data" ):
3338 return query_response ["data" ][0 ]["id" ]
39+
40+
41+ def search_closest_nuget_package_name (query ):
42+ """
43+ Return case-sensitive NuGet package name using
44+ the autocomplete service provided by NuGet
45+ The data has this shape:
46+ {
47+ "@context": {
48+ "@vocab": "http://schema.nuget.org/schema#"
49+ },
50+ "totalHits": 3145,
51+ "data": [
52+ "Azure.Core",
53+ "Azure.Storage.Blobs",
54+ "Azure.Security.KeyVault.Secrets",
55+ ...
56+ """
57+ url_query = f"https://azuresearch-usnc.nuget.org/autocomplete?q={ query } "
58+ query_response = requests .get (url_query ).json ()
59+ data = query_response .get ("data" )
60+ if data :
61+ return data [0 ]
You can’t perform that action at this time.
0 commit comments