Дженкинс не обнаруживает учетные данные GIT из диспетчера учетных данных Windows

У меня есть 2 копии GIT-репозиториев, назовем их "происхождение" и "резервное копирование". Чего я хочу добиться, так это следующего. Моя команда постоянно подталкивает и синхронизирует их изменения с "происхождением", однако я хочу убедиться, что у меня есть копия "происхождения" в другом географическом местоположении, которая будет служить дубликатом на случай, если пожар разразится, уничтожая все в моем офисе. Для этого я сохранил идентичную копию моего git-репо, размещенного в облаке.

Теперь, используя комбинацию Jenkins и пакетного сценария Windows, я пытаюсь найти способ синхронизировать эти репозитории. Пакетный скрипт будет отвечать за фактическую операцию синхронизации, а Дженкинс будет гарантировать, что операция синхронизации выполняется периодически. Дублирующаяся копия называется "резервная копия" (как вы, возможно, уже догадались).

Проблема в том, что когда я запускаю пакетный скрипт из командной строки напрямую, он выполняется именно так, как я хочу; Но когда я пытаюсь выполнить пакетный скрипт через задание Jenkins, он продолжает ждать имени пользователя и пароля из "резервного" хранилища. Учетные данные для "резервного" хранилища уже хранятся в диспетчере учетных данных Windows, и пакетный сценарий может использовать учетные данные при непосредственном выполнении, но почему-то это не тот случай, когда я пытаюсь выполнить его через Jenkins.

Я пробовал поискать в Google, поэтому в SO даже провел большой поиск, чтобы выяснить, могу ли я найти что-то на форумах jenkins, но пока что не нашел ничего полезного.

Я не уверен, будет ли это полезным, но ниже приведен мой пакетный скрипт для справки.

@echo OFF

pushd K:

pushd "K:\my-git-workspace\mygit-repo"

echo Pulling "master" from origin
git pull origin master

echo Pulling "master" from backup
git pull backup master

echo Pushing "master" to backup
git push backup master

echo Pushing "master" to origin
git push origin master

echo Pulling all tags from origin
git pull --tags origin

echo Pulling all tags from backup
git pull --tags origin

echo Pushing all tags to backup
git  push --tags backup

echo Pushing all tags to origin
git push --tags origin

popd

Вот моя конфигурация GIT, которую я вижу из командной строки Windows (я заменил user.name и user.email на фиктивные значения)

core.symlinks=false
core.autocrlf=true
color.diff=auto
color.status=auto
color.branch=auto
color.interactive=true
pack.packsizelimit=2g
help.format=html
http.sslcainfo=/bin/curl-ca-bundle.crt
sendemail.smtpserver=/bin/msmtp.exe
diff.astextplain.textconv=astextplain
rebase.autosquash=true
user.email=myemail@domain.com
user.name=My Name
credential.helper=wincred

Вот конфигурация GIT, которую я получаю при запуске (git config -l) от Jenkins

core.symlinks=false
core.autocrlf=true
color.diff=auto
color.status=auto
color.branch=auto
color.interactive=true
pack.packsizelimit=2g
help.format=html
http.sslcainfo=/bin/curl-ca-bundle.crt
sendemail.smtpserver=/bin/msmtp.exe
diff.astextplain.textconv=astextplain
rebase.autosquash=true
user.email=myemail@domain.com
user.name=My Name
credential.helper=wincred
core.repositoryformatversion=0
core.filemode=false
core.bare=false
core.logallrefupdates=true
core.symlinks=false
core.ignorecase=true
core.hidedotfiles=dotGitOnly
remote.origin.url=//networkrepo/git/repo
remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*
branch.master.remote=origin
branch.master.merge=refs/heads/master
remote.backup.url=http://cloud-hosted-git-repo/repo.git
remote.backup.fetch=+refs/heads/*:refs/remotes/backup/*
gui.wmstate=zoomed
gui.geometry=584x210+321+316 304 192
credential.helper=store
user.email=myemail@domain.com
user.name=My Name

Само собой разумеется, любая помощь очень ценится.

Приветствия.

1 ответ

Решение

Наконец-то нашел решение. Спасибо David Ruhmann. Решения, о которых Дэвид упомянул в своем комментарии к этому вопросу, заключаются в том, чтобы перейти к диспетчеру службы Windows и изменить значение для столбца "Вход в систему" с "Локальная система" на учетную запись Windows, которую вы используете для запуска пакетного сценария. командная строка В моем случае, поскольку имя пользователя для входа в Windows называлось "BOB", изменение значения локальной системы на BOB и указание пароля входа для этого пользователя в диспетчере служб сделали свое дело.

Еще одна вещь, которую стоит запомнить; Чтобы изменения вступили в силу, вам придется перезапустить службу Jenkins.

Другие вопросы по тегам