我正在尝试在GitHub上配置Web挂钩,以便它可以将POST发送到http://127.0.0.1:8080/github-webhook/
我的詹金斯正在http://127.0.0.1:8080
上运行我的詹金斯肯定在http://127.0.0.1:8080/上跑。所以,这肯定不是问题。
答案 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上找到答案。也许要小心一些事情。