Skip to content

Commit 0a8d9b1

Browse files
committed
Added better support for non-github release repositories.
Fixes: - #101 - ros/ros-overlay#30
1 parent c4f076d commit 0a8d9b1

File tree

1 file changed

+14
-1
lines changed

1 file changed

+14
-1
lines changed

src/rosdistro/rosdistro.py

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -197,6 +197,8 @@ def __init__(self, name, repository):
197197

198198
def _fetch_package_xml(self, rosdistro):
199199
repo = self.repository
200+
supported_non_githubs = [ 'gitlab', 'bitbucket' ]
201+
200202
if 'github.com' in repo.url:
201203
url = repo.url
202204
release_tag = 'release/{0}/{1}/{2}'.format(rosdistro, self.name, repo.version)
@@ -222,7 +224,18 @@ def _fetch_package_xml(self, rosdistro):
222224
self._release_tags[rosdistro] = release_tag
223225
return package_xml, release_tag
224226
else:
225-
raise Exception("Non-github repositories are net yet supported by the rosdistro tool")
227+
release_tag = 'release/{0}/{1}/{2}'.format(rosdistro, self.name, repo.version)
228+
url = repo.url
229+
try:
230+
# URL extension for GitLab/BitBucket repos
231+
url = url.replace('.git', '/raw/{0}/package.xml'.format(release_tag))
232+
package_xml = urlopen(url).read()
233+
self._package_xmls[rosdistro] = package_xml
234+
self._release_tags[rosdistro] = release_tag
235+
return package_xml, release_tag
236+
except Exception as e:
237+
msg = "Failed to read package.xml file from url '{0}': {1}".format(url, e))
238+
raise RuntimeError(msg)
226239

227240
def get_package_xml(self, rosdistro):
228241
if rosdistro not in self._package_xmls:

0 commit comments

Comments
 (0)