在Jenkins Project中加载私有存储库子模块

时间:2014-08-27 19:37:23

标签: git github jenkins jenkins-plugins ssh-keys

我目前正试图让詹金斯去

这是Jenkins控制台的输出..显然插件试图使用直接项目名称..这不是设置使用密钥。

  Started by user '__'
Building in workspace /var/lib/jenkins/workspace/JENKINSPROJECTNAME
 > git rev-parse --is-inside-work-tree # timeout=10
Fetching changes from the remote Git repository
 > git config remote.PROJECTREPO.url github-deploy-project:Owner/ProjectName # timeout=10
Fetching upstream changes from github-deploy-project:Owner/ProjectName
 > git --version # timeout=10
using GIT_SSH to set credentials 
 > git fetch --tags --progress github-deploy-project:Owner/ProjectName +refs/heads/*:refs/remotes/ProjectName/*
 > git rev-parse refs/remotes/ProjectName/master^{commit} # timeout=10
 > git rev-parse refs/remotes/ProjectName/ProjectName/master^{commit} # timeout=10
Checking out Revision ______________ (refs/remotes/ProjectName/master)
 > git config core.sparsecheckout # timeout=10
 > git checkout -f _____________
 > git rev-list ________________ # timeout=10
 > git remote # timeout=10
 > git submodule init # timeout=10
 > git submodule sync # timeout=10
 > git config --get remote.ProjectName.url # timeout=10
 > git submodule update --init --recursive
FATAL: Command "git submodule update --init --recursive" returned status code 1:
stdout: 
stderr: Cloning into 'submodule/FolderName'...
remote: Invalid username or password.
fatal: Authentication failed for 'https://github.com/Owner/SubModuleProject.git/'
Clone of 'https://github.com/Owner/SubModuleProject.git' into submodule path 'submodule/FolderName' failed

hudson.plugins.git.GitException: Command "git submodule update --init --recursive" returned status code 1:
stdout: 
stderr: Cloning into 'submodule/FolderName'...
remote: Invalid username or password.
fatal: Authentication failed for 'https://github.com/Owner/SubModuleProject.git/'
Clone of 'https://github.com/Owner/SubModuleProject.git' into submodule path 'submodule/FolderName' failed

    at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:1407)
    at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.access$400(CliGitAPIImpl.java:87)
    at org.jenkinsci.plugins.gitclient.CliGitAPIImpl$6.execute(CliGitAPIImpl.java:742)
    at hudson.plugins.git.extensions.impl.SubmoduleOption.onCheckoutCompleted(SubmoduleOption.java:77)
    at hudson.plugins.git.GitSCM.checkout(GitSCM.java:920)
    at hudson.model.AbstractProject.checkout(AbstractProject.java:1252)
    at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:615)
    at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:86)
    at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:524)
    at hudson.model.Run.execute(Run.java:1706)
    at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
    at hudson.model.ResourceController.execute(ResourceController.java:88)
    at hudson.model.Executor.run(Executor.java:232)

1 个答案:

答案 0 :(得分:1)

Git递归地获取主项目底部的.gitmodules中定义的repos。

你有几种方法可以解决这个问题:

  • 更改.gitmodules以引用所需的repo副本 访问控制。
  • fork github repo,并更改所需的访问权限 控制。
  • 删除.submodule中的条目,然后将其复制到.submodule中 主要回购。
  • 如果你控制有问题的github仓库,请配置 ~jenkins / .ssh / config IdentityFile