如何通过 bitbucket-hook 将面包屑信息传递给詹金斯?
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 构建时绝对可以正常工作。
尝试过:
- http://xxx.yyy.zzz:5555/bitbucket-hook?token=auth_token&crumb=xyz_crumb
- http://xxx.yyy.zzz:5555/job/job-name/build?token=auth_token&crumb=xyz_crumb
错误:No valid crumb was included in the request
仍然不走运,如何配置 bitbucket hook 到 crumb 的容器头信息,或者如何在不依赖第三方插件的情况下通过 url 传递它?
经过一天的努力和 curl 请求如何执行的头脑风暴,最终通过如下配置 bitbucket webhook 解决了这个问题:
http://jenkins-username:jenkins-password@jenkins-url:5555/job/job-name/build?crumb=crumb_token.
希望对您有所帮助,很多问题都没有答案,都建议使用第三方或 generic-web-hooks 等等。
CRUMB_TOKEN就是我们通过Jenkins配置生成的AUTHENTICATION_TOKEN
按照以下步骤获取身份验证令牌:
- 登录 Jenkins。
- 单击您的姓名。
- 单击“配置”。
- 单击显示 API 令牌。
不要与此 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
还应从 Bitbucket 配置 Webhooks
Settings -> Repository Settings -> Webhooks
标题: PROJECT-XYZ-HOOK
URL: 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,您会注意到该令牌被正确使用了多少次配置。
您还应该进行一些更改。
您必须安装:Bitbucket、bitbucket-pipeline、来自 Manage Jenkins 的 strict crumb issuer 插件
最后,转到:
http://jenkins-url:8081/configureSecurity/
并且在 CSRF 保护中
将Default Crumb Issuer
更改为Strict Crumb Issuer
Strict Crumb Issuer就是我们上面安装的
调查中的大量努力使此更改生效。希望这对您有所帮助并解除封锁。
curl -X POST http://xxx.yyy.zzz:5555/job/job-name/build --user john-devops-jenkins:11df3ed41129c5c7da1518e9c3149896de -H 'Jenkins-Crumb:31827a74a160347a641c87ddbc8e3b6e'
上面带有 post 请求的 curl 代码在触发 Jenkins 构建时绝对可以正常工作。
尝试过:
- http://xxx.yyy.zzz:5555/bitbucket-hook?token=auth_token&crumb=xyz_crumb
- http://xxx.yyy.zzz:5555/job/job-name/build?token=auth_token&crumb=xyz_crumb
错误:No valid crumb was included in the request
仍然不走运,如何配置 bitbucket hook 到 crumb 的容器头信息,或者如何在不依赖第三方插件的情况下通过 url 传递它?
经过一天的努力和 curl 请求如何执行的头脑风暴,最终通过如下配置 bitbucket webhook 解决了这个问题:
http://jenkins-username:jenkins-password@jenkins-url:5555/job/job-name/build?crumb=crumb_token.
希望对您有所帮助,很多问题都没有答案,都建议使用第三方或 generic-web-hooks 等等。
CRUMB_TOKEN就是我们通过Jenkins配置生成的AUTHENTICATION_TOKEN
按照以下步骤获取身份验证令牌:
- 登录 Jenkins。
- 单击您的姓名。
- 单击“配置”。
- 单击显示 API 令牌。
不要与此 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
还应从 Bitbucket 配置 Webhooks
Settings -> Repository Settings -> Webhooks
标题: PROJECT-XYZ-HOOK
URL: 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,您会注意到该令牌被正确使用了多少次配置。
您还应该进行一些更改。
您必须安装:Bitbucket、bitbucket-pipeline、来自 Manage Jenkins 的 strict crumb issuer 插件
最后,转到:
http://jenkins-url:8081/configureSecurity/
并且在 CSRF 保护中
将Default Crumb Issuer
更改为Strict Crumb Issuer
Strict Crumb Issuer就是我们上面安装的
调查中的大量努力使此更改生效。希望这对您有所帮助并解除封锁。