Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
# Generated by Django 4.2.28 on 2026-03-03 01:02

from django.db import migrations, models


class Migration(migrations.Migration):

dependencies = [
('modules', '0005_alter_module_unique_together'),
]

operations = [
migrations.AlterField(
model_name='module',
name='context',
field=models.CharField(max_length=128),
),
migrations.AlterField(
model_name='module',
name='name',
field=models.CharField(max_length=128),
),
migrations.AlterField(
model_name='module',
name='stream',
field=models.CharField(max_length=128),
),
migrations.AlterField(
model_name='module',
name='version',
field=models.CharField(max_length=128),
),
]
10 changes: 5 additions & 5 deletions modules/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,10 +24,10 @@

class Module(models.Model):

name = models.CharField(max_length=255)
stream = models.CharField(max_length=255)
version = models.CharField(max_length=255)
context = models.CharField(max_length=255)
name = models.CharField(max_length=128)
stream = models.CharField(max_length=128)
version = models.CharField(max_length=128)
context = models.CharField(max_length=128)
arch = models.ForeignKey(PackageArchitecture, on_delete=models.CASCADE)
repo = models.ForeignKey(Repository, on_delete=models.CASCADE)
packages = models.ManyToManyField(Package, blank=True)
Expand All @@ -39,7 +39,7 @@ class Meta:
ordering = ['name', 'stream']

def __str__(self):
return f'{self.name}-{self.stream}-{self.version}-{self.version}-{self.context}'
return f'{self.name}-{self.stream}-{self.version}-{self.context}'

def get_absolute_url(self):
return reverse('modules:module_detail', args=[str(self.id)])
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# Generated by Django 4.2.28 on 2026-03-03 01:02

from django.db import migrations, models


class Migration(migrations.Migration):

dependencies = [
('operatingsystems', '0010_backfill_osvariant_counts'),
]

operations = [
migrations.AlterField(
model_name='osrelease',
name='codename',
field=models.CharField(blank=True, max_length=128),
),
migrations.AlterField(
model_name='osrelease',
name='cpe_name',
field=models.CharField(blank=True, max_length=128, null=True, unique=True),
),
migrations.AlterField(
model_name='osrelease',
name='name',
field=models.CharField(max_length=128, unique=True),
),
]
6 changes: 3 additions & 3 deletions operatingsystems/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,10 +24,10 @@

class OSRelease(models.Model):

name = models.CharField(max_length=255, unique=True, blank=False, null=False)
name = models.CharField(max_length=128, unique=True, blank=False, null=False)
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
name = models.CharField(max_length=128, unique=True, blank=False, null=False)
name = models.CharField(max_length=128, unique=True)

False is the default value Django uses for blank, so blank=False can be removed. Explained here.

Again, redundant default arguments can be removed.

repos = models.ManyToManyField(Repository, blank=True)
codename = models.CharField(max_length=255, blank=True)
cpe_name = models.CharField(max_length=255, null=True, blank=True, unique=True)
codename = models.CharField(max_length=128, blank=True)
cpe_name = models.CharField(max_length=128, null=True, blank=True, unique=True)
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

null=True on a string field causes inconsistent data types because the value can be either str or None. This adds complexity and maybe bugs, but can be solved by replacing null=True with default="". More.


from operatingsystems.managers import OSReleaseManager
objects = OSReleaseManager()
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# Generated by Django 4.2.28 on 2026-03-03 01:02

from django.db import migrations, models


class Migration(migrations.Migration):

dependencies = [
('packages', '0006_alter_packageupdate_options'),
]

operations = [
migrations.AlterField(
model_name='package',
name='epoch',
field=models.CharField(blank=True, max_length=128, null=True),
),
migrations.AlterField(
model_name='package',
name='release',
field=models.CharField(blank=True, max_length=128, null=True),
),
migrations.AlterField(
model_name='package',
name='version',
field=models.CharField(max_length=128),
),
]
18 changes: 9 additions & 9 deletions packages/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -74,9 +74,9 @@ class Package(models.Model):
)

name = models.ForeignKey(PackageName, on_delete=models.CASCADE)
epoch = models.CharField(max_length=255, blank=True, null=True)
version = models.CharField(max_length=255)
release = models.CharField(max_length=255, blank=True, null=True)
epoch = models.CharField(max_length=128, blank=True, null=True)
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
epoch = models.CharField(max_length=128, blank=True, null=True)
epoch = models.CharField(max_length=128, blank=True, default='')

null=True on a string field causes inconsistent data types because the value can be either str or None. This adds complexity and maybe bugs, but can be solved by replacing null=True with default="". More details.

version = models.CharField(max_length=128)
release = models.CharField(max_length=128, blank=True, null=True)
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
release = models.CharField(max_length=128, blank=True, null=True)
release = models.CharField(max_length=128, blank=True, default='')

As above, consider replacing null=True with default="" (and blank=True to pass validation checks).

arch = models.ForeignKey(PackageArchitecture, on_delete=models.CASCADE)
packagetype = models.CharField(max_length=1, choices=PACKAGE_TYPES, blank=True, null=True)
category = models.ForeignKey(PackageCategory, blank=True, null=True, on_delete=models.SET_NULL)
Expand Down Expand Up @@ -173,13 +173,13 @@ def repo_count(self):

class PackageString(models.Model):

name = models.CharField(max_length=255)
version = models.CharField(max_length=255)
epoch = models.CharField(max_length=255, blank=True, null=True)
release = models.CharField(max_length=255, blank=True, null=True)
arch = models.CharField(max_length=255)
name = models.CharField(max_length=128)
version = models.CharField(max_length=128)
epoch = models.CharField(max_length=128, blank=True, null=True)
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
epoch = models.CharField(max_length=128, blank=True, null=True)
epoch = models.CharField(max_length=128, blank=True, default='')

As above, consider replacing null=True with default="" (and blank=True to pass validation checks).

release = models.CharField(max_length=128, blank=True, null=True)
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
release = models.CharField(max_length=128, blank=True, null=True)
release = models.CharField(max_length=128, blank=True, default='')

Again, consider replacing null=True with default="" (and blank=True to pass validation checks).

arch = models.CharField(max_length=128)
packagetype = models.CharField(max_length=1, blank=True, null=True)
category = models.CharField(max_length=255, blank=True, null=True)
category = models.CharField(max_length=128, blank=True, null=True)
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
category = models.CharField(max_length=128, blank=True, null=True)
category = models.CharField(max_length=128, blank=True, default='')

Again, consider replacing null=True with default="" (and blank=True to pass validation checks).

description = models.TextField(blank=True, null=True)
url = models.URLField(max_length=255, blank=True, null=True)

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
# Generated by Django 4.2.28 on 2026-03-03 01:02

from django.db import migrations, models


class Migration(migrations.Migration):

dependencies = [
('security', '0008_alter_cwe_options_alter_reference_options'),
]

operations = [
migrations.AlterField(
model_name='cvss',
name='severity',
field=models.CharField(blank=True, max_length=128, null=True),
),
migrations.AlterField(
model_name='cvss',
name='vector_string',
field=models.CharField(blank=True, max_length=128, null=True),
),
migrations.AlterField(
model_name='reference',
name='ref_type',
field=models.CharField(max_length=128),
),
migrations.AlterField(
model_name='reference',
name='url',
field=models.URLField(max_length=512),
),
]
8 changes: 4 additions & 4 deletions security/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,8 @@

class Reference(models.Model):

ref_type = models.CharField(max_length=255)
url = models.URLField(max_length=765)
ref_type = models.CharField(max_length=128)
url = models.URLField(max_length=512)

class Meta:
unique_together = ['ref_type', 'url']
Expand Down Expand Up @@ -82,9 +82,9 @@ def fetch_cwe_data(self):
class CVSS(models.Model):

score = models.DecimalField(max_digits=3, decimal_places=1, null=True)
severity = models.CharField(max_length=255, blank=True, null=True)
severity = models.CharField(max_length=128, blank=True, null=True)
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
severity = models.CharField(max_length=128, blank=True, null=True)
severity = models.CharField(max_length=128, blank=True, default='')

null=True on a string field causes inconsistent data types because the value can be either str or None. This adds complexity and maybe bugs, but can be solved by replacing null=True with default="". More details.

version = models.DecimalField(max_digits=2, decimal_places=1)
vector_string = models.CharField(max_length=255, blank=True, null=True)
vector_string = models.CharField(max_length=128, blank=True, null=True)
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
vector_string = models.CharField(max_length=128, blank=True, null=True)
vector_string = models.CharField(max_length=128, blank=True, default='')

Same as above: consider replacing null=True with default="" (and blank=True to pass validation checks).


class Meta:
unique_together = ['score', 'severity', 'version', 'vector_string']
Expand Down