在推送时自动将Gitlab repo镜像到Github上

时间:2014-12-27 19:53:13

标签: github gitlab

我正在寻找一种方法来自动镜像我的Gitlab回购到Github,在推送。我使用Gitlab repos作为我的主要回购,而宁愿只推送到一个遥控器。但是,我希望我的代码也可以在Github上浏览。

我在StackOverflow上发现了类似的问题,例如this one

但答案总是一样的:一个人应该在gitlab repo中添加一个自定义的post-receive git hook。这需要shell访问运行Gitlab的服务器。由于我正在为许多用户托管社区版Gitlab,而不仅仅是我,他们无法轻松访问shell(这不是最方便用户使用的方式),因此它不适合我的需要。

我想到了两种实现它的方法:

  • MirrorOnPush项目服务,在Ruby中实现这样的git钩子,就像当前的EmailOnPush项目服务一样。

  • 或使用自定义服务器使用webhook克隆并推送存储库。

第一个对我来说似乎更干净,但我找不到任何关于Gitlab项目服务和代码结构的文档......另一方面,第二个是一个糟糕而丑陋的黑客,但几乎是直截了当。 / p>

我宁愿实现一个项目服务来处理它。你有没有关于如何为Gitlab编写项目服务的文档或线索(无需阅读所有Gitlab源代码,因为似乎没有开发文档......)?

谢谢!

1 个答案:

答案 0 :(得分:2)

  

应该在gitlab repo中添加一个自定义post-receive git钩子。

实际上,这是最好的解决方案,直到7.x GitLab,正如我在“Gitlab repository mirroring”中所详述的那样;

要求提供真实project service的回购镜像,但投票不够:建议:suggestion 4614663
主要文件仍然是:

这并不多,如the OP noted before

因为它让你接受黑客攻击。