Jenkins Github与SMEE客户端的集成:Jenkins不喜欢Webhook覆盖挂钩URL

9fkzdhlc  于 2022-11-21  发布在  Jenkins
关注(0)|答案(1)|浏览(204)

我们在防火墙后面运行Jenkins,github.com通过SMEE客户端提供必要的代理服务器,将Jenkins连接到公共网站www.example.com。然而,在Jenkins [version 2.361.4-jdk 11]配置页面中,Github插件断然拒绝保存Override Webhook URL https://smee.io/blah(其中blah是我们的SMEE频道),相反,当按下Apply时,它会显示(橙子):
“看起来不像是https://smee.io/blah在和Jenkins说话,你在运行自己的应用程序吗?”
我们可以看到,当在Jenkins配置页面上按下Apply时,SMEE服务器会收到一个事件,其有效负载形式为:

"1668551517454":{
}

...与此同时,SMEE客户端(与Jenkins运行在同一台计算机上,分别在各自的Docker容器中)的journald日志输出显示它已成功回发到正确的[默认]端口:

POST http://10.10.1.29:8080/github-webhook/ - 200

... 10.10.1.29是运行SMEE客户端和Jenkins的机器的地址。因此,从Jenkins到SMEE服务器、SMEE服务器到SMEE客户端以及SMEE客户端到Jenkins的连接似乎都在工作。
是什么让Github插件和/或Jenkins不舒服呢?我们是否可以从Jenkins或插件那里得到一些更详细的日志记录,来确定是什么让它不舒服(Jenkins journald日志输出说,在这个时候没有什么比INFO h.p.b.g. GlobalTimeOutConfiguration#configure: global timeout has been cleared更有趣的了)?
如果有问题,SMEE客户端使用以下软件运行:

docker run --name smee-client --restart=on-failure --detach --log-driver=journald deltaprojects/smee-client -u https://smee.io/blah -t http://10.10.1.29:8080/github-webhook/

... Jenkins Docker安装是根据Jenkins instructions构建/运行的。

flvtvl50

flvtvl501#

答案是... Jenkins Github插件的GUI坏了,它永远不会保存你在Override Hook URL框中输入的内容。它自2020年9月以来就已经坏了。如果你有Jenkins Jira帐户,你可以see the pain
解决方法是手动编辑Jenkins github-plugin-configuration.xml配置文件,以添加以下格式的字段:

<hookUrl>https://smee.io/thestringfromsmee</hookUrl>

...[本例针对我的情况,使用SMEE]在<github-plugin-configuration>内,在与<configs><hookSecretConfigs>相同的级别,然后重新启动Jenkins。
嗬哼。

相关问题