使用sshfs将外部存储库导入到Gitlab

问题描述:

是否有可能在某些本地服务器上拥有所有存储库,并且还可以使用Gitlab(托管在其他本地服务器上)来浏览它?使用sshfs将外部存储库导入到Gitlab

我使用Gitlab v8.3.3。和我有以下情况:
- 我都保存在本地服务器我的信息库,说:192.168.5.5/git
- 我也有承载Gitlab,在本地虚拟机:192.168.5.6
- 我安装我的地方在git的数据目录的git服务器(这就是仓库被关押)运行:
sshfs [email protected]:/git /var/opt/gitlab/git-data/repositories/server-group

服务器组是我创建了一个新的组具有相同的名称时Gitlab创建一个空目录。

现在我想能够通过Gitlab浏览以这种方式安装的存储库。
这可能吗?

我相信它应该但它需要一些额外的配置?
当然简单:gitlab-ctl reconfiguregitlab-ctl restart没有帮助和Gitlab组server-group有0个项目,即使在它的目录我有有效的“repos.git”。

我通过解决这个问题:
1.使用GitLab API

curl -k --header "PRIVATE-TOKEN: <your_private_token>" -H "Content-Type: application/json" -d '{"name":"<name_here>","path":"<the_same_name_here>","visibility_level":"10","namespace_id":"<id_of_my_group>"}' "https://192.168.5.6/api/v3/projects"


2.安装我们的资料库中How can I use GitLab on one server and store all of the repositories on another?(包括更改权限描述具有相同的名称创建空库 - 见答案)

您需要在GitLab出现之前创建项目。

但是有几点需要考虑,GitLab期待的回购是裸回购,并且还会期望设置一个HEAD文件。

我的建议是通过从你的git服务器导入每个回购来创建项目。这将为您的所有提交和分支创建裸回购,并在GitLab数据库中创建项目。然后,如果您仍想在单独的服务器上进行回购,可以将GitLab创建的文件夹移动到其他服务器,然后在尝试时装入它们。

另外,如果你仍然想试着让你当前的回购展示,并希望他们工作。 (不知道是否他们会如果他们不裸回购)你可以试试:

  • 卸载,你必须设置
  • 创建空的项目为每个回购的git的回购,在某种程度上,他们的路径将符合您目前的回购协议。
  • 将您的git repos重新安装到创建空白回购站的地方。