我可以通过多种方式提出这个问题,例如如何使用 Github 个人访问令牌配置 Jenkins 凭据 如何使用 Github 个人访问令牌在 Jenkins 中克隆 Github 存储库
所以这就是问题所在
我知道的替代解决方案
SSH
联系username
password
Jenkins 中的配置。但是, 现在不推荐在 GitHub API 中使用密码。
但我的问题是如何使用 Jenkins 设置 Github 连接Personal Access Token
我可以通过多种方式提出这个问题,例如如何使用 Github 个人访问令牌配置 Jenkins 凭据 如何使用 Github 个人访问令牌在 Jenkins 中克隆 Github 存储库
所以这就是问题所在
我知道的替代解决方案
SSH
联系username
password
Jenkins 中的配置。但是,
现在不推荐在 GitHub API 中使用密码。但我的问题是如何使用 Jenkins 设置 Github 连接Personal Access Token
[更新] git 提出的新解决方案是
https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/
其中说:
从 2021 年 8 月 13 日开始,我们在对 Git 操作进行身份验证时将不再接受帐户密码,并将要求使用基于令牌的身份验证,例如个人访问令牌(针对开发人员)或 OAuth 或 GitHub 应用程序安装令牌(针对集成商)适用于 GitHub.com 上所有经过身份验证的 Git 操作。您也可以在您喜欢的地方继续使用 SSH 密钥。
你需要做什么:
基本上,将添加 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
将打开一个页面。jenkins-user
or user
。Personal Access Token
在密码字段中添加现在开始配置您的项目。
这就是我们如何使用个人访问令牌在 Jenkins 和 Github 之间配置或设置身份验证的方式
参考:
Jenkins 中的 Git Clone 与个人访问令牌永远闲置
更改 jenkins 管道以使用 github 而不是 gitlab
因此,接受的答案将不再起作用:https ://github.blog/2020-12-15-token-authentication-requirements-for-git-operations 。
您将需要:
将 repo 的 URL 更改为:(https://<access token>@github.com/<user-name>/<repo-name>.git
将 every 替换<...>
为真实参数)
将凭据设置为无。
至于 的凭据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 插件文档。
截至 2021 年 8 月,Dupinder Singh 发布的答案是准确的。我唯一要补充的是,如果您是团队的一员,则 url 格式似乎有点不同。这对我有用:
https://<access token>@github.com/<team>/<repo>.git
例如
https://ghp_6dh3jdk394jsmbh299jjdg20fh87hd83ksk39@github.com/MyKuleTeam/KuleGuyCode.git
请注意,如果您使用个人访问令牌,则不需要将任何 github 凭据存储在 jenkins 中。
截至 2020/04 年,有(还有另一种)方法可以做到这一点,这应该优于个人访问令牌。最好的部分是您可以继续使用用户名/密码样式的凭据,并且该插件将在后台处理与 GitHub 的身份验证。
好处包括:
更大的速率限制 - GitHub 应用程序的速率限制随您的组织规模而变化,而基于用户的令牌的限制为 5000,无论您拥有多少存储库。
独立于用户的身份验证- 每个 GitHub 应用程序都有自己的独立于用户的身份验证。不再需要“机器人”用户或弄清楚谁应该是 2FA 或 OAuth 令牌的所有者。
改进的安全性和更严格的权限- 与服务用户及其个人访问令牌相比,GitHub 应用程序提供了更细粒度的权限。这让 Jenkins GitHub 应用程序需要更少的权限才能正常运行。
访问 GitHub Checks API - GitHub 应用程序可以访问 GitHub Checks API 以从 Jenkins 作业创建检查运行和检查套件,并提供有关提交和代码注释的详细反馈
链接: