Я создаю приложение node.js, которое служит веб-перехватчиком для Github, которое автоматически развертывает определенное частное репо при внесении изменений. Чтобы сделать приложение веб-перехватчика максимально эффективным, я хочу клонировать и вытащить частное репо во временный каталог в экземпляре Heroku моего веб-перехватчика при его развертывании, чтобы при срабатывании веб-перехватчика мне нужно было только «git pull», чтобы получить последнюю версию. обновления и развернуть их. Достаточно легко запустить сценарий оболочки при развертывании приложения webhook (с использованием package.json или Procfile), но перед запуском команд git мне нужно установить закрытый ключ развертывания. В настоящее время закрытый и открытый ключи находятся в моем репозитории веб-перехватчиков (я знаю, я знаю, что как только он заработает, я сделаю это лучше), поэтому я попытался установить его, добавив его в свой сценарий оболочки (что было предложено здесь)
mkdir /app/.ssh
cp config/ssh/* /app/.ssh/
mkdir /tmp/repos
git clone --bare ssh://github.com/<username>/<repo>.git /tmp/repos/<repo>
но я получаю:
Инициализированный пустой репозиторий Git в / tmp / repos / assets / Ошибка проверки ключа хоста. фатальный: удаленный конец неожиданно повесил трубку
Открытый ключ был добавлен как ключ развертывания в репо, которое я запрашиваю, поэтому мои вопросы:
- Я устанавливаю закрытый ключ в правильный каталог?
- Должен ли файл закрытого ключа иметь определенное имя?
- Такой подход вообще возможен / рекомендуется?
- Если не лучшая альтернатива?
Спасибо!