Skip to content

Commit 542a048

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

38 files changed

Lines changed: 251 additions & 252 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
@@ -69,14 +69,14 @@ class Advisory:
6969
impacted_package_urls: Iterable[PackageURL]
7070
resolved_package_urls: Iterable[PackageURL] = dataclasses.field(default_factory=list)
7171
vuln_references: List[Reference] = dataclasses.field(default_factory=list)
72-
cve_id: Optional[str] = None
72+
identifier: Optional[str] = None
7373

7474
def __hash__(self):
7575
s = '{}{}{}{}'.format(
7676
self.summary,
7777
''.join(sorted([str(p) for p in self.impacted_package_urls])),
7878
''.join(sorted([str(p) for p in self.resolved_package_urls])),
79-
self.cve_id,
79+
self.identifier,
8080
)
8181
return hash(s)
8282

@@ -520,6 +520,6 @@ def get_data_from_xml_doc(self, xml_doc: ET.ElementTree, pkg_metadata={}) -> Lis
520520
summary=description,
521521
impacted_package_urls=affected_purls,
522522
resolved_package_urls=safe_purls,
523-
cve_id=vuln_id,
523+
identifier=vuln_id,
524524
vuln_references=references))
525525
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 & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -242,8 +242,8 @@ def handle_conflicts(conflicts):
242242
def _get_or_create_vulnerability(
243243
advisory: Advisory,
244244
) -> Tuple[models.Vulnerability, bool]:
245-
if advisory.cve_id:
246-
query_kwargs = {"cve_id": advisory.cve_id}
245+
if advisory.identifier:
246+
query_kwargs = {"identifier": advisory.identifier}
247247
elif advisory.summary:
248248
query_kwargs = {"summary": advisory.summary}
249249
else:

vulnerabilities/importers/alpine_linux.py

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

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)