@@ -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