PHP脚本实现webhook源码

error_reporting(1);
set_time_limit(0);
// 部署目录
$target = '/www/www.baidu.com';
// 部署密钥
$token = '123456789';
// 部署分支
$branch = 'develop';

// token判断
$request_token = isset($_SERVER['HTTP_X_GITLAB_TOKEN']) ? $_SERVER['HTTP_X_GITLAB_TOKEN'] : '';
if ($token !== $request_token) {
die;
}

// 分支判断
$arr = file_get_contents('php://input', 'r');
$arr = json_decode($arr, true);
if (JSON_ERROR_NONE !== json_last_error()) {
die;
}
$ref = isset($arr['ref']) ? $arr['ref'] : die;
$ref = explode('/', $ref);
$ref = array_pop($ref);
if ($branch != $ref) {
die;
}

$cmd = "(cd $target && git pull && composer install -vvv) > /dev/null 2>&1 &";
echo shell_exec($cmd);

发表评论

电子邮件地址不会被公开。 必填项已用*标注