Sta*_*lfi 7 git bitbucket webhooks jenkins
我成功发送了一个帖子请求来curl触发詹金斯工作:
curl -I -X POST http://jenkinsAccountUserName:jenkinsAccountPassword@JenkinsIp:8080/job/projecty_ci/build -H "Jenkins-Crumb:a4fb99fbdb252fda3cc69ee575bedabc"
Run Code Online (Sandbox Code Playgroud)
我不明白如何将其转换为 url: Problem accessing /job/projecty_ci/build. Reason: No valid crumb was included in the request。
http://jenkinsAccountUserName:jenkinsAccountPassword@JenkinsIp:8080/job/projecty_ci/build?Jenkins-Crumb:a4fb99fbdb252fda3cc69ee575bedabc
Run Code Online (Sandbox Code Playgroud)
这在 chrome 中工作得很好,但在 bitbucket webhooks 中却不行。
我在 jenkins 中创建了一个作业,我可以通过 url 成功触发它。
当我从 bitbucket 的 webhook 触发相同的作业时,我收到错误:Problem accessing /job/projecty_ci/build. Reason: No valid crumb was included in the request。
您可以通过调用 jenkins api 并在 URL 中使用它来获取碎屑。
对于curl/wget,您可以从URL JENKINS_URL/crumbIssuer/api/xml(或.../api/json)获取请求中所需的标头。像这样的东西:
wget -q --auth-no-challenge --user USERNAME --password PASSWORD --output-document - \
'JENKINS_URL/crumbIssuer/api/xml?xpath=concat(//crumbRequestField,":",//crumb)'
Run Code Online (Sandbox Code Playgroud)
这将打印类似“.crumb:1234abcd”的内容,您应该将其添加到后续请求中。
管理构建
注意:为了防止 CSRF,Jenkins 要求 POST 请求包含特定于每个用户的碎屑。获取面包屑的命令是:
SERVER=http://localhost:8080
CRUMB=$(curl --user $USER:$APITOKEN \
$SERVER/crumbIssuer/api/xml?xpath=concat\(//crumbRequestField,%22:%22,//crumb\))
Run Code Online (Sandbox Code Playgroud)
开始构建
$ curl -H ".crumb:<crumb_string>" -X POST http://<jenkins_url>/job/<job_name>/build --user <user_name>:<api_token>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9458 次 |
| 最近记录: |