我可以用很多方式来问这个问题,比如如何使用Github个人访问令牌配置Jenkins凭据如何使用Github个人访问令牌在Jenkins中克隆Github repo
这就是问题所在
我知道的另一个解决方案
SSH
连接username
password
配置在Jenkins。然而,use of a password with the GitHub API is now deprecated。
但我的问题是如何使用Personal Access Token
设置Github与Jenkins的连接
5条答案
按热度按时间tpxzln5u1#
由于以下原因,已接受的答案不再有效:https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations。
您需要:
1.将存储库的URL更改为:
https://<access token>@github.com/<user-name>/<repo-name>.git
(用真实的参数替换每个<...>
)1.将凭据设置为无。
zaqlnxep2#
截至2021年8月,Dupinder Singh发布的答案是准确的。我唯一要补充的是,如果你是团队的一员,URL格式似乎有点不同。这是对我有效的方法:
例如,
请注意,如果你使用个人访问令牌,你不需要在jenkins中存储任何github凭证。
sxpgvts33#
至于
Jenkins Github Plugin
的凭证,请注意此插件现在只接受Personal access tokens
。要生成这样的令牌,请参考Github文档(例如here)。不要保存它,它可以在Github中重新生成,如果丢失或迁移到其他服务器时,可以在Jenkins中更新。
要将令牌添加到Jenkins凭据存储中,请转到
<JENKINS_URL:PORT>/credentials/store/system/domain/_/newCredentials
并选择Kind“Secret text”(而不是默认的“Username and password”),然后将令牌粘贴为Secret并选择一些ID。测试:凭据应出现在
<JENKINS_URL:PORT>/credentials/
处的凭据列表中,并可从<JENKINS_URL:PORT>/configure/
处的下拉列表中选择,其中按下“测试连接”按钮应显示“用户的凭据已验证<GITHUB_USER>“。更多信息:参见Github插件docs。
注意事项:Git插件有long-standing issues,所以如果新创建的“Secret text”没有出现在你的管道中,试试这个解决方案是否有帮助(“the user who trigger the build”被认为比“SYSTEM”更安全):client-and-managed-masters/why-credentials-are-not-listed-in-the-git-scm-section
nom7f22z4#
在2020/04年之前,还有一种方法可以做到这一点,它应该比个人访问令牌更好。最好的部分是,你可以继续使用用户名/密码样式的凭据,插件将在后台处理GitHub的身份验证。
优点包括:
*更大的速率限制-GitHub应用的速率限制随您的组织规模而缩放,而基于用户的令牌的限制为5000,无论您拥有多少个存储库。
*独立于用户的身份验证-每个GitHub应用都有自己独立于用户的身份验证。不再需要'bot'用户或确定谁应该是2FA或OAuth令牌的所有者。
*提高安全性和更严格的权限-与服务用户及其个人访问令牌相比,GitHub应用提供了更细粒度的权限。这使得Jenkins GitHub应用需要更少的权限才能正常运行。
*访问GitHub Checks API- GitHub应用程序可以访问GitHub Checks API,从Jenkins作业创建检查运行和检查套件,并提供提交的详细反馈以及代码注解
链接:
mxg2im7a5#
[UPDATE] git提出的新解决方案是
https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/
其中说:
从2021年8月13日起,我们将不再接受在验证Git操作时使用帐户密码,并将要求使用基于令牌的验证,例如针对GitHub.com上所有已验证的Git操作的个人访问令牌(针对开发者)或OAuth或GitHub App安装令牌(针对集成者)。
您需要做的事情:
https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/#what-you-need-to-do-today
基本上,将添加URL更改为
https://<access token>@github.com/dupinder/NgnixDockerizedDevEnv.git
像这样的东西
https://<access token>@github.com/dupinder/NgnixDockerizedDevEnv.git
个并将凭据设置为none。
感谢@吉尔·斯塔尔
[OLD手法]
经过多次讨论多线程从堆栈溢出
我发现一个线程是有用的。
参考此答案:https://stackoverflow.com/a/61104603/5108695
基本上
Personal access token
可以用作密码,至少就Jenkins
而言。我向凭据管理器添加了新的凭据。转到
Jenkins
credentials
〉System
〉Global credentials
〉Add credentials
,将打开一个页面。jenkins-user
或user
。Personal Access Token
现在开始配置项目。
*源代码管理选项卡,从凭据附近下拉列表中选择新配置凭据在存储库URL**下
这就是我们使用个人访问令牌在Jenkins和Github之间配置或设置身份验证的方法
参考文献:
Git Clone in Jenkins with Personal Access Token idles forever
Change jenkins pipeline to use github instead of gitlab