From fa42936933e1165c5fdde2c0061a78421f1259b0 Mon Sep 17 00:00:00 2001 From: KOUNOIKE Yuusuke Date: Sun, 30 Apr 2017 08:40:03 +0900 Subject: [PATCH 1/2] Adds missing ssh:// URL support. --- git_repo/services/service.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/git_repo/services/service.py b/git_repo/services/service.py index ebffa6e..fbf407c 100644 --- a/git_repo/services/service.py +++ b/git_repo/services/service.py @@ -246,7 +246,10 @@ def format_path(self, repository, namespace=None, rw=False): if not rw and '/' in repo: return '{}/{}'.format(self.url_ro, repo) elif rw and '/' in repo: - return '{}:{}'.format(self.url_rw, repo) + if self.url_rw.startswith('ssh://'): + return '{}/{}'.format(self.url_rw, repo) + else: + return '{}:{}'.format(self.url_rw, repo) else: raise ArgumentError("Cannot tell how to handle this url: `{}/{}`!".format(namespace, repo)) From d49401c8d68bcf937aac3b5532b7e32d1688d2f7 Mon Sep 17 00:00:00 2001 From: KOUNOIKE Yuusuke Date: Sun, 30 Apr 2017 08:46:36 +0900 Subject: [PATCH 2/2] Adds missing ssh:// URL support for _guess_repo_slug. --- git_repo/repo.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/git_repo/repo.py b/git_repo/repo.py index e12bf0e..e426003 100644 --- a/git_repo/repo.py +++ b/git_repo/repo.py @@ -163,15 +163,15 @@ def _guess_repo_slug(self, repository, service, resolve_targets=None): for remote in repository.remotes: if remote.name in targets: for url in remote.urls: - if url.startswith('https'): - if url.endswith('.git'): - url = url[:-4] + if url.endswith('.git'): + url = url[:-4] + if url.find('://') > -1: + # http://, https:// and ssh:// *_, user, name = url.split('/') self.set_repo_slug('/'.join([user, name])) return - elif url.startswith('git@'): - if url.endswith('.git'): - url = url[:-4] + elif url.find('@') > -1 and url.find(':') > -1: + # scp-style URL _, repo_slug = url.split(':') self.set_repo_slug(repo_slug) return