From 177a66f27a506e5ab38543f1624525fd40d495ee Mon Sep 17 00:00:00 2001 From: Vasily Pozdnyakov Date: Fri, 9 May 2025 11:07:01 +0200 Subject: [PATCH 1/2] Fix errors when scanning metadata files. Signed-off-by: Vasily Pozdnyakov --- src/packagedcode/build.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/packagedcode/build.py b/src/packagedcode/build.py index 2f2d964758..67a6912a46 100644 --- a/src/packagedcode/build.py +++ b/src/packagedcode/build.py @@ -424,7 +424,7 @@ def parse(cls, location, package_only=True): @classmethod def assign_package_to_resources(cls, package, resource, codebase, package_adder): models.DatafileHandler.assign_package_to_parent_tree( - package_=package, + package=package, resource=resource, codebase=codebase, package_adder=package_adder, From bddc5a1f88624f2275f8e8f9d543d2a6129a5a47 Mon Sep 17 00:00:00 2001 From: Vasily Pozdnyakov Date: Fri, 9 May 2025 18:03:09 +0200 Subject: [PATCH 2/2] Add test Signed-off-by: Vasily Pozdnyakov --- .../new-format/metadatabzl-expected.json | 68 +++++++++++++++++++ tests/packagedcode/test_build.py | 7 ++ 2 files changed, 75 insertions(+) create mode 100644 tests/packagedcode/data/build/metadatabzl/new-format/metadatabzl-expected.json diff --git a/tests/packagedcode/data/build/metadatabzl/new-format/metadatabzl-expected.json b/tests/packagedcode/data/build/metadatabzl/new-format/metadatabzl-expected.json new file mode 100644 index 0000000000..2baa7c2a88 --- /dev/null +++ b/tests/packagedcode/data/build/metadatabzl/new-format/metadatabzl-expected.json @@ -0,0 +1,68 @@ +{ + "packages": [], + "dependencies": [], + "files": [ + { + "path": "METADATA.bzl", + "type": "file", + "package_data": [ + { + "type": "github", + "namespace": null, + "name": "example/example", + "version": "0.0.1", + "qualifiers": {}, + "subpath": null, + "primary_language": null, + "description": null, + "release_date": null, + "parties": [ + { + "type": "organization", + "role": "maintainer", + "name": "example_org", + "email": null, + "url": null + } + ], + "keywords": [], + "homepage_url": "https://github.com/example/example", + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": "https://github.com/example/example.git", + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": "BSD-3-Clause", + "notice_text": null, + "source_packages": [], + "file_references": [], + "is_private": "no", + "is_virtual": "no", + "extra_data": { + "vcs_commit_hash": "deadbeef" + }, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "buck_metadata", + "purl": "pkg:github/example/example@0.0.1" + } + ], + "for_packages": [], + "scan_errors": [] + } + ] +} diff --git a/tests/packagedcode/test_build.py b/tests/packagedcode/test_build.py index 11b2c8cb5f..3b6ef77cf7 100644 --- a/tests/packagedcode/test_build.py +++ b/tests/packagedcode/test_build.py @@ -31,6 +31,13 @@ def test_end2end_scan_can_detect_bazel(self): run_scan_click(['--package', test_file, '--json-pp', result_file]) check_json_scan(expected_file, result_file, regen=REGEN_TEST_FIXTURES) + def test_end2end_scan_can_detect_MetadataBazel(self): + test_file = self.get_test_loc('metadatabzl/new-format/METADATA.bzl') + expected_file = self.get_test_loc('metadatabzl/new-format/metadatabzl-expected.json') + result_file = self.get_temp_file('results.json') + run_scan_click(['--package', test_file, '--json-pp', result_file]) + check_json_scan(expected_file, result_file, regen=REGEN_TEST_FIXTURES) + def test_end2end_scan_can_detect_buck(self): test_file = self.get_test_loc('buck/end2end') expected_file = self.get_test_loc('buck/end2end-expected.json')