Skip to content

Commit cf9e087

Browse files
committed
Inline vulnerability data
Signed-off-by: Tushar Goel <tushar.goel.dav@gmail.com>
1 parent 970b885 commit cf9e087

File tree

1 file changed

+33
-4
lines changed

1 file changed

+33
-4
lines changed

vulnerabilities/api_v3.py

Lines changed: 33 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -204,8 +204,8 @@ def get_affected_by_vulnerabilities(self, package):
204204
advisories_qs = AdvisoryV2.objects.latest_affecting_advisories_for_purl(package.package_url)
205205

206206
advisories = list(advisories_qs[:101])
207-
if len(advisories) > 100:
208-
return None
207+
# if len(advisories) > 100:
208+
# return None
209209

210210
advisory_by_avid = {adv.avid: adv for adv in advisories}
211211
avids = advisory_by_avid.keys()
@@ -241,8 +241,8 @@ def get_fixing_vulnerabilities(self, package):
241241
advisories_qs = AdvisoryV2.objects.latest_fixed_by_advisories_for_purl(package.package_url)
242242

243243
advisories = list(advisories_qs[:101])
244-
if len(advisories) > 100:
245-
return None
244+
# if len(advisories) > 100:
245+
# return None
246246

247247
advisory_by_avid = {adv.avid: adv for adv in advisories}
248248
avids = advisory_by_avid.keys()
@@ -359,6 +359,34 @@ def create(self, request, *args, **kwargs):
359359
return self.get_paginated_response(serializer.data)
360360

361361

362+
class AffectedByAdvisoryV3Serializer(AdvisoryV3Serializer):
363+
fixed_by_packages = serializers.SerializerMethodField()
364+
365+
def get_fixed_by_packages(self, obj):
366+
return list(
367+
obj.impacted_packages.values_list("fixed_by_packages__package_url", flat=True)
368+
.exclude(fixed_by_packages__package_url__isnull=True)
369+
.distinct()
370+
)
371+
372+
class Meta:
373+
model = AdvisoryV2
374+
fields = [
375+
"advisory_id",
376+
"url",
377+
"aliases",
378+
"summary",
379+
"severities",
380+
"weaknesses",
381+
"references",
382+
"exploitability",
383+
"weighted_severity",
384+
"risk_score",
385+
"related_ssvc_trees",
386+
"fixed_by_packages",
387+
]
388+
389+
362390
class AdvisoryV3ViewSet(viewsets.GenericViewSet):
363391
queryset = AdvisoryV2.objects.all()
364392
serializer_class = AdvisoryV3Serializer
@@ -398,3 +426,4 @@ class FixingAdvisoriesViewSet(PackageAdvisoriesViewSet):
398426

399427
class AffectedByAdvisoriesViewSet(PackageAdvisoriesViewSet):
400428
relation = "impacted_packages__affecting_packages__package_url"
429+
serializer_class = AffectedByAdvisoryV3Serializer

0 commit comments

Comments
 (0)