2017-04-04 82 views
1

我的目标是将一个私人Github存储库提供给Jenkins。如何将Jenkins链接到私人Github存储库?

下面是一些背景:

  1. 的MacOS
  2. 詹金斯本地托管,localhost:8080
  3. 安装Git插件可和Github上的插件在詹金斯。
  4. 如果我将存储库设置为Public,那么Jenkins中的一切都很好。
  5. 从命令行,我可以做“git克隆”那个私人回购与我在詹金斯使用相同的凭据。

但是,当我把它变成Private并将它用作Jenkins的源代码时,它已经损坏。

的错误是:

Building in workspace /Users/Shared/Jenkins/Home/jobs/TestFramework/workspace 
    > /usr/bin/git rev-parse --is-inside-work-tree # timeout=10 
    Fetching changes from the remote Git repository 
    > /usr/bin/git config remote.origin.url https://github.com/XXXXXXX/testframework.git # timeout=10 
    Fetching upstream changes from https://github.com/XXXXXXX/testframework.git 
    > /usr/bin/git --version # timeout=10 
    using GIT_ASKPASS to set credentials 
    > /usr/bin/git fetch --tags --progress https://github.com/XXXXXXX/testframework.git +refs/heads/*:refs/remotes/origin/* # timeout=5 
    ERROR: Timeout after 5 minutes 
    ERROR: Error fetching remote repo 'origin' 
    hudson.plugins.git.GitException: Failed to fetch from https://github.com/XXXXXXX/testframework.git 
     at hudson.plugins.git.GitSCM.fetchFrom(GitSCM.java:806) 
     at hudson.plugins.git.GitSCM.retrieveChanges(GitSCM.java:1070) 
     at hudson.plugins.git.GitSCM.checkout(GitSCM.java:1101) 
     at hudson.scm.SCM.checkout(SCM.java:496) 
     at hudson.model.AbstractProject.checkout(AbstractProject.java:1278) 
     at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:604) 
     at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:86) 
     at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:529) 
     at hudson.model.Run.execute(Run.java:1728) 
     at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43) 
     at hudson.model.ResourceController.execute(ResourceController.java:98) 
     at hudson.model.Executor.run(Executor.java:405) 
    Caused by: hudson.plugins.git.GitException: Command "/usr/bin/git fetch --tags --progress https://github.com/XXXXXXX/testframework.git +refs/heads/*:refs/remotes/origin/*" returned status code 143: 

我试着在网上一些建议:

  1. SSH-凯基到/Users/shared/jenkins/.ssh/id_rsa
  2. SSH- keygen to /Users/jason/.ssh/id_rsa
  3. 将两个相应的“id_rsa.pub”添加到私人存储库“设置”=>“部署密钥”。

但仍然无法正常工作。

+0

我用来创建SSH命令只是:SSH-凯基。我应该添加一些标签吗?不确定。谢谢 –

+0

我会将此问题标记为重复,但我没有看到该选项。也许我的声誉太低了。无论如何,我认为你应该看看这个帖子。 https://stackoverflow.com/questions/5212304/authenticate-jenkins-ci-for-github-private-repository – user985366

+0

此问题不是您发布的@ user985366链接的副本。这里的问题是使用git repo的私人回购的提取标签超时。您所评论的问题链接与身份验证和设置相关 –

回答

0

我想问题可能是这样的:当詹金斯试图克隆回购或获取有关回购的信息时,它将使用名为jenkins的用户名。当然,该用户无权访问您的私人回购。如果你是从命令行执行的,你将使用自己的用户名,这样你就可以成功克隆回购。

您可以通过在项目配置中更改源代码管理的设置来解决此问题。

我们正在做的是为github回购使用“用户名和密码”证书。

  1. 输入“Repository URL”后,您可以点击“Credential”附近的“Add”按钮添加“Username with password”凭证。
  2. 在弹出窗口中,为“Kind”字段选择“带密码的用户名”。
  3. 输入您的Github帐户的用户名和密码并保存。
  4. 然后,您可以在设置源代码管理时选择您在“凭据”字段中添加的凭证。

希望这可以帮助你。

(带证书插件将您的帐号和密码是安全的莫名其妙,所以你不必担心暴露你的帐号和密码)

+0

我面临这个问题,并且我已经使用凭证插件配置了我的回购协议,但同样的错误 –

相关问题