我正在寻找一种在推送时自动将我的 Gitlab 存储库镜像到 Github 的方法。我使用 Gitlab 存储库作为我的主要存储库,并且宁愿只推送到一个远程。但是,我希望我的代码也可以在 Github 上浏览。
我在StackOverflow上发现了类似的问题,例如this one .
但答案总是相同的:应该向 gitlab 存储库添加一个自定义的接收后 git Hook 。这需要对运行 Gitlab 的服务器进行 shell 访问。由于我正在为许多用户托管社区版 Gitlab,而不仅仅是我,他们无法轻松访问 shell(这不是最用户友好的方法),因此它不适合我的需求。
我考虑了两种实现方法:
要么是 MirrorOnPush 项目服务,在 Ruby 中实现此类 git hook,就像 EmailOnPush 项目服务当前所做的那样。
或者使用自定义服务器通过 Webhook 克隆和推送存储库。
第一个对我来说似乎更干净,但我找不到任何关于 Gitlab 项目服务和代码结构的文档......另一方面,第二个是一个糟糕且丑陋的黑客,但几乎是简单的。
我宁愿实现一个项目服务来处理它。您是否有关于如何为 Gitlab 编写项目服务的任何文档或线索(无需阅读所有 Gitlab 源代码,因为似乎没有开发文档...)?
谢谢!
最佳答案
one should add a custom
post-receive
git hook to the gitlab repo.
实际上,这是最好的解决方案,直到 7.x GitLab,正如我在“Gitlab repository mirroring”中详细介绍的;
真实的project service请求 repo 镜像,但投票不够:建议:suggestion 4614663 .
主要文档仍然是:
- app models project services文件夹,
- spec models project services文件夹,
doc/project_services
,- project services scenarios .
这并不多,如 the OP noted before .
既然这样,你就只能采用黑客方法了。
关于github - 在推送时自动将 Gitlab 存储库镜像到 Github,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27670910/