由于今天的 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 服务器设置
现在在项目中,它仍然强制我使用用户名/密码凭据,但它似乎可以与我们更改的全局 GitHub API 设置一起使用。
我的用户名/密码凭据设置
插件代码中有关于通过 SSH 结帐的参考资料(请参阅repo 中的此处),但我找不到使用密钥身份验证的方法。我的解决方案有效,这让我有点困惑,我没想到。
编辑:我实际上通过SSH 结帐选项找到了结帐,不确定/期望做得更好。
然而,这些都不适合我
做过。
这里同样的问题。使用Github 分支源插件文档中的链接创建一个新令牌,并添加一个带有用户名和令牌的新凭证,为我们解决了这个问题。
我认为@andreas-bretschneider 的解决方案不使用这个插件,只是个人工作和全球 github 集成(这并没有为我们解决问题)。