@@ -57,12 +57,27 @@ def resolve_manifest_resources(resource, package_registry):
5757 return packages
5858
5959
60- def get_packages (project , package_registry , manifest_resources , model = None ):
60+ def get_dependencies_from_manifest (resource ):
61+ """Get dependency data from resource."""
62+ dependencies = []
63+
64+ default_package_type = get_default_package_type (resource .location )
65+ if not default_package_type :
66+ return []
67+
68+ if default_package_type == "spdx" :
69+ dependencies = resolve_spdx_dependencies (input_location = resource .location )
70+
71+ return dependencies
72+
73+
74+ def get_data_from_manifests (project , package_registry , manifest_resources , model = None ):
6175 """
62- Get package data from package manifests/lockfiles/SBOMs or
63- get package data for resolved packages from package requirements.
76+ Get package and dependency data from package manifests/lockfiles/SBOMs or
77+ for resolved packages from package requirements.
6478 """
6579 resolved_packages = []
80+ resolved_dependencies = []
6681 sboms_headers = {}
6782
6883 if not manifest_resources .exists ():
@@ -73,7 +88,8 @@ def get_packages(project, package_registry, manifest_resources, model=None):
7388 return []
7489
7590 for resource in manifest_resources :
76- if packages := resolve_manifest_resources (resource , package_registry ):
91+ packages = resolve_manifest_resources (resource , package_registry )
92+ if packages :
7793 resolved_packages .extend (packages )
7894 if headers := get_manifest_headers (resource ):
7995 sboms_headers [resource .name ] = headers
@@ -84,10 +100,14 @@ def get_packages(project, package_registry, manifest_resources, model=None):
84100 resource = resource ,
85101 )
86102
103+ dependencies = get_dependencies_from_manifest (resource )
104+ if dependencies :
105+ resolved_dependencies .extend (dependencies )
106+
87107 if sboms_headers :
88108 project .update_extra_data ({"sboms_headers" : sboms_headers })
89109
90- return resolved_packages
110+ return resolved_packages , resolved_dependencies
91111
92112
93113def create_packages_and_dependencies (project , packages , resolved = False ):
@@ -136,7 +156,7 @@ def create_dependencies_from_packages_extra_data(project):
136156
137157 for bom_ref in for_package .extra_data .get ("depends_on" , []):
138158 try :
139- resolved_to_package = project_packages .get (extra_data__bom_ref = bom_ref )
159+ resolved_to_package = project_packages .get (package_uid = bom_ref )
140160 except (ObjectDoesNotExist , MultipleObjectsReturned ):
141161 project .add_error (
142162 description = f"Could not find resolved_to package entry: { bom_ref } ." ,
0 commit comments