问题是我们的存储库由外部方托管,防止由于执行任意脚本可能带来的安全问题而导致的钩子脚本。因此,钩子脚本对我来说是没有选择的。与我们的主机的一封快速电子邮件显示,Trac提供了一个通知功能,它提供了HTTP POST和GET命令,可用于触发Jenkins构建。我无法让它工作!下面我努力让它发挥作用,但无济于事。有谁知道我哪里出错了?
通知可以在Trac中设置:,"仪表板","通知","Web钩子"部分。
这些字段是:
自定义 GET 回调(HTTP GET 到您选择的 URL(
- 网址:
- 用户名:(可选(
- 密码:(可选(
自定义 POST 回调(JSON 或 XML POST 到您选择的 URL(
- 网址:
- 用户名:(可选(
- 密码:(可选(
- HTTP 标头:(可选(
我尝试了以下方法,但无济于事:
- 只有一个 URL 的 POST 命令:JENKINS_URL/job/HANtune_2.1_MultiConfig/build?token=TOKEN_NAME
- 带有上述 URL 并提供用户名和密码的 POST 命令
- 仅包含上述 URL 的 GET 命令
- 带有上述 URL 并提供用户名和密码的 GET 命令
- POST 和 GET 命令仅包含 URL:http://USERNAME:AUTHENTICATION-TOKEN@JENKINS-IP:PORT/job/JobName/build?token=TOKEN_NAME
我需要安装"构建授权令牌根"插件,可以在这里下载:https://plugins.jenkins.io/build-token-root
然后我在 Trac 项目设置的通知区域中设置了一个自定义 GET 回调,如下所示:
URL: http://- JENKINS_IP:8080/buildByToken/build?job=MY__JOB_NAME&token=MY_TOKEN
- 用户名:
- 密码:
现在它工作了!谢谢艾尔沃斯!
根据这篇文章(https://issues.jenkins-ci.org/browse/JENKINS-17764(,build_token
方法已被弃用,请参阅Daniel Beck的最后一条评论:">
基于令牌的构建触发是几年前已弃用的遗留选项(只是文档没有保持最新(......">
我不使用 TRAC,但使用以下代码远程触发构建(需要设置用户 ID/令牌/作业/url 值( - 可能会有所帮助?
AUTH="<user_id>:<user_api_token>"
JOB_NAME="<job_name>"
TRIGGER_URL="http://<jenkins>:8080/job/$JOB_NAME/buildWithParameters?param1=value1¶m2=value2"
curl -D - -X POST -u $AUTH $TRIGGER_URL 2>&1`