Jenkins + Github:我们无法提供此有效负载:无法连接到服务器

时间:2017-02-04 06:38:42

标签: github jenkins

我正在尝试在GitHub上配置Web挂钩,以便它可以将POST发送到http://127.0.0.1:8080/github-webhook/

我的詹金斯正在http://127.0.0.1:8080

上运行

这是我的GitHub web hook配置: enter image description here

我收到以下错误:
enter image description here

我的詹金斯肯定在http://127.0.0.1:8080/上跑。所以,这肯定不是问题。

2 个答案:

答案 0 :(得分:9)

GitHub不知道如何联系" localhost"或127.0.0.1:GitHub会考虑什么"本地"是您的本地计算机。

您需要指定GitHub可以通过互联网联系的IP地址。不只是" localhost"。

这意味着您的PC必须向互联网公开8080端口 例如,这可能涉及opening said port on your router 或者,在工作时,从您的IT部门请求防火墙规则以允许该端口上的流量。

答案 1 :(得分:5)

如果你想尝试在localhost上运行Jenkins,那么另一种方法就是安装ngrok:https://ngrok.com/download,它通过互联网公开localhost网址。 安装ngrok之后运行它,例如

./ngrok http 8080

它会给你一个这样的网址:http://3b2db437.ngrok.io

现在在payloadUrl下:输入网址:

http://3b2db437.ngrok.io:8080/github-webhook/

现在,localhost Jenkins设置将运行,并且有效负载错误将消失。

注意:在上面的网址中,您再次提到了8080。由于在ngrok上生成的url已包含此内容,因此再次添加它将导致服务超时错误: "我们无法提供此有效负载:服务超时"。

要避免这种情况,您需要将您的webhook编辑为(删除:8080)" http://3b2db437.ngrok.io/github-webhook/

这解决了这个问题。

也是最终用户的提示:我忘了在github-webhook /之后添加一个尾随的斜杠,这给我带来了问题。我看到其他人也犯了同样的错误,并在StackOverflow上找到答案。也许要小心一些事情。