如何从github企业到另一个git仓库有一个github钩子推送?

时间:2016-04-04 20:07:57

标签: git github azure-devops github-enterprise

问题: 我们在企业开发中使用GitHub Enterprise,这意味着从外部访问代码(挂钩其他服务等)是有问题的。

思想: 我们希望使用VSTS来处理我们的GitHub仓库中的源代码。所以我想在我的GitHub企业仓库中创建一个git钩子,在任何提交之后,git push -f将仓库发送到VSTS实例。

我正在阅读有关钩子等的内容,但我认为问题在于钩子总是在客户端上执行?例如:用户机器上的git exe是进程挂钩和&工作,而不是在服务器端(目标仓库)。

话虽这么说,有人知道你可以做一个GitHub钩子或git钩子来完成我想要的方法吗?我已准备好VSTS的个人访问令牌,并在本地测试了必要的命令......

感谢。

1 个答案:

答案 0 :(得分:2)

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

然而,当使用像GitHub(或BitBucket,或其他任何东西,真的)这样的托管服务时,你不能运行任意脚本来响应存储库操作(因为这将是一个重大的安全隐患,没有人在他们正确的头脑中想要处理)。

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