【问题标题】:how to redirect a git-server address?如何重定向 git 服务器地址?
【发布时间】:2017-03-25 13:47:35
【问题描述】:

(假设)我有自己的 git,所以你可以这样做

  git clone https://official.example.org/myproject.git

但是,在我的服务器 official.example.org 上,我想将其重定向到 Github。如何在 UBUNTU 16LTS 标准 git-server 上做到这一点?它是普通的网络服务器重定向(例如Apache)还是需要特殊准备?

PS:技术存在,如announced here

【问题讨论】:

  • 答案:使用反向代理和 HTTP 而不是 HTTPS 来使用 Github 证书...正在运行的示例,git.ok.org.br 的任何 repo 都可以正常工作(!)。示例:git clone http://git.ok.org.br/suporte

标签: git redirect webserver


【解决方案1】:

当代码被推送到我的 git 存储库时,我使用 buildfarm 中的 git post-receive 挂钩在 Jenkins 中自动构建项目。您可以对服务器上的其他一些git hooks 执行类似的操作,以将代码推送到 github。

同样,在 github 上,您可以定义一个 webhook 以在更新 github 存储库中的代码时更新您在 official.example.org 上的 git 存储库。 Something like this answer maybe.

【讨论】:

  • 嗨@Gary,谢谢(!)。你能展示一个代码行示例吗?在buildfarm-quickstart 没有重定向,线路是git clone git@github.com:gclayburg/buildfarm.git,但我需要git clone git@official.example.org:gclayburg/buildfarm.git 重定向到它。
  • 不幸的是,我不知道有一个简单的命令可以将您的 git 服务器变成一个完整的网关。我只是说绝对有可能拼凑几个工具来完成这项工作。不过,这听起来像是一个好的开源项目的候选人。也许其他人已经这样做了?
  • 谢谢加里,一个很好的答案,但只是我的 PS 的“扩展版本”,“技术存在,如此处宣布的”(指向 Github 的链接表明这绝对是可能的)。如果没有人发布更好的东西,我会投 1 票,但您需要 2 票才能获得半个赏金。
【解决方案2】:

据我所知,这是不可能的。在 Github 上,旧存储库将被重定向到同一域中的新存储库,这是这里的重点。

试图将 official.example.org 重定向到 github.com 会破坏证书链,使其无法处理。

【讨论】:

  • 可以的;对于 HTTP/HTTPS git,它应该像 apache 重定向一样简单(这是 302 Found 重定向,而不是代理/反向代理,我很确定即使使用 https 也是允许的)。使用 ssh clone 应该可以 MITM 它,因为客户端认为(正确地)它正在连接到 official.example.org,而不是 github。 git 内部协议相同。对于所有这些,我不知道如何做到这一点,这就是我不回答的原因,但我几乎可以肯定这是可能的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-03-20
  • 2021-12-05
  • 2019-07-21
  • 2019-10-22
  • 2019-09-24
  • 1970-01-01
  • 2015-01-23
相关资源
最近更新 更多