[英]How to pass crumb info via bitbucket-hook to jenkins?
curl -X POST http://xxx.yyy.zzz:5555/job/job-name/build --user john-devops-jenkins:11df3ed41129c5c7da1518e9c3149896de -H 'Jenkins-Crumb:31827a74a160347a641c87ddbc8e3b6e'
上面带有 post 请求的 curl 代码在触发 Jenkins 构建时绝对可以正常工作。
试过:
错误: No valid crumb was included in the request
仍然没有运气,如何将 bitbucket 挂钩配置为 crumb 的容器标头信息,或者如何在不依赖第三方插件的情况下通过 url 传递它?
经过一天的努力和关于 curl 请求如何执行的头脑风暴,最终通过配置 bitbucket webhook 解决了这个问题,如下所示:
http://jenkins-username:jenkins-password@jenkins-url:5555/job/job-name/build?crumb=crumb_token。
希望它有所帮助,许多问题都没有得到解答,并且都建议使用第三方或通用网络挂钩等。
CRUMB_TOKEN 只不过是我们通过 Jenkins 配置生成的AUTHENTICATION_TOKEN
请按照以下步骤获取身份验证令牌:
不要与此 URL 混淆: JENKINS_URL/job/policy-vault/build?token=TOKEN_NAME
,在触发器构建远程输入选项旁边提到
应配置为远程构建的正确 URL 如下:
http://jenkins-username:jenkins-password@xxx.xxx.xxxx.xxx:5555/job/project-id/build?crumb=AUTHENTICATION_TOKEN
Webhook 也应该从 Bitbucket 配置
Settings -> Repository Settings -> Webhooks
标题: PROJECT-XYZ-HOOK
网址: http://jenkins-username:jenkins-password@xxx.xxx.xxxx.xxx:5555/job/project-id/build?crumb=AUTHENTICATION_TOKEN
我在这里迟到了,但我的第二版答案是针对因 Jenkins 的最新更新而被阻止的人们。
现在,随着最新的 Jenkins 最新更改,Bitbucket webhook url 如下所示:
http://jenkins-username:token-generated-for-loggedin-user@url:port/job/job-name/build?crumb=Jenkins-Crumb:crumb_long_token
可以使用以下命令生成 Crumb 长令牌:
wget -q --auth-no-challenge --user jenkins-username
--password jenkins-password
--output-document - 'http://jenkins-url:8081/crumbIssuer/api/xml?xpath=concat(/ /crumbRequestField,":",//crumb)'
输出将是: Jenkins-Crumb:6f2dcf2182efd19511b2ebf7b787e%
为token-generated-for-loggedin-user
你必须创建它去:
http://jenkins-url:8081/user/jenkins-username/configure
在 API 令牌中,单击生成。 生成令牌后,将其保存在某处。 同样应该传递给我们稍后形成的 URL。
您可以验证返回此 URL:http://jenkins-url:8081/user/jenkins-username/configure,您会注意到该令牌用于正确配置的次数。
除此之外,您还应该进行一些更改。
您必须安装:来自 Manage Jenkins 的 Bitbucket、bitbucket-pipeline、strict crumb issuer 插件
最后,转到:
http://jenkins-url:8081/configureSecurity/
在CSRF 保护中
将Default Crumb Issuer
更改为Strict Crumb Issuer
Strict Crumb Issuer是我们上面安装的
调查中的大量努力使这一改变奏效。 希望这会有所帮助并解除封锁。
我正在使用 jenkins 2.350,它对我有用,谢谢 Mithun。 只需要更新以下部分,因为我需要一段时间才能解决。
可以使用以下命令生成 Crumb 长令牌:
在浏览器中打开此链接; JENKINS_URL:PORT/crumbIssuer/api/xml
你会得到;
crumb:f5a4de9c398c97d178d2bb4~~~58ee3420a1d5e91ce2a773251a092832ae116c49442007e211bac4d2cd4b07ac968783445cd49411####6cd59d6af3df1d41bf
crumbRequestField: Jenkins-Crumb
因此,您的长面包屑将是:
Jenkins-Crumb: f5a4de9c398c97d178d2bb4~~~58ee3420a1d5e91ce2a773251a092832ae116c49442007e211bac4d2cd4b07ac968783445cd49411####6cd59d6af3df1d41bf
现在在最后的以下 URL 中添加上面的 Crumb。
http://jenkins-username:token-generated-for-loggedin-user@url:port/job/job-name/build?crumb=Jenkins-Crumb:crumb_long_token
休息按照米通说的,谢谢
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.