From d1a49e63af85e950b81d0c3686b24eb8489d04d5 Mon Sep 17 00:00:00 2001 From: Rich James Date: Tue, 11 Nov 2025 21:09:18 +0000 Subject: [PATCH] Fixed package validation logic an url construction --- src/apm_cli/cli.py | 8 +++----- src/apm_cli/utils/github_host.py | 4 +++- tests/unit/test_github_host.py | 1 + 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/src/apm_cli/cli.py b/src/apm_cli/cli.py index 26ad393a4..597fa0a51 100644 --- a/src/apm_cli/cli.py +++ b/src/apm_cli/cli.py @@ -410,11 +410,9 @@ def _validate_package_exists(package): import tempfile # GitHub constants - package_url = ( - f"{package}.git" - if is_valid_fqdn(package) - else f"{default_host()}/{package}.git" - ) + + if is_valid_fqdn(package) : package_url = f"https://{package}.git" + else : package_url = f"{default_host()}/{package}.git" try: # Parse the package to check if it's a virtual package diff --git a/src/apm_cli/utils/github_host.py b/src/apm_cli/utils/github_host.py index 8fc9b7206..fe219cd18 100644 --- a/src/apm_cli/utils/github_host.py +++ b/src/apm_cli/utils/github_host.py @@ -65,7 +65,9 @@ def is_valid_fqdn(hostname: str) -> bool: """ if not hostname: return False - + + hostname = hostname.split('/')[0] # Remove any path components + # Single regex to validate all FQDN rules: # - Starts with alphanumeric # - Labels only contain alphanumeric and hyphens diff --git a/tests/unit/test_github_host.py b/tests/unit/test_github_host.py index 258589348..f5f3207c7 100644 --- a/tests/unit/test_github_host.py +++ b/tests/unit/test_github_host.py @@ -6,6 +6,7 @@ def test_valid_fqdns(): valid_hosts = [ "github.com", + "github.com/user/repo", "example.com", "sub.example.co.uk", "a1b2.example",