Skip to content

Commit 1311fd7

Browse files
committed
Optimize latest advisories for purls
Signed-off-by: Tushar Goel <tushar.goel.dav@gmail.com>
1 parent 1687202 commit 1311fd7

File tree

2 files changed

+20
-5
lines changed

2 files changed

+20
-5
lines changed

vulnerabilities/models.py

Lines changed: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2901,10 +2901,25 @@ def latest_advisories_for_purl(self, purl):
29012901
).latest_per_avid()
29022902

29032903
def latest_advisories_for_purls(self, purls):
2904-
return self.filter(
2905-
Q(impacted_packages__affecting_packages__package_url__in=purls)
2906-
| Q(impacted_packages__fixed_by_packages__package_url__in=purls)
2907-
).latest_per_avid()
2904+
2905+
affecting = ImpactedPackageAffecting.objects.filter(
2906+
impacted_package__advisory_id=OuterRef("pk"),
2907+
package__package_url__in=purls,
2908+
)
2909+
2910+
fixed = ImpactedPackageFixedBy.objects.filter(
2911+
impacted_package__advisory_id=OuterRef("pk"),
2912+
package__package_url__in=purls,
2913+
)
2914+
2915+
return (
2916+
self.annotate(
2917+
has_affecting=Exists(affecting),
2918+
has_fixed=Exists(fixed),
2919+
)
2920+
.filter(Q(has_affecting=True) | Q(has_fixed=True))
2921+
.latest_per_avid()
2922+
)
29082923

29092924

29102925
class AdvisoryV2(models.Model):

vulnerabilities/views.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@
4747
from vulnerablecode import __version__ as VULNERABLECODE_VERSION
4848
from vulnerablecode.settings import env
4949

50-
PAGE_SIZE = 20
50+
PAGE_SIZE = 10
5151

5252

5353
class PackageSearch(ListView):

0 commit comments

Comments
 (0)