Skip to content

Commit c614e7a

Browse files
committed
🔨 Refactor codebase to use new Vulnerability model
Signed-off-by: Shivam Sandbhor <shivam.sandbhor@gmail.com>
1 parent 5c16611 commit c614e7a

38 files changed

Lines changed: 251 additions & 253 deletions

vulnerabilities/api.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ class Meta:
5353

5454

5555
class HyperLinkedVulnerabilitySerializer(serializers.HyperlinkedModelSerializer):
56-
vulnerability_id = serializers.CharField(source="cve_id")
56+
vulnerability_id = serializers.CharField(source="identifier")
5757

5858
class Meta:
5959
model = Vulnerability
@@ -128,7 +128,7 @@ class PackageViewSet(viewsets.ReadOnlyModelViewSet):
128128

129129

130130
class VulnerabilityFilterSet(filters.FilterSet):
131-
vulnerability_id = filters.CharFilter(field_name="cve_id")
131+
vulnerability_id = filters.CharFilter(field_name="identifier")
132132

133133
class Meta:
134134
model = Vulnerability

vulnerabilities/data_source.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -72,14 +72,14 @@ class Advisory:
7272
impacted_package_urls: Iterable[PackageURL]
7373
resolved_package_urls: Iterable[PackageURL] = dataclasses.field(default_factory=list)
7474
vuln_references: List[Reference] = dataclasses.field(default_factory=list)
75-
cve_id: Optional[str] = None
75+
identifier: Optional[str] = None
7676

7777
def __hash__(self):
7878
s = '{}{}{}{}'.format(
7979
self.summary,
8080
''.join(sorted([str(p) for p in self.impacted_package_urls])),
8181
''.join(sorted([str(p) for p in self.resolved_package_urls])),
82-
self.cve_id,
82+
self.identifier,
8383
)
8484
return hash(s)
8585

@@ -531,6 +531,6 @@ def get_data_from_xml_doc(self, xml_doc: ET.ElementTree, pkg_metadata={}) -> Lis
531531
summary=description,
532532
impacted_package_urls=affected_purls,
533533
resolved_package_urls=safe_purls,
534-
cve_id=vuln_id,
534+
identifier=vuln_id,
535535
vuln_references=references))
536536
return all_adv

vulnerabilities/fixtures/debian.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
"model": "vulnerabilities.vulnerability",
44
"pk": 1,
55
"fields": {
6-
"cve_id": "CVE-2014-8242",
6+
"identifier": "CVE-2014-8242",
77
"summary": "",
88
"cvss": null
99
}
@@ -12,7 +12,7 @@
1212
"model": "vulnerabilities.vulnerability",
1313
"pk": 2,
1414
"fields": {
15-
"cve_id": "CVE-2009-1382",
15+
"identifier": "CVE-2009-1382",
1616
"summary": "",
1717
"cvss": null
1818
}
@@ -21,7 +21,7 @@
2121
"model": "vulnerabilities.vulnerability",
2222
"pk": 3,
2323
"fields": {
24-
"cve_id": "CVE-2009-2459",
24+
"identifier": "CVE-2009-2459",
2525
"summary": "",
2626
"cvss": null
2727
}

vulnerabilities/fixtures/openssl.json

Lines changed: 178 additions & 178 deletions
Large diffs are not rendered by default.

vulnerabilities/import_runner.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -249,9 +249,8 @@ def handle_conflicts(conflicts):
249249
def _get_or_create_vulnerability(
250250
advisory: Advisory,
251251
) -> Tuple[models.Vulnerability, bool]:
252-
253-
if advisory.cve_id:
254-
query_kwargs = {"cve_id": advisory.cve_id}
252+
if advisory.identifier:
253+
query_kwargs = {"identifier": advisory.identifier}
255254
elif advisory.summary:
256255
query_kwargs = {"summary": advisory.summary}
257256
else:

vulnerabilities/importers/alpine_linux.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,7 @@ def _load_advisories(
163163
impacted_package_urls=[],
164164
resolved_package_urls=resolved_purls,
165165
vuln_references=references,
166-
cve_id=vuln_ids[0] if vuln_ids[0] != "CVE-????-?????" else None,
166+
identifier=vuln_ids[0] if vuln_ids[0] != "CVE-????-?????" else None,
167167
)
168168
)
169169

vulnerabilities/importers/archlinux.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ def _parse(self, record) -> List[Advisory]:
121121

122122
advisories.append(
123123
Advisory(
124-
cve_id=cve_id,
124+
identifier=cve_id,
125125
summary="",
126126
impacted_package_urls=impacted_purls,
127127
resolved_package_urls=resolved_purls,

vulnerabilities/importers/debian.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,7 @@ def _parse(self, pkg_name: str, records: Mapping[str, Any]) -> List[Advisory]:
145145

146146
advisories.append(
147147
Advisory(
148-
cve_id=cve_id,
148+
identifier=cve_id,
149149
summary=record.get("description", ""),
150150
impacted_package_urls=impacted_purls,
151151
resolved_package_urls=resolved_purls,

vulnerabilities/importers/gentoo.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ def process_file(self, file):
7777
# this way, but there seems no alternative.
7878
for cve in xml_data["cves"]:
7979
advisory = Advisory(
80-
cve_id=cve,
80+
identifier=cve,
8181
summary=xml_data["description"],
8282
impacted_package_urls=xml_data["affected_purls"],
8383
resolved_package_urls=xml_data["unaffected_purls"],

vulnerabilities/importers/github.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -209,7 +209,7 @@ def process_response(self) -> List[Advisory]:
209209
for cve_id in cve_ids:
210210
adv_list.append(
211211
Advisory(
212-
cve_id=cve_id,
212+
identifier=cve_id,
213213
summary=vuln_desc,
214214
impacted_package_urls=affected_purls,
215215
resolved_package_urls=unaffected_purls,

0 commit comments

Comments
 (0)