gitlab克隆URL没有命名空间?

时间:2019-01-22 15:53:16

标签: url ssh gitlab clone gitolite

从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 :(得分:1)

考虑到GitLab groups的性质,您需要将回购协议放入一个专门的小组,例如“ global”。

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

但是:您还可以通过专用的SSH URL(名为“ 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:

(请参阅“ git config url.<base>.insteadOf”)

这会将所有globalGitLab:myrepo(从您的脚本中)转换为globalGitLab:global/myrepo,这与GitLab期望的兼容!