У меня есть Hudson (система непрерывной интеграции) с плагином git, запущенным в Tomcat Windows Service. msysgit установлен, и путь msysgit bin находится в пути. PuTTY/Pageant/plink установлены, и msysgit настроен на их использование.
Когда я запускаю задание, пытающееся клонировать репозиторий git, я получаю следующую ошибку:
$ git clone -o origin [email protected]:project.git "e:\HUDSON_HOME\jobs\Project Trunk\workspace"
ERROR: Error cloning remote repo 'origin' : Could not clone [email protected]:project.git
ERROR: Cause: Error performing git clone -o origin [email protected]:project.git e:\HUDSON_HOME\jobs\Project Trunk\workspace
Trying next repository
ERROR: Could not clone from a repository
FATAL: Could not clone
hudson.plugins.git.GitException: Could not clone
- Выполнение git clone -o origin git @hostname: project.git "e:\HUDSON_HOME\jobs\Project Trunk\workspace" из командной строки работает без ошибок.
- Я подтвердил, что моя проблема не совпадает с Hudson git clone error, потому что git находится в пути, и я не получаю никаких ошибка об исполняемом файле git на странице системы Hudson Configure System.
Это заставляет меня думать, что проблема в том, что пользователь, которому принадлежит служба Tomcat/Hudson Windows (локальная система), не имеет ключа SSH, настроенного для клонирования хранилища git.
Мой вопрос в том, как я могу настроить вещи так, чтобы плагин git plugins/msysgit знал, чтобы использовать конкретный ключ SSH при попытке клонирования? Я не думаю, что Pageant будет работать, потому что служба Tomcat работает как пользователь "Local System", но я могу ошибаться. Я пробовал настройку Pageant как службу (используя runassvc.exe), передав соответствующий ключ и выполнив ее как "Локальная система". Служба Tomcat/Hudson, похоже, не может видеть ключ от службы просмотра. Существуют ли другие методы настройки ключа?
Спасибо.
EDIT: обсуждение http://n4.nabble.com/Hudson-with-git-and-ssh-td375633.html показывает, что у кого-то был аналогичный вопрос. ssh-agent был предложен, и этот инструмент действительно поставляется с msysgit, но я не уверен, как его использовать в сочетании с сервисом Hudson. Тем не менее, хорошая подсказка, если кто-то может заполнить пробелы. Спасибо Питеру за комментарий со ссылкой.
Кроме того, обсуждение вопроса о http://n4.nabble.com/questions-about-git-and-github-plug-ins-td383420.html начинается с того же вопроса. Я пытаюсь воскресить эту нить.