如何使用 Trac 通知功能触发 jenkins 作业?



问题是我们的存储库由外部方托管,防止由于执行任意脚本可能带来的安全问题而导致的钩子脚本。因此,钩子脚本对我来说是没有选择的。与我们的主机的一封快速电子邮件显示,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&param2=value2"
curl -D - -X POST -u $AUTH $TRIGGER_URL 2>&1`

最新更新