Skip to content

Commit b3d5fc5

Browse files
committed
Use unique_content_id for get_or_create Advisory
- Since unique_content_id is a proxy for other fields using it is enough and sufficient. Signed-off-by: Keshav Priyadarshi <[email protected]>
1 parent 16994eb commit b3d5fc5

File tree

2 files changed

+13
-12
lines changed

2 files changed

+13
-12
lines changed

vulnerabilities/import_runner.py

+6-6
Original file line numberDiff line numberDiff line change
@@ -108,16 +108,16 @@ def process_advisories(
108108
aliases = get_or_create_aliases(aliases=data.aliases)
109109
obj, created = Advisory.objects.get_or_create(
110110
unique_content_id=content_id,
111-
summary=data.summary,
112-
affected_packages=[pkg.to_dict() for pkg in data.affected_packages],
113-
references=[ref.to_dict() for ref in data.references],
114-
date_published=data.date_published,
115-
weaknesses=data.weaknesses,
111+
url=data.url,
116112
defaults={
113+
"summary": data.summary,
114+
"affected_packages": [pkg.to_dict() for pkg in data.affected_packages],
115+
"references": [ref.to_dict() for ref in data.references],
116+
"date_published": data.date_published,
117+
"weaknesses": data.weaknesses,
117118
"created_by": importer_name,
118119
"date_collected": datetime.datetime.now(tz=datetime.timezone.utc),
119120
},
120-
url=data.url,
121121
)
122122
obj.aliases.add(*aliases)
123123
if not obj.date_imported:

vulnerabilities/pipes/advisory.py

+7-6
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
from typing import List
1616

1717
from django.db import transaction
18+
from django.db.models.query import QuerySet
1819

1920
from vulnerabilities.importer import AdvisoryData
2021
from vulnerabilities.improver import MAX_CONFIDENCE
@@ -29,7 +30,7 @@
2930
from vulnerabilities.models import Weakness
3031

3132

32-
def get_or_create_aliases(aliases: List) -> List:
33+
def get_or_create_aliases(aliases: List) -> QuerySet:
3334
for alias in aliases:
3435
Alias.objects.get_or_create(alias=alias)
3536
return Alias.objects.filter(alias__in=aliases)
@@ -44,13 +45,13 @@ def insert_advisory(advisory: AdvisoryData, pipeline_id: str, logger: Callable =
4445
try:
4546
advisory_obj, _ = Advisory.objects.get_or_create(
4647
unique_content_id=content_id,
47-
summary=advisory.summary,
48-
affected_packages=[pkg.to_dict() for pkg in advisory.affected_packages],
49-
references=[ref.to_dict() for ref in advisory.references],
50-
date_published=advisory.date_published,
51-
weaknesses=advisory.weaknesses,
5248
url=advisory.url,
5349
defaults={
50+
"summary": advisory.summary,
51+
"affected_packages": [pkg.to_dict() for pkg in advisory.affected_packages],
52+
"references": [ref.to_dict() for ref in advisory.references],
53+
"date_published": advisory.date_published,
54+
"weaknesses": advisory.weaknesses,
5455
"created_by": pipeline_id,
5556
"date_collected": datetime.now(timezone.utc),
5657
},

0 commit comments

Comments
 (0)