Загрузка подмодулей частного репозитория в проекте Jenkins

В настоящее время я застреваю, пытаясь заставить Дженкинса

Вот мой вывод из Jenkins Console.. очевидно, что плагин пытается использовать прямое имя проекта.., который не настроен на использование ключа.

  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

Git рекурсивно извлекает репозиции, определенные в .gitmodules в базе основного проекта.

У вас есть несколько способов атаковать это:

  • Измените .gitmodules, чтобы ссылаться на копию репо с требуемым контроля доступа.
  • Выполнить репозиторий github и изменить требуемый доступ управления.
  • Удалите запись в .submodule и вместо этого скопируйте ее в главный репо.
  • Если вы контролируете репозиторий github, настройте ~ jenkins/.ssh/config IdentityFile