diff --git a/pikit_api/releases.py b/pikit_api/releases.py index fd6f7c7..a7098a4 100644 --- a/pikit_api/releases.py +++ b/pikit_api/releases.py @@ -210,21 +210,22 @@ def fetch_manifest_for_channel(channel: str, with_meta: bool = False): try: parts = base_manifest_url.split("/") if "releases" not in parts: - if manifest: - return (manifest, {"version_dates": version_dates}) if with_meta else manifest - mf = fetch_manifest(base_manifest_url) - return (mf, {"version_dates": version_dates}) if with_meta else mf - idx = parts.index("releases") - owner = parts[idx - 2] - repo = parts[idx - 1] - base = "/".join(parts[:3]) - api_url = f"{base}/api/v1/repos/{owner}/{repo}/releases" - req = urllib.request.Request(api_url) - token = _auth_token() - if token: - req.add_header("Authorization", f"token {token}") - resp = urllib.request.urlopen(req, timeout=10) - releases = json.loads(resp.read().decode()) + # No releases API for this URL; keep any fetched manifest and skip API discovery. + releases = [] + if not manifest: + manifest = fetch_manifest(base_manifest_url) + else: + idx = parts.index("releases") + owner = parts[idx - 2] + repo = parts[idx - 1] + base = "/".join(parts[:3]) + api_url = f"{base}/api/v1/repos/{owner}/{repo}/releases" + req = urllib.request.Request(api_url) + token = _auth_token() + if token: + req.add_header("Authorization", f"token {token}") + resp = urllib.request.urlopen(req, timeout=10) + releases = json.loads(resp.read().decode()) # Map release versions to published dates so we can surface them later for rel in releases: