Git-хук для push-события в GitLab
<?php
// Token для выполнения команды (можно установить в false, чтобы не проверять)
$token = 'my-token';
// В каком заголовке проверять токен (Gitlab: HTTP_X_GITLAB_TOKEN)
$checkedHeader = 'HTTP_X_GITLAB_TOKEN';
// Команда для выполнения, если проверка пройдена
// В данном случае выйти уровнем выше, скачать обновления и запустить миграции
// Если изменения на сервер могут вноситься вне гита, 'git pull' стоит расширить до 'git stash && git pull && git stash pop'
$command = 'cd .. && git pull && php artisan migrate';
if ($token && (!isset($_SERVER[$checkedHeader]) || ($_SERVER[$checkedHeader] !== $token))) {
header("HTTP/1.0 404 Not Found");
die();
}
echo exec($command);