У нас есть следующая настройка — удаленный репозиторий с gitlab gui.
Наш веб-сервер расположен на другом сервере, и у нас есть ssh-доступ к нему. У нас также есть локальные копии нашего сайта для разработчиков, сейчас мы просто запускаем git и запускаем репозиторий в gitlab.
Моя цель состоит в том, чтобы автоматизировать процесс и при каждом нажатии на репозиторий gitlab обновлять каталог сервера с последними изменениями.
Я видел, что для этого мы должны использовать webhooks или развернуть ключи. Я хочу избегать использования cron.
Я создал скрипт bash, который выполняет git pull после доступа к определенному файлу php.
Однако когда я поместил URL-адрес этого php-файла в раздел webhook в gitlab, ничего не произошло.
Если я получаю доступ к файлу вручную, набирая url в адресной строке, он работает нормально.
Когда я пытаюсь проверить ловушку, я получаю 500 ошибок и тайм-аут.
Любые рекомендации, как улучшить этот процесс или где я иду не так?
Webhook не просто отправляет запрос на получение по указанному URL, но также отправляет свои данные в виде JSON в необработанных данных.
Может ли ваш сценарий справиться с этим?
Посмотри на gitlab-webhook-push.php
Фактическая проблема заключалась в том, что gitlab не мог получить доступ к нашему домену и приводил к тайм-аутам, конечно, администраторы sys решили ограничить доступ из внешних источников без уведомления. Также стоит упомянуть, что необработанные данные JSON могут использоваться для более сложных решений, что довольно приятно.