Jenkins Github 分支源外掛在今天的 Github 身份驗證更改後使用 Github 令牌失敗
由於今天的 Github auth 更改棄用了 user/pass auth 和目前的 Github 分支源外掛,我目前面臨 Jenkins <> Github 集成的問題。
棄用資訊:https ://developer.github.com/changes/2020-02-14-deprecating-password-auth/#removal
外掛:https ://github.com/jenkinsci/github-branch-source-plugin
- 詹金斯:2.249.3
- Github 分支源碼外掛 2.9.1(最新)
- 此詹金斯安裝僅是私有的(不面向公眾)
- 正在訪問的 repo 是私有的(不是面向公眾的)
- Github 令牌具有完整的 repo 訪問權限
問題:
該外掛強制 Github 不再接受的使用者/密碼驗證。說明將令牌放在密碼欄位中,但在我這樣做後它仍然抱怨:
無法使用使用者名/密碼身份驗證訪問 API
https://developer.github.com/changes/2020-02-14-deprecating-password-auth/#removal
說明狀態:“僅支持使用者名/密碼憑據”並指示在密碼欄位中添加令牌(螢幕截圖顯示此)
隨附的螢幕截圖清楚地顯示了崩潰:
對 ServerFault 的問題:
我是否為憑據輸入了錯誤的令牌?我試過了:
- 一個空使用者,以令牌作為密碼
- 令牌作為使用者並通過
- 令牌描述為使用者,令牌為密碼
通常我會向開發人員送出有關應用程序問題的 Github 問題。但是,由於沒有“問題”組件可以向外掛開發人員送出問題,所以我想在這裡問我的問題,以防其他人遇到這個問題。
這裡的故事完全一樣。你的文章激勵我深入探勘,我找到了解決方案。
轉到“系統配置”(對不起,我的瀏覽器設置為德語,我不知道確切的措辭)並以“秘密文本”格式為 GitHub 伺服器創建新憑據。使用個人訪問令牌作為秘密並對其進行描述。
使用“測試連接”按鈕進行驗證。它應該列印出以下內容:
Credentials verified for user your-cool-username, rate limit: 4876
現在在項目中,它仍然強制我使用使用者名/密碼憑據,但它似乎可以與我們更改的全域 GitHub API 設置一起使用。
外掛程式碼中有關於通過 SSH 結帳的參考資料(請參閱repo 中的此處),但我找不到使用密鑰身份驗證的方法。我的解決方案有效,這讓我有點困惑,我沒想到。
編輯:我實際上通過SSH 結帳選項找到了結帳,不確定/期望做得更好。