簡體   English   中英

如何通過 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 構建時絕對可以正常工作。

試過:

錯誤: 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

請按照以下步驟獲取身份驗證令牌:

  • 登錄詹金斯。
  • 點擊你的名字。
  • 單擊配置。
  • 單擊顯示 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

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM