Skip to content

Commit 9b335c4

Browse files
committed
Add migrations to remove corrupted advisories
Signed-off-by: Tushar Goel <[email protected]>
1 parent 59fd972 commit 9b335c4

File tree

1 file changed

+29
-0
lines changed

1 file changed

+29
-0
lines changed
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
from django.db import migrations
2+
from packageurl import PackageURL
3+
4+
from vulnerabilities.severity_systems import SCORING_SYSTEMS
5+
6+
class Migration(migrations.Migration):
7+
8+
def remove_advisories(apps, schema_editor):
9+
Advisory = apps.get_model("vulnerabilities", "Advisory")
10+
deletables = []
11+
for advisory in Advisory.objects.iterator(chunk_size=1000):
12+
print(advisory.pk)
13+
for ref in advisory.references:
14+
if not ref["url"]:
15+
deletables.append(advisory.pk)
16+
break
17+
for sev in ref["severities"]:
18+
if sev["system"] not in SCORING_SYSTEMS:
19+
deletables.append(advisory.pk)
20+
break
21+
Advisory.objects.filter(pk__in=deletables).delete()
22+
23+
dependencies = [
24+
("vulnerabilities", "0036_alter_package_package_url_and_more"),
25+
]
26+
27+
operations = [
28+
migrations.RunPython(remove_advisories, reverse_code=migrations.RunPython.noop),
29+
]

0 commit comments

Comments
 (0)