Skip to content

Commit e936834

Browse files
committed
Remove unique content ID from unqiue together
Signed-off-by: Tushar Goel <tushar.goel.dav@gmail.com>
1 parent e5b68fd commit e936834

File tree

4 files changed

+21
-2
lines changed

4 files changed

+21
-2
lines changed
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
# Generated by Django 4.2.16 on 2025-02-14 15:42
2+
3+
from django.db import migrations
4+
5+
6+
class Migration(migrations.Migration):
7+
8+
dependencies = [
9+
("vulnerabilities", "0089_alter_advisory_unique_content_id"),
10+
]
11+
12+
operations = [
13+
migrations.AlterUniqueTogether(
14+
name="advisory",
15+
unique_together={("aliases", "date_published", "url")},
16+
),
17+
]

vulnerabilities/models.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1356,7 +1356,7 @@ class Advisory(models.Model):
13561356
objects = AdvisoryQuerySet.as_manager()
13571357

13581358
class Meta:
1359-
unique_together = ["aliases", "unique_content_id", "date_published", "url"]
1359+
unique_together = ["aliases", "date_published", "url"]
13601360
ordering = ["aliases", "date_published", "unique_content_id"]
13611361

13621362
def save(self, *args, **kwargs):

vulnerabilities/pipelines/remove_duplicate_advisories.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ def recompute_content_ids(self):
7979
batch_size = 1000
8080

8181
for advisory in progress.iter(Advisory.objects.all().paginated()):
82-
advisory.unique_content_id = compute_content_id(advisory)
82+
advisory.unique_content_id = compute_content_id(advisory.to_advisory_data())
8383
advisories.append(advisory)
8484
if len(advisories) % batch_size == 0:
8585
Advisory.objects.bulk_update(

vulnerabilities/utils.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -574,6 +574,7 @@ def compute_content_id(advisory_data, include_metadata=False):
574574

575575
if isinstance(advisory_data, Advisory):
576576
normalized_data = {
577+
"aliases": normalize_list(advisory_data.aliases),
577578
"summary": normalize_text(advisory_data.summary),
578579
"affected_packages": [
579580
pkg for pkg in normalize_list(advisory_data.affected_packages) if pkg
@@ -585,6 +586,7 @@ def compute_content_id(advisory_data, include_metadata=False):
585586

586587
elif isinstance(advisory_data, AdvisoryData):
587588
normalized_data = {
589+
"aliases": normalize_list(advisory_data.aliases),
588590
"summary": normalize_text(advisory_data.summary),
589591
"affected_packages": [
590592
pkg.to_dict() for pkg in normalize_list(advisory_data.affected_packages) if pkg

0 commit comments

Comments
 (0)