由于今天的 Github 身份验证更改弃用了用户/密码身份验证和当前的 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(最新)
- 此詹金斯安装仅供私人使用(不面向公众)
- 正在访问的仓库是私有的(不面向公众)
- Github 代币具有完全的仓库访问权限
问题:
该插件强制使用 Github 不再接受的用户/密码身份验证。说明指出将 TOKEN 放在密码字段中,但我这样做之后它仍然会抱怨:
无法使用用户名/密码验证访问 API
https://developer.github.com/changes/2020-02-14-deprecating-password-auth/#removal
说明指出:“仅支持用户名/密码凭证”,并指示在密码字段中添加令牌(屏幕截图显示)
所附的截图清楚地显示了这次灾难:
向 ServerFault 提出的问题:
- 我输入的凭证令牌是否错误?我尝试过:
- 一个空用户,以令牌作为密码
- 令牌作为用户和密码
- token 描述为用户,token 为密码
- 通常我会向开发人员提交有关应用程序问题的 Github 问题。但是由于没有“问题”组件可以向插件开发人员提交问题,所以我想在这里提出我的问题,以防其他人遇到这个问题。
答案1
完全一样。您的帖子激励我深入挖掘,并找到了解决方案。
转到“系统配置”(抱歉,我的浏览器设置为德语,我不知道确切的措辞)并以“秘密文本”格式为 GitHub 服务器创建新凭据。使用个人访问令牌作为秘密并为其提供描述。
使用“测试连接”按钮进行验证。它应该打印出以下内容:
Credentials verified for user your-cool-username, rate limit: 4876
现在在项目中它仍然强迫我使用用户名/密码凭据但它似乎可以与我们更改的全局 GitHub API 设置一起使用。
插件代码中提到了通过 SSH 进行签出(请参阅在仓库中),但我找不到使用密钥认证的方法。我有点困惑,我的解决方案竟然有效,我没想到这一点。
编辑:我实际上找到了一个通过SSH 签出选项,不确定/期望做得更好。
答案2
- 一个空用户,以令牌作为密码
- 令牌作为用户和密码
- token 描述为用户,token 为密码
然而,这些都不适合我
- GitHub 用户名作为用户,token 作为密码
做过。
答案3
同样的问题。使用链接创建新令牌Github 分支源插件文档添加带有用户名和令牌的新凭证就可以为我们解决问题。
我认为@andreas-bretschneider 的解决方案没有使用这个插件,只是单独的作业和全局 github 集成(这并没有为我们解决问题)。