2015-09-07 3 views
0

У меня есть простая флеш-приложение, которая ждет веб-узлов из моего хоста хранилища. Webhook запускает git.pull() последней версии из предопределенного репозитория, используя gitpython. gitpython код что-то вроде:SSID идентификационный ключ игнорируется при использовании gitpython под супервизором

import git 
repo_dir = '/path/to/repo' 
g = git.cmd.Git(repo_dir) 
g.pull() 

приложение запускается с супервизора сценария, как пользователь, admin, чей SSH id_rsa.pub открытый ключ зарегистрирован в хранилище в качестве ключа развертывания.

При входе в систему как зарегистрированный пользователь, admin, приложение может быть запущено из командной строки и может успешно выйти из частного репозитория. Когда приложение запускается с supervisor, однако, git.pull() операция завершается с ошибкой SSH Идент:

Permission denied (publickey). fatal: Could not read from remote repository.

Я могу подтвердить, пользователю запуск supervisor удалось приложение правильно (admin). Это означает, что сценарий супервизора не использует ключ SSH по умолчанию для одного и того же пользователя.

Я видел некоторую ссылку на установку одной из нескольких переменных окружения, GIT_SSH_COMMAND или устаревшего GIT_SSH. Я попытался установить эти значения как для замены строк ssh (т.е. GIT_SSH_COMMAND='ssh -i /path/to/key'), так и для исполняемых файлов (то есть GIT_SSH='/path/to/myssh'), но безрезультатно.

Кто-нибудь сталкивался с чем-то вроде этого? Это неожиданная проблема, что у меня проблемы с отладкой.

ответ

0

Вы пробовали:

import git 
repo_dir = '/path/to/repo' 
g = git.cmd.Git(repo_dir) 
g.USE_SHELL = True 
g.pull() 
+0

AttributeError: должен быть установлен 'Git' объект атрибута 'USE_SHELL' только для чтения – SunPowered

+0

атрибутом 'USE_SHELL' перед тем инстанцировании. Но все тот же вопрос выше, git pull терпит неудачу. – SunPowered

Смежные вопросы