From 1808e612c52178c057b58b679062e211ffd45a55 Mon Sep 17 00:00:00 2001 From: Takeru Naito Date: Fri, 4 Nov 2016 19:03:51 +0900 Subject: [PATCH] Supports separate URLs in the repo and the web On a GitLab server. ex. --- repo: git@git.example.com:namespace/project.git web: https://gitlab.example.com/namespace/project $ git config gitopen.gitlab.domain gitlab.example.com $ git config gitopen.gitlab.ssh-domain git.example.com $ git open --- git-open | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/git-open b/git-open index cdc6437..7352b37 100755 --- a/git-open +++ b/git-open @@ -92,18 +92,20 @@ elif grep -q "/scm/" <<<$giturl; then else # custom GitLab gitlab_domain=$(git config --get gitopen.gitlab.domain) + gitlab_ssh_domain=$(git config --get gitopen.gitlab.ssh-domain) + gitlab_ssh_domain=${gitlab_ssh_domain:-$gitlab_domain} gitlab_port=$(git config --get gitopen.gitlab.port) if [ -n "$gitlab_domain" ]; then - if grep -q "$gitlab_domain" <<<$giturl; then + if egrep -q "${gitlab_domain}|${gitlab_ssh_domain}" <<<$giturl; then # Handle GitLab's default SSH notation (like git@gitlab.domain.com:user/repo) - giturl=${giturl/git\@${gitlab_domain}\:/https://${gitlab_domain}/} + giturl=${giturl/git\@${gitlab_ssh_domain}\:/https://${gitlab_domain}/} # handle SSH protocol (links like ssh://git@gitlab.domain.com/user/repo) giturl=${giturl/#ssh\:\/\//https://} # remove git@ from the domain - giturl=${giturl/git\@${gitlab_domain}/${gitlab_domain}/} + giturl=${giturl/git\@${gitlab_ssh_domain}/${gitlab_domain}/} # remove SSH port if [ -n "$gitlab_port" ]; then