Skip to content

Commit 6049c36

Browse files
committed
feat(nuget): add dependency check for inside group tags
1. update code to look for dependencies in a group as well 2. update nuget test data with dependency data Signed-off-by: Abedin Poonawala <[email protected]>
1 parent b816dbd commit 6049c36

File tree

6 files changed

+353
-5
lines changed

6 files changed

+353
-5
lines changed

src/packagedcode/nuget.py

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,29 @@ def get_dependencies(nuspec):
2727
dependencies = []
2828
try:
2929
if "dependencies" in nuspec:
30+
if "group" in nuspec["dependencies"]:
31+
for group in nuspec["dependencies"]["group"]:
32+
if "dependency" in group:
33+
for dependency in group["dependency"]:
34+
#dependencies.append(dependency)
35+
dpurl = models.PackageURL(
36+
type='nuget',
37+
namespace=None,
38+
name=dependency.get("@id"),
39+
version=dependency.get("@version"),
40+
qualifiers=None
41+
)
42+
dep_pack = models.DependentPackage(
43+
purl=str(dpurl),
44+
extracted_requirement=dependency.get("@version"),
45+
scope="dependency",
46+
is_runtime=False,
47+
is_optional=False,
48+
is_resolved=True,
49+
)
50+
51+
dependencies.append(dep_pack)
52+
3053
if "dependency" in nuspec.get("dependencies"):
3154
if "@id" and "@version" in nuspec.get("dependencies").get("dependency"):
3255
dpurl = models.PackageURL(

tests/packagedcode/data/nuget/Castle.Core.nuspec.json.expected

Lines changed: 102 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,108 @@
4343
"source_packages": [],
4444
"file_references": [],
4545
"extra_data": {},
46-
"dependencies": [],
46+
"dependencies": [
47+
{
48+
"purl": "pkg:nuget/[email protected]",
49+
"extracted_requirement": "1.6.1",
50+
"scope": "dependency",
51+
"is_runtime": false,
52+
"is_optional": false,
53+
"is_resolved": true,
54+
"resolved_package": {},
55+
"extra_data": {}
56+
},
57+
{
58+
"purl": "pkg:nuget/[email protected]",
59+
"extracted_requirement": "4.3.0",
60+
"scope": "dependency",
61+
"is_runtime": false,
62+
"is_optional": false,
63+
"is_resolved": true,
64+
"resolved_package": {},
65+
"extra_data": {}
66+
},
67+
{
68+
"purl": "pkg:nuget/[email protected]",
69+
"extracted_requirement": "4.3.0",
70+
"scope": "dependency",
71+
"is_runtime": false,
72+
"is_optional": false,
73+
"is_resolved": true,
74+
"resolved_package": {},
75+
"extra_data": {}
76+
},
77+
{
78+
"purl": "pkg:nuget/[email protected]",
79+
"extracted_requirement": "4.3.0",
80+
"scope": "dependency",
81+
"is_runtime": false,
82+
"is_optional": false,
83+
"is_resolved": true,
84+
"resolved_package": {},
85+
"extra_data": {}
86+
},
87+
{
88+
"purl": "pkg:nuget/[email protected]",
89+
"extracted_requirement": "4.3.0",
90+
"scope": "dependency",
91+
"is_runtime": false,
92+
"is_optional": false,
93+
"is_resolved": true,
94+
"resolved_package": {},
95+
"extra_data": {}
96+
},
97+
{
98+
"purl": "pkg:nuget/[email protected]",
99+
"extracted_requirement": "4.3.0",
100+
"scope": "dependency",
101+
"is_runtime": false,
102+
"is_optional": false,
103+
"is_resolved": true,
104+
"resolved_package": {},
105+
"extra_data": {}
106+
},
107+
{
108+
"purl": "pkg:nuget/[email protected]",
109+
"extracted_requirement": "4.3.0",
110+
"scope": "dependency",
111+
"is_runtime": false,
112+
"is_optional": false,
113+
"is_resolved": true,
114+
"resolved_package": {},
115+
"extra_data": {}
116+
},
117+
{
118+
"purl": "pkg:nuget/[email protected]",
119+
"extracted_requirement": "4.3.0",
120+
"scope": "dependency",
121+
"is_runtime": false,
122+
"is_optional": false,
123+
"is_resolved": true,
124+
"resolved_package": {},
125+
"extra_data": {}
126+
},
127+
{
128+
"purl": "pkg:nuget/[email protected]",
129+
"extracted_requirement": "4.3.0",
130+
"scope": "dependency",
131+
"is_runtime": false,
132+
"is_optional": false,
133+
"is_resolved": true,
134+
"resolved_package": {},
135+
"extra_data": {}
136+
},
137+
{
138+
"purl": "pkg:nuget/[email protected]",
139+
"extracted_requirement": "4.3.0",
140+
"scope": "dependency",
141+
"is_runtime": false,
142+
"is_optional": false,
143+
"is_resolved": true,
144+
"resolved_package": {},
145+
"extra_data": {}
146+
}
147+
],
47148
"repository_homepage_url": "https://www.nuget.org/packages/Castle.Core/4.2.1",
48149
"repository_download_url": "https://www.nuget.org/api/v2/package/Castle.Core/4.2.1",
49150
"api_data_url": "https://api.nuget.org/v3/registration3/castle.core/4.2.1.json",

tests/packagedcode/data/nuget/Microsoft.AspNet.Mvc.nuspec.json.expected

Lines changed: 182 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,188 @@
4343
"source_packages": [],
4444
"file_references": [],
4545
"extra_data": {},
46-
"dependencies": [],
46+
"dependencies": [
47+
{
48+
"purl": "pkg:nuget/[email protected]",
49+
"extracted_requirement": "6.0.0-beta7",
50+
"scope": "dependency",
51+
"is_runtime": false,
52+
"is_optional": false,
53+
"is_resolved": true,
54+
"resolved_package": {},
55+
"extra_data": {}
56+
},
57+
{
58+
"purl": "pkg:nuget/[email protected]",
59+
"extracted_requirement": "6.0.0-beta7",
60+
"scope": "dependency",
61+
"is_runtime": false,
62+
"is_optional": false,
63+
"is_resolved": true,
64+
"resolved_package": {},
65+
"extra_data": {}
66+
},
67+
{
68+
"purl": "pkg:nuget/[email protected]",
69+
"extracted_requirement": "6.0.0-beta7",
70+
"scope": "dependency",
71+
"is_runtime": false,
72+
"is_optional": false,
73+
"is_resolved": true,
74+
"resolved_package": {},
75+
"extra_data": {}
76+
},
77+
{
78+
"purl": "pkg:nuget/[email protected]",
79+
"extracted_requirement": "6.0.0-beta7",
80+
"scope": "dependency",
81+
"is_runtime": false,
82+
"is_optional": false,
83+
"is_resolved": true,
84+
"resolved_package": {},
85+
"extra_data": {}
86+
},
87+
{
88+
"purl": "pkg:nuget/[email protected]",
89+
"extracted_requirement": "6.0.0-beta7",
90+
"scope": "dependency",
91+
"is_runtime": false,
92+
"is_optional": false,
93+
"is_resolved": true,
94+
"resolved_package": {},
95+
"extra_data": {}
96+
},
97+
{
98+
"purl": "pkg:nuget/[email protected]",
99+
"extracted_requirement": "6.0.0-beta7",
100+
"scope": "dependency",
101+
"is_runtime": false,
102+
"is_optional": false,
103+
"is_resolved": true,
104+
"resolved_package": {},
105+
"extra_data": {}
106+
},
107+
{
108+
"purl": "pkg:nuget/[email protected]",
109+
"extracted_requirement": "6.0.0-beta7",
110+
"scope": "dependency",
111+
"is_runtime": false,
112+
"is_optional": false,
113+
"is_resolved": true,
114+
"resolved_package": {},
115+
"extra_data": {}
116+
},
117+
{
118+
"purl": "pkg:nuget/[email protected]",
119+
"extracted_requirement": "1.0.0-beta7",
120+
"scope": "dependency",
121+
"is_runtime": false,
122+
"is_optional": false,
123+
"is_resolved": true,
124+
"resolved_package": {},
125+
"extra_data": {}
126+
},
127+
{
128+
"purl": "pkg:nuget/[email protected]",
129+
"extracted_requirement": "1.0.0-beta7",
130+
"scope": "dependency",
131+
"is_runtime": false,
132+
"is_optional": false,
133+
"is_resolved": true,
134+
"resolved_package": {},
135+
"extra_data": {}
136+
},
137+
{
138+
"purl": "pkg:nuget/[email protected]",
139+
"extracted_requirement": "6.0.0-beta7",
140+
"scope": "dependency",
141+
"is_runtime": false,
142+
"is_optional": false,
143+
"is_resolved": true,
144+
"resolved_package": {},
145+
"extra_data": {}
146+
},
147+
{
148+
"purl": "pkg:nuget/[email protected]",
149+
"extracted_requirement": "6.0.0-beta7",
150+
"scope": "dependency",
151+
"is_runtime": false,
152+
"is_optional": false,
153+
"is_resolved": true,
154+
"resolved_package": {},
155+
"extra_data": {}
156+
},
157+
{
158+
"purl": "pkg:nuget/[email protected]",
159+
"extracted_requirement": "6.0.0-beta7",
160+
"scope": "dependency",
161+
"is_runtime": false,
162+
"is_optional": false,
163+
"is_resolved": true,
164+
"resolved_package": {},
165+
"extra_data": {}
166+
},
167+
{
168+
"purl": "pkg:nuget/[email protected]",
169+
"extracted_requirement": "6.0.0-beta7",
170+
"scope": "dependency",
171+
"is_runtime": false,
172+
"is_optional": false,
173+
"is_resolved": true,
174+
"resolved_package": {},
175+
"extra_data": {}
176+
},
177+
{
178+
"purl": "pkg:nuget/[email protected]",
179+
"extracted_requirement": "6.0.0-beta7",
180+
"scope": "dependency",
181+
"is_runtime": false,
182+
"is_optional": false,
183+
"is_resolved": true,
184+
"resolved_package": {},
185+
"extra_data": {}
186+
},
187+
{
188+
"purl": "pkg:nuget/[email protected]",
189+
"extracted_requirement": "6.0.0-beta7",
190+
"scope": "dependency",
191+
"is_runtime": false,
192+
"is_optional": false,
193+
"is_resolved": true,
194+
"resolved_package": {},
195+
"extra_data": {}
196+
},
197+
{
198+
"purl": "pkg:nuget/[email protected]",
199+
"extracted_requirement": "6.0.0-beta7",
200+
"scope": "dependency",
201+
"is_runtime": false,
202+
"is_optional": false,
203+
"is_resolved": true,
204+
"resolved_package": {},
205+
"extra_data": {}
206+
},
207+
{
208+
"purl": "pkg:nuget/[email protected]",
209+
"extracted_requirement": "1.0.0-beta7",
210+
"scope": "dependency",
211+
"is_runtime": false,
212+
"is_optional": false,
213+
"is_resolved": true,
214+
"resolved_package": {},
215+
"extra_data": {}
216+
},
217+
{
218+
"purl": "pkg:nuget/[email protected]",
219+
"extracted_requirement": "1.0.0-beta7",
220+
"scope": "dependency",
221+
"is_runtime": false,
222+
"is_optional": false,
223+
"is_resolved": true,
224+
"resolved_package": {},
225+
"extra_data": {}
226+
}
227+
],
47228
"repository_homepage_url": "https://www.nuget.org/packages/Microsoft.AspNet.Mvc/6.0.0-beta7",
48229
"repository_download_url": "https://www.nuget.org/api/v2/package/Microsoft.AspNet.Mvc/6.0.0-beta7",
49230
"api_data_url": "https://api.nuget.org/v3/registration3/microsoft.aspnet.mvc/6.0.0-beta7.json",

tests/packagedcode/data/nuget/Microsoft.Net.Http.nuspec.json.expected

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,28 @@
4343
"source_packages": [],
4444
"file_references": [],
4545
"extra_data": {},
46-
"dependencies": [],
46+
"dependencies": [
47+
{
48+
"purl": "pkg:nuget/[email protected]",
49+
"extracted_requirement": "1.1.10",
50+
"scope": "dependency",
51+
"is_runtime": false,
52+
"is_optional": false,
53+
"is_resolved": true,
54+
"resolved_package": {},
55+
"extra_data": {}
56+
},
57+
{
58+
"purl": "pkg:nuget/[email protected]",
59+
"extracted_requirement": "1.0.14",
60+
"scope": "dependency",
61+
"is_runtime": false,
62+
"is_optional": false,
63+
"is_resolved": true,
64+
"resolved_package": {},
65+
"extra_data": {}
66+
}
67+
],
4768
"repository_homepage_url": "https://www.nuget.org/packages/Microsoft.Net.Http/2.2.29",
4869
"repository_download_url": "https://www.nuget.org/api/v2/package/Microsoft.Net.Http/2.2.29",
4970
"api_data_url": "https://api.nuget.org/v3/registration3/microsoft.net.http/2.2.29.json",

tests/packagedcode/data/nuget/bootstrap.nuspec.json.expected

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,18 @@
4343
"source_packages": [],
4444
"file_references": [],
4545
"extra_data": {},
46-
"dependencies": [],
46+
"dependencies": [
47+
{
48+
"purl": "pkg:nuget/[email protected]",
49+
"extracted_requirement": "1.9.1",
50+
"scope": "dependency",
51+
"is_runtime": false,
52+
"is_optional": false,
53+
"is_resolved": true,
54+
"resolved_package": {},
55+
"extra_data": {}
56+
}
57+
],
4758
"repository_homepage_url": "https://www.nuget.org/packages/bootstrap/4.0.0-alpha",
4859
"repository_download_url": "https://www.nuget.org/api/v2/package/bootstrap/4.0.0-alpha",
4960
"api_data_url": "https://api.nuget.org/v3/registration3/bootstrap/4.0.0-alpha.json",

tests/packagedcode/data/nuget/jQuery.UI.Combined.nuspec.json.expected

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,18 @@
4343
"source_packages": [],
4444
"file_references": [],
4545
"extra_data": {},
46-
"dependencies": [],
46+
"dependencies": [
47+
{
48+
"purl": "pkg:nuget/[email protected]",
49+
"extracted_requirement": "1.6.4",
50+
"scope": "dependency",
51+
"is_runtime": false,
52+
"is_optional": false,
53+
"is_resolved": true,
54+
"resolved_package": {},
55+
"extra_data": {}
56+
}
57+
],
4758
"repository_homepage_url": "https://www.nuget.org/packages/jQuery.UI.Combined/1.11.4",
4859
"repository_download_url": "https://www.nuget.org/api/v2/package/jQuery.UI.Combined/1.11.4",
4960
"api_data_url": "https://api.nuget.org/v3/registration3/jquery.ui.combined/1.11.4.json",

0 commit comments

Comments
 (0)