[英]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.