如何使用Github个人访问令牌在Jenkins

uqzxnwby  于 2022-11-02  发布在  Jenkins
关注(0)|答案(5)|浏览(399)

我可以用很多方式来问这个问题,比如如何使用Github个人访问令牌配置Jenkins凭据如何使用Github个人访问令牌在Jenkins中克隆Github repo
这就是问题所在
我知道的另一个解决方案

但我的问题是如何使用Personal Access Token设置Github与Jenkins的连接

tpxzln5u

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.将凭据设置为无。

zaqlnxep

zaqlnxep2#

截至2021年8月,Dupinder Singh发布的答案是准确的。我唯一要补充的是,如果你是团队的一员,URL格式似乎有点不同。这是对我有效的方法:

https://<access token>@github.com/<team>/<repo>.git

例如,

https://ghp_6dh3jdk394jsmbh299jjdg20fh87hd83ksk39@github.com/MyKuleTeam/KuleGuyCode.git

请注意,如果你使用个人访问令牌,你不需要在jenkins中存储任何github凭证。

sxpgvts3

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

nom7f22z

nom7f22z4#

在2020/04年之前,还有一种方法可以做到这一点,它应该比个人访问令牌更好。最好的部分是,你可以继续使用用户名/密码样式的凭据,插件将在后台处理GitHub的身份验证。
优点包括:

*更大的速率限制-GitHub应用的速率限制随您的组织规模而缩放,而基于用户的令牌的限制为5000,无论您拥有多少个存储库。
*独立于用户的身份验证-每个GitHub应用都有自己独立于用户的身份验证。不再需要'bot'用户或确定谁应该是2FA或OAuth令牌的所有者。
*提高安全性和更严格的权限-与服务用户及其个人访问令牌相比,GitHub应用提供了更细粒度的权限。这使得Jenkins GitHub应用需要更少的权限才能正常运行。
*访问GitHub Checks API- GitHub应用程序可以访问GitHub Checks API,从Jenkins作业创建检查运行和检查套件,并提供提交的详细反馈以及代码注解

链接:

mxg2im7a

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

  • 转到credentialsSystemGlobal credentialsAdd credentials,将打开一个页面。
  • 在“种类”下拉列表中,选择“用户名和密码”。
  • 在“用户”中,输入一个不存在的用户名,如jenkins-useruser
  • 在密码字段中添加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

相关问题