我试图设置Jenkins(在Windows上运行)使用github插件从github.com下载私有存储库。它对我们的公共存储库工作正常,但对于私有,无论我做什么,它都会挂起,然后就像这样:
Fetching changes from the remote Git repository
git.exe config remote.origin.url https://github.com/
myorganization/MyProjectName.git # timeout=10
Fetching upstream changes from
https://github.com/myorganization/MyProjectName.git
git.exe --version # timeout=10
git.exe fetch --tags --progress
https://github.com/myorganization/MyProjectName.git +refs/heads/*:refs/remotes/origin/*
ERROR: Timeout after 10 minutes
ERROR: Error fetching remote repo 'origin'
问题:
可以让Jenkins使用https和凭证而不是ssh来提取回购。如果是这样,那么诀窍是什么?显然它在理论上是可能的,因为我从来没有在我的git帐户或repos上有任何部署密钥,但Visual Studio能够使用我的凭据和https与repo进行交互。 ...但VS和GitHub for Windows已注册为"授权的应用程序"在GitHub网站上。 https://www.blazemeter.com/blog/how-start-working-github-plugin-jenkins听起来就像我正在寻找的那样,我在git网站上做了令牌生成,将github.com设置为Jenkins上的git服务器,使用生成的GitHub令牌对其进行测试(在Jenkins上)它可以工作,但是当我进行构建时,它不会拉回购。
如果你不能在Jenkins中以同样的方式做到这一点,为什么他们会在构建配置中使用该字段来为git分配凭据?那些凭证不用于ssh吗?
如果可能,为什么所有文档似乎都指向使用部署密钥和ssh?优势是什么?这似乎是一个麻烦的关键对和" known_hosts"文件而不只是输入用户名/密码。
知道为什么它会超时并且不会立即失败吗?
背景: 我已经阅读了很多关于它的内容,似乎每个人都做了不同的事情,例如: Authenticate Jenkins CI for Github private repository 大多数人似乎都在经历这个生成密钥对和使用ssh的过程。我一直走在那条道路上,公司安全和缺乏文档的结合让它变得相当痛苦(我想我已经关闭但是防火墙阻止了我,所以我看着其他人我向网络人员辩护之前的选择。)
后续行动:我最终选择了ssh路线,但是我仍然很想知道http +凭证是否可行,以及为什么github插件有足够的凭据空间......