我的主要疑问是github认证是如何在jenkins中发生的?
任务:我们必须在jenkins中与github repo建立连接,用于"github Pull Request builder"。
GitHub身份验证——比;GitHub服务器API URL: https://api.github.com(为什么我们给出这个值?这里我们没有给出任何存储库名称,那么,身份验证是如何发生的呢?)——比;凭据:我已经给出了我的并测试了"连接到api",响应是:连接到https://api.github.com作为null (null)登录:{{my_user_name}}
——比;但是,如果我给我的同事证书(已经在证书下列出)并使用"连接到api"进行测试;那么下面的错误已经到来。
无法连接到GitHub API: org.kohsuke.github.HttpException: {"message":"Requires authentication","documentation_url"; "https://docs.github.com/rest/reference/users#get-the-authenticated-user">
GitHub Pull Request Builder
GitHub Auth
GitHub Server API URL https://api.github.com
Help for feature: GitHub Server API URL
Jenkins URL override
Help for feature: Jenkins URL override
Shared secret
••••••••••••••••••••••••••••••••••••••••••••••••••••••••••
Help for feature: Shared secret
Credentials user_name/****** (github user)
Add
Help for feature: Credentials
Test basic connection to GitHub
Error:
Connect to API
Unable to connect to GitHub API: org.kohsuke.github.HttpException: {"message":"Requiresauthentication","documentation_url":"https://docs.github.com/rest/reference/users#get-the-authenticated-user"}
有人能帮我一下吗?
我知道你是怎么做的了。基本上,Jenkins不喜欢在全局和特定于作业的身份验证中使用不同的访问令牌。
- 进入"Manage Jenkins"比;"配置煤气报修比;向下滚动到GitHub 添加Github服务器"带有API URL "https://api.github.com">
- 作为凭证使用github中的个人访问令牌作为"秘密文本">
- 点击"测试连接";
- (可选)启用"管理钩子"如果你喜欢
- "Save"Apply"
- 现在你可以在Jenkins中设置Github组织,在这里->
- 将凭据指定为"Username with password",其中Username是您的github用户名,password是您的个人访问令牌。ID和描述可以为空,但可以帮助记住凭证的用途。
- 确保你设置了"owner";值正确设置为您的帐户可以访问的github配置文件。(例如,与凭据中指定的名称相同)
- 配置github组织的其余部分
- "Save"Apply"
不要使用用户名和密码。这行不通。使用您的Github帐户中的个人访问令牌,并将其用作詹金斯的秘密文本凭据。
以我在2023年的情况为例,我试着遵循@Pingger Shikkoken的答案,尽管不幸的是它不起作用。
解决这个问题的办法是去"Manage Jenkins>配置系统->Github"只是添加一个新的Github服务器与相同的设置(我的API令牌已经是最新的)。
希望这能帮助到一些人。
连接到github时,您需要提供凭据。对于GitHub Pull Request Builder
,您需要使用访问令牌为给定的Github服务器API Url设置凭据。身份验证是基于您的访问令牌完成的。
当您创建一个作业时,此时您需要提供您的github url
。将为特定的github存储库创建一个作业。
你可以在这里阅读更多。