URL клона Gitlab без пространства имен? - PullRequest
0 голосов
/ 22 января 2019

При переходе с gitolite на gitlab мы обнаружили, что gitlab не поддерживает клонирование URL-адресов в форме:

gitlab.example.com:<my-repository>.git

Вместо этого требуется пространство имен (группа, имя пользователя или подгруппа), например:

gitlab.example.com:<namespace>/<my-repository>.git

К сожалению, это сломало бы несколько сценариев сборки.Можно ли сделать это по-другому?

Я уже пытался создать группу с пустым пространством имен, но это запрещено.

Нашим ожидаемым поведением было клонирование без пространства имен в URL, например

git clone gitlab.example.com:<my-project>.git

1 Ответ

0 голосов
/ 25 января 2019

Учитывая природу групп GitLab , вам нужно , чтобы поместить свои репо в одну выделенную группу, скажем "global".

gitlab.example.com:global/<my-repository>.git

Но: вы также можете ссылаться на эти репозитории через выделенный URL-адрес SSH с именем "globalGitLab", с файлом ~/.ssh/config, переводящим globalGitLab в git@gitlab.example.com с правым ключом.

Host globalGitLab 
     HostName gitlab.example.com
     User git
     IdentityFile /path/to/right/id_rsa

Это само по себене исправить проблему вашей группы: globalGitLab:myrepo.git не будет работать.

Однако вы можете также установить глобальную конфигурацию Git:

git config --global url."globalGitLab:global/".insteadOf globalGitLab:

(см. «* 1024»).*git config url.<base>.insteadOf ")

Это переведет любой globalGitLab:myrepo (из ваших сценариев) в globalGitLab:global/myrepo, что совместимо с тем, что ожидает GitLab!

...