Skip to content

Commit 096ce10

Browse files
committed
distro: download GitHub raw URL using helpers
1 parent c37decc commit 096ce10

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
@@ -190,31 +190,11 @@ def get_package_names(self):
190190
# Based on https://github.com/ros-infrastructure/rosdistro/blob/fad8d9f647631945847cb18bc1d1f43008d7a282/src/rosdistro/manifest_provider/github.py#L51C1-L69C29
191191
# But with the option to specify the name of the package.xml file in case the repo uses a non-standard name
192192
def get_package_xml_for_additional_package(self, pkg_info):
193-
# Build raw GitHub URL for package.xml
194193
raw_url_base = pkg_info.get("url")
195-
if raw_url_base.endswith(".git"):
196-
raw_url_base = raw_url_base[:-4]
197-
if "github.com" not in raw_url_base:
198-
raise RuntimeError(f"Cannot handle non-GitHub URL: {raw_url_base}")
199-
# Extract owner/repo
200-
owner_repo = raw_url_base.split("github.com/")[-1]
201-
# Use rev if available, otherwise fallback to tag
202-
ref = pkg_info.get("rev") or pkg_info.get("tag")
203-
xml_name = pkg_info.get("package_xml_name", "package.xml")
204-
additional_folder = pkg_info.get("additional_folder", "")
205-
if additional_folder != "":
206-
additional_folder = additional_folder + "/"
207-
raw_url = f"https://raw.githubusercontent.com/{owner_repo}/{ref}/{additional_folder}{xml_name}"
208-
if raw_url in self._additional_xml_cache:
209-
return self._additional_xml_cache[raw_url]
210-
211-
try:
212-
with urllib.request.urlopen(raw_url) as resp:
213-
xml_content = resp.read().decode("utf-8")
214-
self._additional_xml_cache[raw_url] = xml_content
215-
return xml_content
216-
except Exception as e:
217-
raise RuntimeError(f"Failed to fetch package.xml from {raw_url}: {e}")
194+
if "github.com" in raw_url_base:
195+
raw_url = self._construct_raw_url_github(pkg_info)
196+
return self._download_raw_pkg_xml_or_cached(url=raw_url)
197+
raise RuntimeError(f"Cannot handle unknown repository hoster: {raw_url_base}")
218198

219199
def _download_raw_pkg_xml_or_cached(self, url):
220200
if url in self._additional_xml_cache:

0 commit comments

Comments
 (0)