0

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

想法:我们想使用 VSTS 来处理我们 GitHub 存储库中的源代码。所以我想在我的 GitHub Enterprise 存储库中创建一个 git 挂钩,在任何提交之后,git push -f该存储库都会输出到 VSTS 实例。

我正在阅读有关钩子等的信息,但我认为问题在于钩子似乎总是在客户端上执行?例如:git用户机器上的 exe 是处理钩子和完成工作的过程,而不是在服务器端(目标 repo)。

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

谢谢。

4

1 回答 1

2

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

但是,当使用像 GitHub(或 BitBucket,或其他任何东西,真的)这样的托管服务时,您不能运行任意脚本来响应存储库操作(因为这将是重大的安全隐患,没有人愿意处理和)。

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

于 2016-04-04T20:17:22.453 回答