Skip to content

Commit c8424b3

Browse files
committed
Add package_uid field to DiscoveredPackage #411
* Update expected test results Signed-off-by: Jono Yang <jyang@nexb.com>
1 parent 0c26b7c commit c8424b3

11 files changed

+170111
-3775
lines changed
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
# Generated by Django 4.0.4 on 2022-06-09 18:26
2+
3+
from django.db import migrations, models
4+
5+
6+
class Migration(migrations.Migration):
7+
8+
dependencies = [
9+
('scanpipe', '0015_alter_codebaseresource_project_and_more'),
10+
]
11+
12+
operations = [
13+
migrations.AddField(
14+
model_name='discoveredpackage',
15+
name='package_uid',
16+
field=models.CharField(blank=True, help_text='Unique identifier for this package.', max_length=1024),
17+
),
18+
]

scanpipe/models.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1726,6 +1726,11 @@ class DiscoveredPackage(
17261726
blank=True,
17271727
help_text=_("A list of dependencies for this package."),
17281728
)
1729+
package_uid = models.CharField(
1730+
max_length=1024,
1731+
blank=True,
1732+
help_text=_("Unique identifier for this package."),
1733+
)
17291734

17301735
# `AbstractPackage` model overrides:
17311736
keywords = models.JSONField(default=list, blank=True)

scanpipe/pipes/__init__.py

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -75,25 +75,16 @@ def update_or_create_package(project, package_data, codebase_resource=None):
7575
Uses the `project` and `package_data` mapping to lookup and creates the
7676
DiscoveredPackage using its Package URL and package_uid as a unique key.
7777
"""
78-
purl_data = DiscoveredPackage.extract_purl_data(package_data)
7978
package_uid = package_data.get("package_uid")
80-
purl_data_and_package_uid = {
81-
**purl_data,
82-
"extra_data": {"package_uid": package_uid},
83-
}
8479

8580
try:
8681
package = DiscoveredPackage.objects.get(
8782
project=project,
88-
**purl_data_and_package_uid
83+
package_uid=package_uid,
8984
)
9085
except DiscoveredPackage.DoesNotExist:
9186
package = None
9287

93-
package_data = {
94-
**package_data,
95-
"extra_data": {"package_uid": package_uid},
96-
}
9788
if package:
9889
package.update_from_data(package_data)
9990

scanpipe/pipes/scancode.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -396,7 +396,7 @@ def create_codebase_resources(project, scanned_codebase):
396396
if hasattr(scanned_resource, "for_packages"):
397397
for package_uid in scanned_resource.for_packages:
398398
package = DiscoveredPackage.objects.get(
399-
extra_data__contains={"package_uid": package_uid}
399+
package_uid=package_uid
400400
)
401401
set_codebase_resource_for_package(
402402
codebase_resource=cbr, discovered_package=package

0 commit comments

Comments
 (0)