【问题标题】:Bitbucket and Jenkins remote build triggerBitbucket 和 Jenkins 远程构建触发器
【发布时间】:2017-12-31 13:04:22
【问题描述】:

我正在努力实现的目标

使用 Jenkins 中的远程触发选项创建拉取请求时,从 Bitbucket 触发构建。所以我在 Jenkins 中创建了一个作业,并配置为使用远程 API 触发构建。

在 Bitbucket 中,我创建了一个 webhook 以使用以下 URL 结构触发构建:

http://jenkins_server_ip:port/job/job-name/build?token=<t1>

我收到以下错误:

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
        <title>Error 403 No valid crumb was included in the request</title>
    </head>
    <body>
        <h2>HTTP ERROR 403</h2>
        <p>Problem accessing /job/android-sample/build. Reason:

            <pre>    No valid crumb was included in the request</pre>
        </p>
        <hr>
        <a href="http://eclipse.org/jetty">Powered by Jetty:// 9.4.z-SNAPSHOT</a>
        <hr/>
    </body>
</html>

我浏览了互联网,有人说我们需要在 Jenkins 中使用 crumbIssuer API,该 API 由 wget 完成。如何在 Bitbucket 中使用它?

【问题讨论】:

    标签: jenkins bitbucket webhooks


    【解决方案1】:

    您可以关闭CSRF安全检查:系统配置→配置全局安全CSRF保护,取消勾选。

    【讨论】:

    • 哪些让你对...开放?
    【解决方案2】:

    您必须首先从 Jenkins 获取 crumb 密钥并将其插入构建请求的 HTTP 标头中。面包屑用于防止 CSRF 攻击。

    以下 Bash 命令使用 curl 发送构建请求,效果很好:

    CRUMB=`curl -u $USER:$PASS 'http://$SERVER:8080/crumbIssuer/api/xml?xpath=concat(//crumbRequestField,":",//crumb)'`
    curl -H $CRUMB -u $USER:PASS 'http://$SERVER:8080/job/$PROJECT/build?token=$UR_TOKEN'
    

    【讨论】:

      猜你喜欢
      • 2014-06-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-20
      • 2015-04-03
      相关资源
      最近更新 更多