У меня каверзная проблема в моем проекте. У меня приложение работает на VDS. Я установил это приложение с помощью git и composer. Этот проект имеет git-репозиторий, как и локальный.
Я пытаюсь сделать бот для автообновления. Этот бот получит последний коммит / тэг от gitlab и получит его.
Я могу использовать nodejs или php cron.
Но git pull
Команда запрашивает мое имя пользователя и пароль.
Я не могу установить расширение php_expect. Пробовал это yuloh/expect
библиотека, но она не перехватила ввод имени пользователя.
Вот мой вопрос:
Как и какой метод я должен реализовать для запуска этого git pull
команда и передать имя пользователя и пароль?
Для получения новых обновлений …
git pull https://username:password@gitprovider/vendor/repository "version_code":"version_code"
Для объединения обновлений с приложением конечного пользователя.
git merge "version_code":master
это два вместе полностью обновляет приложение с новой версией.
Что касается защиты паролем, мы собираемся использовать ioncube для файла cron.
если я полностью понял ваш вопрос, вы можете попробовать это:
Вы можете поместить пароль в файл .netrc (_netrc в Windows). Оттуда это будет взято автоматически. Он пошел бы в вашу домашнюю папку с 600 разрешениями.
Вы также можете просто клонировать репо с https://user:pass@domain/repo
но это не очень рекомендуется, так как это покажет ваш пользователь / пароль во многих местах …
новая опция заключается в использовании помощник по учету. Обратите внимание, что учетные данные будут храниться в виде открытого текста в вашей локальной конфигурации с использованием стандартного помощника учетных данных. Учетные данные помощника с Wincred также могут быть использованы на окнах.
Примеры использования для помощника учетных данных
git config credential.helper store - stores the credentials indefinitely.
git config credential.helper 'cache --timeout=3600'- stores for 60 minutes
Для доступа по ssh вы должны использовать ssh-агент, который при необходимости предоставит ключ ssh. Это потребует генерации ключей на вашем компьютере, хранения открытого ключа на удаленном сервере и добавления закрытого ключа в соответствующее хранилище ключей.