38

我可以通过多种方式提出这个问题,例如如何使用 Github 个人访问令牌配置 Jenkins 凭据 如何使用 Github 个人访问令牌在 Jenkins 中克隆 Github 存储库

所以这就是问题所在


我知道的替代解决方案

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

4

5 回答 5

68

[更新] git 提出的新解决方案是

https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/

其中说:

从 2021 年 8 月 13 日开始,我们在对 Git 操作进行身份验证时将不再接受帐户密码,并将要求使用基于令牌的身份验证,例如个人访问令牌(针对开发人员)或 OAuth 或 GitHub 应用程序安装令牌(针对集成商)适用于 GitHub.com 上所有经过身份验证的 Git 操作。您也可以在您喜欢的地方继续使用 SSH 密钥。

你需要做什么:

https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/#what-you-need-to-do-today

基本上,将添加 URL 更改为

https://<access token>@github.com/<userName>/<repository>.git

像这样的东西

https://<access token>@github.com/dupinder/NgnixDockerizedDevEnv.git

并将凭据设置为无。

感谢@Gil Stal


【老技术】

在对 Stackoverflow 的多个线程进行多次讨论之后

我发现了一个有用的线程。

参考这个答案: https ://stackoverflow.com/a/61104603/5108695


至少就目前而言,基本上 Personal access token可以用作密码。Jenkins我向凭据管理器添加了新凭据。

Jenkins

  • 转到credentials> System> Global credentials>Add credentials将打开一个页面。
  • 种类下拉列表中选择用户名和密码
  • 在 User 中输入一个不存在的用户名,例如jenkins-useror user
  • Personal Access Token在密码字段中添加

现在开始配置您的项目。

  • 源代码管理选项卡,从Repository URL下的凭据附近的下拉菜单中选择新配置的凭据

这就是我们如何使用个人访问令牌在 Jenkins 和 Github 之间配置或设置身份验证的方式

参考:
Jenkins 中的 Git Clone 与个人访问令牌永远闲置
更改 jenkins 管道以使用 github 而不是 gitlab

于 2020-04-08T16:23:30.173 回答
6

因此,接受的答案将不再起作用:https ://github.blog/2020-12-15-token-authentication-requirements-for-git-operations 。

您将需要:

  1. 将 repo 的 URL 更改为:(https://<access token>@github.com/<user-name>/<repo-name>.git将 every 替换<...>为真实参数)

  2. 将凭据设置为无。

于 2021-08-15T17:10:22.997 回答
2

至于 的凭据Jenkins Github Plugin,请注意Personal access tokens,此插件现在只接受。

要生成这样的令牌,请遵循 Github 文档(例如此处)。不要保存它,如果丢失或迁移到其他服务器时,它可以在 Github 中重新生成并在 Jenkins 中更新。

要将令牌添加到 Jenkins 凭据存储中,请转到<JENKINS_URL:PORT>/credentials/store/system/domain/_/newCredentials并选择种类“秘密文本”(不是默认的“用户名和密码”),然后将令牌粘贴为秘密并选择一些 ID。

测试:凭据应出现在凭据列表中,<JENKINS_URL:PORT>/credentials/并可从下拉列表中选择<JENKINS_URL:PORT>/configure/,其中按下“测试连接”按钮应显示“已为用户 <GITHUB_USER> 验证的凭据”。

更多信息:请参阅 Github 插件文档

于 2020-11-14T20:03:13.943 回答
1

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

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

例如

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

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

于 2021-08-30T22:23:10.693 回答
0

截至 2020/04 年,有(还有另一种)方法可以做到这一点,这应该优于个人访问令牌。最好的部分是您可以继续使用用户名/密码样式的凭据,并且该插件将在后台处理与 GitHub 的身份验证。

好处包括:

  • 更大的速率限制 - GitHub 应用程序的速率限制随您的组织规模而变化,而基于用户的令牌的限制为 5000,无论您拥有多少存储库。

  • 独立于用户的身份验证- 每个 GitHub 应用程序都有自己的独立于用户的身份验证。不再需要“机器人”用户或弄清楚谁应该是 2FA 或 OAuth 令牌的所有者。

  • 改进的安全性和更严格的权限- 与服务用户及其个人访问令牌相比,GitHub 应用程序提供了更细粒度的权限。这让 Jenkins GitHub 应用程序需要更少的权限才能正常运行。

  • 访问 GitHub Checks API - GitHub 应用程序可以访问 GitHub Checks API 以从 Jenkins 作业创建检查运行和检查套件,并提供有关提交和代码注释的详细反馈

链接:

于 2022-01-08T09:10:34.620 回答