簡體   English   中英

Jenkins 和 GitHub 網絡鈎子:HTTP 403

[英]Jenkins and GitHub webhook: HTTP 403

我有一個 GitHub 存儲庫,我想通過 post-receive hook 通知 Jenkins 新的提交。 我已經在 J​​enkins 中安裝了 GitHub 插件,並允許 Jenkins 管理它自己的鈎子 URL。 該項目具有正確的 git 存儲庫 URL,並指示“將更改推送到 GitHub 時構建”。 當我讓 GitHub 發送一個測試負載時,我在前面的 Jenkins 的 nginx 網絡服務器中找到了這個:

207.97.227.233 - - [15/Sep/2011:07:36:51 +0000] "POST /github-webhook/ HTTP/1.1" 403 561 "-" "-"

我正在運行 SSL,所以我禁用了它沒有任何效果。 我是否需要為權限矩陣中的匿名用戶提供特殊權限?

請原諒缺少配置文件:我很高興分享那些可能存在但我不知道分享可能有用的內容。

由於我不允許匿名訪問,因此我需要為 GitHub 推送創建一個特定用戶並授予它整體讀取、作業創建和作業讀取。 還需要將身份驗證捆綁到 webhook URL 中,如下所示:

https://foo:password@jenkins.example.com/github-webhook/

如前所述,Jenkins 不允許匿名訪問(您不希望人們為您觸發構建!)。 以明文形式添加用戶名和密碼並不是最好的解決方案。

1) 如果您的 Jenkins 在 VPN 后面,您需要確保您的 Jenkins webhooks URL 是公開的

2) 在 GitHub 插件配置中,在Override Hook URL添加正確的可訪問 Jenkins webhook URL( https://jenkins.example.com/github-webhook/ )

3) 在Shared secret部分添加一個 secret(最好是長隨機字符串)。 這將是從 Jenkins 發送到 GitHub 的令牌,反之亦然,用於身份驗證。 這應該與 GitHub 服務器憑據不同!

4) 確保用戶擁有將 webhooks 添加到您的 GitHub 存儲庫的所有者訪問權限

5)不要忘記在此之后重新注冊網絡鈎子

Github 的說明(“配置全局身份驗證”,第一部分),

1. Create a user in Jenkins which has, at a minimum, Job/Build permissions

2. Log in as that user (this is required even if you are a Jenkins admin user), then click on the user's name in the top right corner of the page

3. Click 'Configure,' then 'Show API Token...', and note/copy the User ID and API Token.

4. In GitLab, when you create webhooks to trigger Jenkins jobs, use this format for the URL and do not enter anything for 'Secret Token': http://USERID:APITOKEN@JENKINS_URL/project/YOUR_JOB

就我而言,我使用了http://USERID:APITOKEN@myIPaddress:808/而沒有project/YOUR_JOB

https://username:password@jenkins.example.com/github-webhook/為我工作,但必須對密碼進行編碼才能使有效負載工作。 由於 nginx 授權,我的 github 無法聯系 jenkins,但傳遞用戶名和編碼密碼有效!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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