diff --git a/vulnerabilities/importer.py b/vulnerabilities/importer.py index aaac910a1..698b2f251 100644 --- a/vulnerabilities/importer.py +++ b/vulnerabilities/importer.py @@ -233,7 +233,7 @@ class AdvisoryData: """ aliases: List[str] = dataclasses.field(default_factory=list) - summary: Optional[str] = None + summary: Optional[str] = "" affected_packages: List[AffectedPackage] = dataclasses.field(default_factory=list) references: List[Reference] = dataclasses.field(default_factory=list) date_published: Optional[datetime.datetime] = None diff --git a/vulnerabilities/improver.py b/vulnerabilities/improver.py index f0ec5cd9d..54a0a9b18 100644 --- a/vulnerabilities/improver.py +++ b/vulnerabilities/improver.py @@ -29,7 +29,7 @@ class Inference: vulnerability_id: str = None aliases: Optional[List[str]] = dataclasses.field(default_factory=list) confidence: int = MAX_CONFIDENCE - summary: Optional[str] = None + summary: Optional[str] = "" affected_purls: Optional[List[PackageURL]] = dataclasses.field(default_factory=list) fixed_purl: PackageURL = None references: List[Reference] = dataclasses.field(default_factory=list) diff --git a/vulnerabilities/migrations/0009_alter_advisory_summary_and_more.py b/vulnerabilities/migrations/0009_alter_advisory_summary_and_more.py new file mode 100644 index 000000000..3b8ce5f90 --- /dev/null +++ b/vulnerabilities/migrations/0009_alter_advisory_summary_and_more.py @@ -0,0 +1,33 @@ +# Generated by Django 4.0.3 on 2022-04-15 18:39 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('vulnerabilities', '0008_alter_vulnerabilityseverity_scoring_system'), + ] + + operations = [ + migrations.AlterField( + model_name='advisory', + name='summary', + field=models.TextField(blank=True), + ), + migrations.AlterField( + model_name='advisory', + name='unique_content_id', + field=models.CharField(blank=True, max_length=32), + ), + migrations.AlterField( + model_name='vulnerability', + name='summary', + field=models.TextField(blank=True, help_text='Summary of the vulnerability'), + ), + migrations.AlterField( + model_name='vulnerabilityreference', + name='reference_id', + field=models.CharField(blank=True, help_text='An optional reference ID, such as DSA-4465-1 when available', max_length=200), + ), + ] diff --git a/vulnerabilities/models.py b/vulnerabilities/models.py index ebc9bf141..dee7773aa 100644 --- a/vulnerabilities/models.py +++ b/vulnerabilities/models.py @@ -57,7 +57,6 @@ class Vulnerability(models.Model): summary = models.TextField( help_text="Summary of the vulnerability", - null=True, blank=True, ) @@ -104,7 +103,6 @@ class VulnerabilityReference(models.Model): max_length=200, help_text="An optional reference ID, such as DSA-4465-1 when available", blank=True, - null=True, ) @property @@ -324,9 +322,14 @@ class Advisory(models.Model): into structured data """ - unique_content_id = models.CharField(max_length=32, blank=True, null=True) + unique_content_id = models.CharField( + max_length=32, + blank=True, + ) aliases = models.JSONField(blank=True, default=list, help_text="A list of alias strings") - summary = models.TextField(blank=True, null=True) + summary = models.TextField( + blank=True, + ) # we use a JSON field here to avoid creating a complete relational model for data that # is never queried directly; instead it is only retrieved and processed as a whole by # an improver diff --git a/vulnerabilities/tests/test_alpine.py b/vulnerabilities/tests/test_alpine.py index 3f1f5f950..26538f4cf 100644 --- a/vulnerabilities/tests/test_alpine.py +++ b/vulnerabilities/tests/test_alpine.py @@ -43,7 +43,7 @@ def test_process_record(caplog): expected_advisories = [ AdvisoryData( aliases=[], - summary=None, + summary="", affected_packages=[ AffectedPackage( package=PackageURL( @@ -149,7 +149,7 @@ def test_process_record(caplog): ), AdvisoryData( aliases=["CVE-2018-7540"], - summary=None, + summary="", affected_packages=[ AffectedPackage( package=PackageURL( @@ -255,7 +255,7 @@ def test_process_record(caplog): ), AdvisoryData( aliases=["CVE-2017-9669"], - summary=None, + summary="", affected_packages=[ AffectedPackage( package=PackageURL( @@ -355,7 +355,7 @@ def test_process_record(caplog): ), AdvisoryData( aliases=["CVE-2017-9671"], - summary=None, + summary="", affected_packages=[ AffectedPackage( package=PackageURL(