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
This commit is contained in:
Takeru Naito 2016-11-04 19:03:51 +09:00
parent ce8fb12532
commit 1808e612c5
No known key found for this signature in database
GPG key ID: 0967B4FC0A2D3E0E

View file

@ -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