我可以使用 gitlab 来监控现有的 repos,并保留旧的裸 git URL 吗?

我可以使用 gitlab 来监控现有的 repos,并保留旧的裸 git URL 吗?

我已经在我的服务器上安装了 Gitlab,但我不知道我愿意做的事情是否可行。

我想设置 Gitlab 来监控我的 repos,以及随之而来的所有好东西,但我不想使用 gitlab URL,因为我不想给所有使用 repos 的开发人员带来这样的麻烦。

Gitlab 自己的“导入”功能似乎创建了自己的 URL,所以这不是我想要的。

我的问题是:有没有办法使用带有旧裸 git URL 的 gitlab?

答案1

我的简短回答是“不”。

更改或向现有存储库添加新的远程存储库并不是什么问题。只需git remote add gitlab git@<server>/owner/repository_link.git在项目中执行(或任何链接)即可完成。如果您想替换“原始”远程存储库,您可以在文件.git夹中手动查看要执行的操作。所以我不会太关心新的 URL,只需记录需要执行的操作,并通知他们您已移动。

答案2

不幸的是,gitlab 依赖其 url 模式来获取每个 repo 的组/用户权限。

我能想到的唯一方法是,可以在前端 Web 服务器中使用自定义重写规则。然后,这些规则会将所有请求适当地重写为 gitlab 命名模式。这当然要求您的开发人员仅使用 http(s) 访问存储库。这种方法不会破坏您与上游代码库的代码。

但是,如果你也使用 ssh:// (这是 git 推荐的),我看到的唯一方法是在 gitlab-shell 中重写路径:该类GitlabShell有一个 parse_cmd 方法

def parse_cmd
  args = Shellwords.shellwords(@origin_cmd)
  @git_cmd = args[0]
  @repo_name = escape_path(args[1])
end

你可以在其中摆弄@repo_name。这种方法会使你的代码与上游代码库脱节。

很抱歉,由于您没有指定任何示例 repo 路径,因此很难提供更具体的示例。

我个人会选择迁移来导入存储库并发布新的 URL。如果你能向同事提供一份列表,我想这可以最大程度地减少他们的工作量。git remote set-url origin ssh://[email protected]/newgroup/imported.git

相关内容