@@ -50,6 +50,7 @@ def build_packages_from_release_json(metadata, uri=None):
5050 extracted_license_statement = [l for l in release .get ('license' , []) if l and l .strip ()]
5151
5252 common_data = dict (
53+ datasource_id = "cpan_release_json" ,
5354 type = 'cpan' ,
5455 name = name ,
5556 description = release .get ('abstract' ),
@@ -58,7 +59,8 @@ def build_packages_from_release_json(metadata, uri=None):
5859 extracted_license_statement = extracted_license_statement ,
5960 # the date format passing is like:
6061 # "2014-04-20T21:30:13"
61- release_date = parse_date (release .get ('date' ))
62+ release_date = parse_date (release .get ('date' )),
63+ license_detections = [],
6264 )
6365
6466 # Get the homepage_url, declared_license and vcs_repository/vcs_tool under resources section.
@@ -101,9 +103,12 @@ def build_packages_from_release_json(metadata, uri=None):
101103 type = scan_models .party_person ,
102104 name = release .get ('author' ), role = 'author' )
103105 common_data ['parties' ] = common_data .get ('parties' , [])
104- common_data ['parties' ].append (party )
106+ common_data ['parties' ].append (party . to_dict () )
105107
106- package = scan_models .Package (** common_data )
108+ package = scan_models .Package .from_package_data (
109+ package_data = common_data ,
110+ datafile_path = uri ,
111+ )
107112 package_url = PackageURL (type = 'cpan' , name = release .get ('name' ), version = release .get ('version' ))
108113 package .set_purl (package_url .to_string ())
109114 yield package
@@ -173,6 +178,7 @@ def build_packages_from_metafile(metadata, uri=None, purl=None):
173178 # https://spdx.org/spdx-specification-21-web-version#h.49x2ik5
174179 vcs_repo = vcs_tool + '+' + vcs_repo
175180 common_data = dict (
181+ datasource_id = "cpan_metadata_json" ,
176182 type = 'cpan' ,
177183 name = name ,
178184 description = content .get ('abstract' , name ),
@@ -181,6 +187,7 @@ def build_packages_from_metafile(metadata, uri=None, purl=None):
181187 extracted_license_statement = extracted_license_statement ,
182188 vcs_url = vcs_repo ,
183189 keywords = keywords_content ,
190+ license_detections = [],
184191 )
185192
186193 parties = common_data ['parties' ] = []
@@ -201,9 +208,9 @@ def build_packages_from_metafile(metadata, uri=None, purl=None):
201208 email = author_email
202209 )
203210
204- parties .append (party )
211+ parties .append (party . to_dict () )
205212
206- package = scan_models .PackageData ( ** common_data )
213+ package = scan_models .PackageData . from_data ( package_data = common_data )
207214 package .set_purl (purl )
208215 yield package
209216
@@ -260,6 +267,7 @@ def build_packages_from_readmefile(metadata, uri=None, purl=None):
260267 vcs_repo = vcs_tool + '+' + vcs_repo
261268 copyr = content .get ('COPYRIGHT and LICENSE' )
262269 common_data = dict (
270+ datasource_id = "cpan_readme" ,
263271 type = 'cpan' ,
264272 name = name ,
265273 description = content .get ('ABSTRACT' , name ),
@@ -284,7 +292,7 @@ def build_packages_from_readmefile(metadata, uri=None, purl=None):
284292 keywords_content = [content .get ('KEYWORDS' )]
285293 common_data ['keywords' ] = keywords_content
286294
287- package = scan_models .PackageData ( ** common_data )
295+ package = scan_models .PackageData . from_data ( package_data = common_data )
288296 package .set_purl (purl )
289297 yield package
290298
0 commit comments