Skip to content

Commit 2619905

Browse files
committed
distro: download GitHub raw URL using helpers
1 parent a0087a6 commit 2619905

1 file changed

Lines changed: 4 additions & 24 deletions

File tree

vinca/distro.py

Lines changed: 4 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -188,31 +188,11 @@ def get_package_names(self):
188188
return self._distro.release_packages.keys()
189189

190190
def get_package_xml_for_additional_package(self, pkg_info):
191-
# Build raw GitHub URL for package.xml
192191
raw_url_base = pkg_info.get("url")
193-
if raw_url_base.endswith(".git"):
194-
raw_url_base = raw_url_base[:-4]
195-
if "github.com" not in raw_url_base:
196-
raise RuntimeError(f"Cannot handle non-GitHub URL: {raw_url_base}")
197-
# Extract owner/repo
198-
owner_repo = raw_url_base.split("github.com/")[-1]
199-
# Use rev if available, otherwise fallback to tag
200-
ref = pkg_info.get("rev") or pkg_info.get("tag")
201-
xml_name = pkg_info.get("package_xml_name", "package.xml")
202-
additional_folder = pkg_info.get("additional_folder", "")
203-
if additional_folder != "":
204-
additional_folder = additional_folder + "/"
205-
raw_url = f"https://raw.githubusercontent.com/{owner_repo}/{ref}/{additional_folder}{xml_name}"
206-
if raw_url in self._additional_xml_cache:
207-
return self._additional_xml_cache[raw_url]
208-
209-
try:
210-
with urllib.request.urlopen(raw_url) as resp:
211-
xml_content = resp.read().decode("utf-8")
212-
self._additional_xml_cache[raw_url] = xml_content
213-
return xml_content
214-
except Exception as e:
215-
raise RuntimeError(f"Failed to fetch package.xml from {raw_url}: {e}")
192+
if "github.com" in raw_url_base:
193+
raw_url = self._construct_raw_url_github(pkg_info)
194+
return self._download_raw_pkg_xml_or_cached(url=raw_url)
195+
raise RuntimeError(f"Cannot handle unknown repository hoster: {raw_url_base}")
216196

217197
def _download_raw_pkg_xml_or_cached(self, url):
218198
if url in self._additional_xml_cache:

0 commit comments

Comments
 (0)