From 2861e42cd90edd7f072c6edd694de774bce579b2 Mon Sep 17 00:00:00 2001 From: Keshav Priyadarshi Date: Sat, 7 Dec 2024 00:59:35 +0530 Subject: [PATCH 1/2] Add federatedcode cli Signed-off-by: Keshav Priyadarshi --- aboutcode/federatedcode/cli.py | 25 ++++++++++++++++++++++ aboutcode/federatedcode/client/__init__.py | 10 ++++----- pyproject-aboutcode.federatedcode.toml | 2 ++ 3 files changed, 32 insertions(+), 5 deletions(-) create mode 100644 aboutcode/federatedcode/cli.py diff --git a/aboutcode/federatedcode/cli.py b/aboutcode/federatedcode/cli.py new file mode 100644 index 0000000..ec51f3f --- /dev/null +++ b/aboutcode/federatedcode/cli.py @@ -0,0 +1,25 @@ +#!/usr/bin/env python3 +# +# Copyright (c) nexB Inc. and others. All rights reserved. +# FederatedCode is a trademark of nexB Inc. +# SPDX-License-Identifier: Apache-2.0 +# See http://www.apache.org/licenses/LICENSE-2.0 for the license text. +# See https://github.com/nexB/federatedcode for support or download. +# See https://aboutcode.org for more information about AboutCode.org OSS projects. +# + +import click +from aboutcode.federatedcode.client import get_package_scan + +@click.command() +@click.argument('purl') +def handler(purl): + """ + Get package scan for PURL from FederatedCode git repository. + + PURL: PURL to fetch scan result + """ + click.echo(get_package_scan(purl=purl)) + +if __name__ == '__main__': + handler() diff --git a/aboutcode/federatedcode/client/__init__.py b/aboutcode/federatedcode/client/__init__.py index 0e97de7..a575296 100644 --- a/aboutcode/federatedcode/client/__init__.py +++ b/aboutcode/federatedcode/client/__init__.py @@ -18,7 +18,7 @@ load_dotenv() -FEDERATEDCODE_GITHUB_ACCOUNT_NAME = os.getenv("FEDERATEDCODE_GITHUB_ACCOUNT_NAME") +FEDERATEDCODE_GIT_RAW_URL = os.getenv("FEDERATEDCODE_GIT_RAW_URL", "https://raw.githubusercontent.com/aboutcode-org/") class ScanNotAvailableError(Exception): @@ -28,8 +28,8 @@ class ScanNotAvailableError(Exception): def get_package_scan(purl: Union[PackageURL, str]): """Return the package scan result for a PURL from the FederatedCode Git repository.""" - if not FEDERATEDCODE_GITHUB_ACCOUNT_NAME: - raise ValueError("Provide ``FEDERATEDCODE_GITHUB_ACCOUNT_NAME`` in .env file.") + if not FEDERATEDCODE_GIT_RAW_URL: + raise ValueError("Provide ``FEDERATEDCODE_GIT_RAW_URL`` in .env file.") if isinstance(purl, str): purl = PackageURL.from_string(purl) @@ -45,9 +45,9 @@ def get_package_scan(purl: Union[PackageURL, str]): version = purl.version file_name = "scancodeio.json" - url_parts = [FEDERATEDCODE_GITHUB_ACCOUNT_NAME, repo_name, package_dir_path, version, file_name] + url_parts = [repo_name, package_dir_path, version, file_name] - file_url = urljoin("https://raw.githubusercontent.com", "/".join(url_parts)) + file_url = urljoin(FEDERATEDCODE_GIT_RAW_URL, "/".join(url_parts)) try: response = requests.get(file_url) diff --git a/pyproject-aboutcode.federatedcode.toml b/pyproject-aboutcode.federatedcode.toml index fea69ec..babdc4b 100644 --- a/pyproject-aboutcode.federatedcode.toml +++ b/pyproject-aboutcode.federatedcode.toml @@ -42,6 +42,8 @@ dependencies = [ urls = { Homepage = "https://github.com/aboutcode-org/federatedcode" } +[project.scripts] + federatedcode = "aboutcode.federatedcode.cli:handler" [tool.bumpversion] current_version = "0.1.0" From 1e379548ae3a5caeae03a33bb6b2f8bb9b81e248 Mon Sep 17 00:00:00 2001 From: Keshav Priyadarshi Date: Sat, 7 Dec 2024 01:09:07 +0530 Subject: [PATCH 2/2] Add cli dependency Signed-off-by: Keshav Priyadarshi --- aboutcode/federatedcode/cli.py | 9 ++++++--- aboutcode/federatedcode/client/__init__.py | 5 ++++- pyproject-aboutcode.federatedcode.toml | 2 ++ 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/aboutcode/federatedcode/cli.py b/aboutcode/federatedcode/cli.py index ec51f3f..b472b87 100644 --- a/aboutcode/federatedcode/cli.py +++ b/aboutcode/federatedcode/cli.py @@ -9,17 +9,20 @@ # import click + from aboutcode.federatedcode.client import get_package_scan + @click.command() -@click.argument('purl') +@click.argument("purl") def handler(purl): """ Get package scan for PURL from FederatedCode git repository. - + PURL: PURL to fetch scan result """ click.echo(get_package_scan(purl=purl)) -if __name__ == '__main__': + +if __name__ == "__main__": handler() diff --git a/aboutcode/federatedcode/client/__init__.py b/aboutcode/federatedcode/client/__init__.py index a575296..3021ab4 100644 --- a/aboutcode/federatedcode/client/__init__.py +++ b/aboutcode/federatedcode/client/__init__.py @@ -18,7 +18,10 @@ load_dotenv() -FEDERATEDCODE_GIT_RAW_URL = os.getenv("FEDERATEDCODE_GIT_RAW_URL", "https://raw.githubusercontent.com/aboutcode-org/") +FEDERATEDCODE_GIT_RAW_URL = os.getenv( + "FEDERATEDCODE_GIT_RAW_URL", + "https://raw.githubusercontent.com/aboutcode-org/", +) class ScanNotAvailableError(Exception): diff --git a/pyproject-aboutcode.federatedcode.toml b/pyproject-aboutcode.federatedcode.toml index babdc4b..f6455a6 100644 --- a/pyproject-aboutcode.federatedcode.toml +++ b/pyproject-aboutcode.federatedcode.toml @@ -38,6 +38,8 @@ dependencies = [ "packageurl_python >= 0.15.6", "aboutcode.hashid>=0.1.0", "python-dotenv>=1.0.1", + "click>=8.1.7", + "requests>=2.32.3", ] urls = { Homepage = "https://github.com/aboutcode-org/federatedcode" }