Skip to content

Commit cb1fa4d

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

File tree

2 files changed

+89
-0
lines changed

2 files changed

+89
-0
lines changed
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
@@ -1559,3 +1559,32 @@ class Exploit(models.Model):
15591559
@property
15601560
def get_known_ransomware_campaign_use_type(self):
15611561
return "Known" if self.known_ransomware_campaign_use else "Unknown"
1562+
1563+
1564+
class CodeChange(models.Model):
1565+
commits = models.JSONField(blank=True, default=list)
1566+
pulls = models.JSONField(blank=True, default=list)
1567+
downloads = models.JSONField(blank=True, default=list)
1568+
patch = models.TextField(blank=True, null=True)
1569+
notes = models.TextField(blank=True, null=True)
1570+
references = models.JSONField(blank=True, default=list)
1571+
status_reviewed = models.BooleanField(default=False)
1572+
base_version = models.ForeignKey(
1573+
"Package",
1574+
null=True,
1575+
blank=True,
1576+
on_delete=models.SET_NULL,
1577+
related_name="base_version_changes",
1578+
)
1579+
base_commit = models.CharField(max_length=255, blank=True, null=True)
1580+
1581+
created_at = models.DateTimeField(auto_now_add=True)
1582+
updated_at = models.DateTimeField(auto_now=True)
1583+
1584+
class Meta:
1585+
abstract = True
1586+
1587+
1588+
class CodeFix(CodeChange):
1589+
vulnerabilities = models.ManyToManyField("Vulnerability", related_name="codefixes", blank=True)
1590+
applies_to_versions = models.ManyToManyField("Package", related_name="fixes", blank=True)

0 commit comments

Comments
 (0)