Jenkins/Github错误克隆远程仓库“origin”:无法克隆。

3

我遇到了一个与Github/Jenkins认证相关的问题,希望你能帮忙。

环境如下: Jenkins主节点在Windows上 从节点运行在OSX上 Jenkins可以与从节点正常通信

当尝试从我们的私有git仓库拉取代码时,我们看到了以下错误。这个错误不会出现在主节点或其他Linux从节点上,并且在OSX终端中可以克隆成功。

Started by user xxxxxxxxxxxx
[EnvInject] - Loading node environment variables.
Building remotely on MAC01 in workspace /var/jenkins/workspace/xxxxxxxxxxxx
Checkout:NativeiOSSlots / /var/jenkins/workspace/xxxxxxxxxxxxx - hudson.remoting.Channel@166d8eb:MAC01
Using strategy: Default
Last Built Revision: Revision 7232678c31bf2c6f3c4bd5a66b349edf9288440c (origin/HEAD, origin/master)
Cloning the remote Git repository
Cloning repository <repo url>
git --version
git version 1.8.3.1
ERROR: Error cloning remote repo 'origin' : Could not clone <repo url>
hudson.plugins.git.GitException: Could not clone <repo url>
    at org.jenkinsci.plugins.gitclient.CliGitAPIImpl$1.execute(CliGitAPIImpl.java:226)
    at org.jenkinsci.plugins.gitclient.AbstractGitAPIImpl.clone(AbstractGitAPIImpl.java:57)
    at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.clone(CliGitAPIImpl.java:33)
    at hudson.plugins.git.GitSCM$2.invoke(GitSCM.java:1012)
    at hudson.plugins.git.GitSCM$2.invoke(GitSCM.java:948)
    at hudson.FilePath$FileCallableWrapper.call(FilePath.java:2387)
    at hudson.remoting.UserRequest.perform(UserRequest.java:118)
    at hudson.remoting.UserRequest.perform(UserRequest.java:48)
    at hudson.remoting.Request$2.run(Request.java:326)
    at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:72)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
    at java.util.concurrent.FutureTask.run(FutureTask.java:138)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
    at java.lang.Thread.run(Thread.java:680)
Caused by: hudson.plugins.git.GitException: Command "/Applications/GitHub.app/Contents/Resources/git/bin/git clone --progress -o origin <repo url> /var/jenkins/workspace/xxxxxxxxxx" returned status code 128:
stdout: Cloning into '/var/jenkins/workspace/xxxxxxxxxx'...

stderr: remote: Repository not found.
fatal: Authentication failed for '<repo url>'

    at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:790)
    at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.access$100(CliGitAPIImpl.java:33)
    at org.jenkinsci.plugins.gitclient.CliGitAPIImpl$1.execute(CliGitAPIImpl.java:224)
    ... 14 more

有什么想法吗?
4个回答

2

我曾经遇到过同样的问题。Jenkins无法将我的git repo克隆到本地PC。

解决方法:

  1. 打开services.msc
  2. 找到Jenkins服务并打开其属性
  3. 进入登录选项卡,输入您的用户名和密码。
  4. 重新启动服务。

这些步骤解决了我的问题,因为我在其中提供了我的企业登录名和密码。


0

很可能 Jenkins 从机在您的 Mac 上运行的用户未正确设置 github(没有正确的证书)。 在我的 Mac 从机上,该用户名为 jenkins。 以该用户身份登录您的从机,然后查看是否可以执行以下操作:

ssh -T git@github.com

如果这样不起作用,请确保你已经安装了正确的证书并且机器可以看到外部世界。


ssh -T git@github.com 不会引起任何问题,我用来确认这一点的命令是 git clone https://github.com/REPO/NAME,我不会被提示输入用户名或密码,因为它们已经缓存在 OSX Keychain 中。我不确定的是,如果我使用 HTTPS,那么我是否需要 ssh 密钥? - user2732625
你确定Jenkins从机用户是你进行实验的那个吗?你使用什么URL进行克隆?我在jenkins用户的~/.ssh中有我的Github证书(你可以尝试一下)。 - Sven Delmas

-1

我也遇到了这个问题。最终我不得不将我的Git客户端插件降级到1.6.4版本。当我使用1.8.0版本时,我在尝试克隆每个仓库时都会出现这个错误。一旦我回滚到旧版本,所有的问题都得到了解决。


-1

当以运行Jenkins的用户身份运行时,终端是否真正克隆成功?

您可能没有正确设置SSH访问权限。请参阅此内容:无法克隆存储库


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接