Skip to content

Commit 8519b0d

Browse files
committed
Add models for CodeFix
Signed-off-by: Tushar Goel <tushar.goel.dav@gmail.com>
1 parent 7f82ef4 commit 8519b0d

2 files changed

Lines changed: 89 additions & 0 deletions

File tree

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
# Generated by Django 4.2.16 on 2024-12-20 17:29
2+
3+
from django.db import migrations, models
4+
import django.db.models.deletion
5+
6+
7+
class Migration(migrations.Migration):
8+
9+
dependencies = [
10+
("vulnerabilities", "0084_alter_package_options_package_version_rank"),
11+
]
12+
13+
operations = [
14+
migrations.CreateModel(
15+
name="CodeFix",
16+
fields=[
17+
(
18+
"id",
19+
models.AutoField(
20+
auto_created=True, primary_key=True, serialize=False, verbose_name="ID"
21+
),
22+
),
23+
("commits", models.JSONField(blank=True, default=list)),
24+
("pulls", models.JSONField(blank=True, default=list)),
25+
("downloads", models.JSONField(blank=True, default=list)),
26+
("patch", models.TextField(blank=True, null=True)),
27+
("notes", models.TextField(blank=True, null=True)),
28+
("references", models.JSONField(blank=True, default=list)),
29+
("status_reviewed", models.BooleanField(default=False)),
30+
("base_commit", models.CharField(blank=True, max_length=255, null=True)),
31+
("created_at", models.DateTimeField(auto_now_add=True)),
32+
("updated_at", models.DateTimeField(auto_now=True)),
33+
(
34+
"applies_to_versions",
35+
models.ManyToManyField(
36+
blank=True, related_name="fixes", to="vulnerabilities.package"
37+
),
38+
),
39+
(
40+
"base_version",
41+
models.ForeignKey(
42+
blank=True,
43+
null=True,
44+
on_delete=django.db.models.deletion.SET_NULL,
45+
related_name="base_version_changes",
46+
to="vulnerabilities.package",
47+
),
48+
),
49+
(
50+
"vulnerabilities",
51+
models.ManyToManyField(
52+
blank=True, related_name="codefixes", to="vulnerabilities.vulnerability"
53+
),
54+
),
55+
],
56+
options={
57+
"abstract": False,
58+
},
59+
),
60+
]

vulnerabilities/models.py

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1581,3 +1581,32 @@ class Exploit(models.Model):
15811581
@property
15821582
def get_known_ransomware_campaign_use_type(self):
15831583
return "Known" if self.known_ransomware_campaign_use else "Unknown"
1584+
1585+
1586+
class CodeChange(models.Model):
1587+
commits = models.JSONField(blank=True, default=list)
1588+
pulls = models.JSONField(blank=True, default=list)
1589+
downloads = models.JSONField(blank=True, default=list)
1590+
patch = models.TextField(blank=True, null=True)
1591+
notes = models.TextField(blank=True, null=True)
1592+
references = models.JSONField(blank=True, default=list)
1593+
status_reviewed = models.BooleanField(default=False)
1594+
base_version = models.ForeignKey(
1595+
"Package",
1596+
null=True,
1597+
blank=True,
1598+
on_delete=models.SET_NULL,
1599+
related_name="base_version_changes",
1600+
)
1601+
base_commit = models.CharField(max_length=255, blank=True, null=True)
1602+
1603+
created_at = models.DateTimeField(auto_now_add=True)
1604+
updated_at = models.DateTimeField(auto_now=True)
1605+
1606+
class Meta:
1607+
abstract = True
1608+
1609+
1610+
class CodeFix(CodeChange):
1611+
vulnerabilities = models.ManyToManyField("Vulnerability", related_name="codefixes", blank=True)
1612+
applies_to_versions = models.ManyToManyField("Package", related_name="fixes", blank=True)

0 commit comments

Comments
 (0)