Vadiok
12/9/2016 - 7:39 AM

Git-хук для push-события в GitLab

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);