配置Github Webhooks自动更新代码

webhooks代码

<?php
    $git_dir = '/var/www/.git';
    $work_tree = '/var/www';
    $hook_log = file_get_contents('php://input');

    // 判断是否为WebHook请求
    if (!empty($hook_log)) {
        $json = json_decode($hook_log, true);
        if (array_key_exists('ref', $json)) {
            // 检测到ref键, 执行pull
            $cmd = "/usr/bin/sudo git --git-dir=$git_dir --work-tree=$work_tree pull  2>&1";
            $sh_log = shell_exec($cmd);
        } else {
            // 未检测到ref键, 为测试请求
            $sh_log = 'testing';
        }
    } else {
        // 正常访问
        echo '<h1>normal view~</h1>';
    }
?>