Skip to content

Commit 131a823

Browse files
committed
Add fixed packages in packages endpoint
Signed-off-by: Tushar Goel <tushar.goel.dav@gmail.com>
1 parent c94ed57 commit 131a823

3 files changed

Lines changed: 21 additions & 0 deletions

File tree

vulnerabilities/api.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,7 @@ def to_representation(self, instance):
106106
fixing_vulnerabilities = MinimalVulnerabilitySerializer(
107107
many=True, source="resolved_to", read_only=True
108108
)
109+
fixed_packages = MinimalPackageSerializer(many=True, read_only=True)
109110

110111
class Meta:
111112
model = Package
@@ -119,6 +120,7 @@ class Meta:
119120
"qualifiers",
120121
"subpath",
121122
"affected_by_vulnerabilities",
123+
"fixed_packages",
122124
"fixing_vulnerabilities",
123125
]
124126

vulnerabilities/models.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -193,6 +193,24 @@ def resolved_to(self):
193193
"""
194194
return self.vulnerabilities.filter(packagerelatedvulnerability__fix=True)
195195

196+
@property
197+
# TODO: consider renaming to "affected_by"
198+
def fixed_packages(self):
199+
"""
200+
Returns vulnerabilities which are affecting this package.
201+
"""
202+
return (
203+
Package.objects.filter(
204+
name=self.name,
205+
namespace=self.namespace,
206+
type=self.type,
207+
qualifiers=self.qualifiers,
208+
subpath=self.subpath,
209+
)
210+
.filter(packagerelatedvulnerability__fix=True)
211+
.distinct()
212+
)
213+
196214
def set_package_url(self, package_url):
197215
"""
198216
Set each field values to the values of the provided `package_url` string

vulnerabilities/tests/test_fix_api.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,7 @@ def test_api_with_single_vulnerability(self):
9191
"unresolved_vulnerabilities": [],
9292
"qualifiers": {},
9393
"subpath": "",
94+
"fixed_packages": [],
9495
"affected_by_vulnerabilities": [],
9596
"fixing_vulnerabilities": [],
9697
}

0 commit comments

Comments
 (0)