ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

The unhelpful error comes from a copy-paste error in the error handling code of that function. That should be fixed.

The root problem is that github returned a non 200 response when listing repositories. I don't know why that is occurring, especially without the actual response code.

Until I get it patched in bloom upstream, can you try modifying your github.py file with this patch and running again?

diff --git a/bloom/github.py b/bloom/github.py
index 1fc505b..b7d758d 100644
--- a/bloom/github.py
+++ b/bloom/github.py
@@ -121,10 +121,11 @@ class Github(object):
         page = start_page or 1
         repos = []
         while True:
-            resp = do_github_get_req('/users/{user}/repos?page={page}'.format(**locals()), auth=self.auth)
+            url = '/users/{user}/repos?page={page}'.format(**locals())
+            resp = do_github_get_req(url, auth=self.auth)
             if '{0}'.format(resp.status) not in ['200']:
                 raise GithubException(
-                    "Failed to get information for repository '{owner}/{repo}'".format(**locals()), resp)
+                    "Failed to list repositories for user '{user}' using url '{url}'".format(**locals()), resp)
             new_repos = json.loads(resp.read())
             if not new_repos:
                 return repos

The unhelpful error comes from a copy-paste error in the error handling code of that function. That should be fixed.

The root problem is that github returned a non 200 response when listing repositories. I don't know why that is occurring, especially without the actual response code.

Until I get it patched in bloom upstream, can you try modifying your github.py file with this patch and running again?

diff --git a/bloom/github.py b/bloom/github.py
index 1fc505b..b7d758d 100644
--- a/bloom/github.py
+++ b/bloom/github.py
@@ -121,10 +121,11 @@ class Github(object):
         page = start_page or 1
         repos = []
         while True:
-            resp = do_github_get_req('/users/{user}/repos?page={page}'.format(**locals()), auth=self.auth)
+            url = '/users/{user}/repos?page={page}'.format(**locals())
+            resp = do_github_get_req(url, auth=self.auth)
             if '{0}'.format(resp.status) not in ['200']:
                 raise GithubException(
-                    "Failed to get information for repository '{owner}/{repo}'".format(**locals()), resp)
+                    "Failed to list repositories for user '{user}' using url '{url}'".format(**locals()), resp)
             new_repos = json.loads(resp.read())
             if not new_repos:
                 return repos

EDIT:

Looking at the logs again I see that you have gotten a 401 unauthorized at a different step:

Received GithubException while checking for fork: Failed to get information for repository 'davetcoleman/rosdistro': 401 Unauthorized

So I guess bloom is taking this general error as a fork does not exist, so it is trying to list the repos you have to make sure there is not a name conflict, i.e. make sure you don't have a repo 'davetcoleman/rosdistro' already which is not a fork of 'ros/rosdistro' and this is where the 401 becomes fatal.

EDIT: The problem is that you have two computers with the same name, bloom creates the name of the oauth token as bloom <bloom's version> on <computer name> which collides if you use the same version of bloom on the same computer. You can open a ticket on the bloom issue tracker, but manually renaming one of them would work around the issue.


The unhelpful error comes from a copy-paste error in the error handling code of that function. That should be fixed.

The root problem is that github returned a non 200 response when listing repositories. I don't know why that is occurring, especially without the actual response code.

Until I get it patched in bloom upstream, can you try modifying your github.py file with this patch and running again?

diff --git a/bloom/github.py b/bloom/github.py
index 1fc505b..b7d758d 100644
--- a/bloom/github.py
+++ b/bloom/github.py
@@ -121,10 +121,11 @@ class Github(object):
         page = start_page or 1
         repos = []
         while True:
-            resp = do_github_get_req('/users/{user}/repos?page={page}'.format(**locals()), auth=self.auth)
+            url = '/users/{user}/repos?page={page}'.format(**locals())
+            resp = do_github_get_req(url, auth=self.auth)
             if '{0}'.format(resp.status) not in ['200']:
                 raise GithubException(
-                    "Failed to get information for repository '{owner}/{repo}'".format(**locals()), resp)
+                    "Failed to list repositories for user '{user}' using url '{url}'".format(**locals()), resp)
             new_repos = json.loads(resp.read())
             if not new_repos:
                 return repos

EDIT:

Looking at the logs again I see that you have gotten a 401 unauthorized at a different step:

Received GithubException while checking for fork: Failed to get information for repository 'davetcoleman/rosdistro': 401 Unauthorized

So I guess bloom is taking this general error as a fork does not exist, so it is trying to list the repos you have to make sure there is not a name conflict, i.e. make sure you don't have a repo 'davetcoleman/rosdistro' already which is not a fork of 'ros/rosdistro' and this is where the 401 becomes fatal.