summaryrefslogtreecommitdiff
diff options
-rw-r--r--breezy/git/remote.py4
-rw-r--r--breezy/plugins/propose/github.py4
2 files changed, 5 insertions, 3 deletions
diff --git a/breezy/git/remote.py b/breezy/git/remote.py
index e62705ee5c..3fc03fe0ee 100644
--- a/breezy/git/remote.py
+++ b/breezy/git/remote.py
@@ -203,8 +203,8 @@ def parse_git_error(url, message):
base_url, _ = urlutils.split_segment_parameters(url)
return HeadUpdateFailed(base_url)
if message.startswith('access denied or repository not exported:'):
- extra, path = message.split(': ', 1)
- return PermissionDenied(path, extra)
+ extra, path = message.split(':', 1)
+ return PermissionDenied(path.strip(), extra)
if message.endswith('You are not allowed to push code to this project.'):
return PermissionDenied(url, message)
if message.endswith(' does not appear to be a git repository'):
diff --git a/breezy/plugins/propose/github.py b/breezy/plugins/propose/github.py
index 68545ab0af..3197d0e42a 100644
--- a/breezy/plugins/propose/github.py
+++ b/breezy/plugins/propose/github.py
@@ -43,7 +43,7 @@ from ... import (
version_string as breezy_version,
)
from ...config import AuthenticationConfig, GlobalStack
-from ...errors import InvalidHttpResponse
+from ...errors import InvalidHttpResponse, PermissionDenied
from ...git.urls import git_url_to_bzr_url
from ...i18n import gettext
from ...sixish import PY3
@@ -278,6 +278,8 @@ class GitHub(Hoster):
response = self._api_request(
'POST', path, body=json.dumps(data).encode('utf-8'))
+ if response.status == 403:
+ raise PermissionDenied(path, response.text)
if response.status != 201:
raise InvalidHttpResponse(path, 'req is invalid %d %r: %r' % (response.status, data, response.text))
return json.loads(response.text)