2016-04-04 26 views
0

问题: 我们正在使用GitHub Enterprise进行企业开发,这意味着从外部访问代码(以挂钩其他服务等)是有问题的。我该如何将github钩子从github企业推送到另一个git仓库?

想法: 我们希望使用VSTS来完成GitHub仓库中的源代码。所以我想在我的GitHub Enterprise回购库中创建一个git钩子,在任何提交之后,git push -f将回购到VSTS实例。

我在读关于钩子等,但我认为问题是它似乎钩子总是在客户端上执行?例如:git EXE在用户的机器上是什么进程挂钩&做的工作,而不是在服务器端(目的地回购)。

这就是说,任何人都知道一种方式,你可以做一个GitHub钩子或git钩子,将完成我想要的?我已经准备好了VSTS的Personal Access Token,并且已经在本地测试了必要的命令...

谢谢。

回答

2

Git挂钩通常在客户端和“服务器”上执行,具体取决于钩子。例如,post-update挂钩在远程存储库上执行,以响应接收到git push操作的结果。

但是,如果使用GitHub(或BitBucket,或其他任何东西)的托管服务,则无法运行任意脚本来响应存储库操作(因为这会对实实在在的安全性影响,会想要处理)。

github上的挂钩只能向另一个Web服务发送HTTP POST请求。您的问题的典型解决方案是让Web服务接收POST请求,然后最终在您的服务器上触发git pull。你可以在https://help.github.com/articles/about-webhooks/找到钩子上的GitHub文档。

+0

谢谢。我开始磨练自己...不幸的是,由于这是一个** Enterprise ** GitHub实例的防火墙限制,对我来说不起作用:( – bc3tech

+0

这不一定排除这个解决方案。以符合当地安全限制的方式异步传递通知的各种方式,这实际上取决于您的具体情况的细节(如果您想探索的话,这可能会值得一个新的问题)。 – larsks

相关问题