git WebHooks 简单的同步脚本


// 接收POST过来的信息
$json = file_get_contents('php://input');
$data = json_decode($json, true);

// 你的项目路径
$paths = [
  'master'  => '/wwwroot/master/',
  'develop' => '/wwwroot/develop/',
];
// 获取分支名
$ref = explode('/', $data['ref']);
$branch = end($ref);
$path = $paths[$branch]; // 当前分支路径
$access_token = '';
$client_token = $data['password'];

logs('Start',$json);
// 验证token 有错就写进日志并退出
if ($client_token !== $access_token) {
    logs('验证token',$access_token);
    exit('Invalid token [403]');
}
// 如果有需要 可以打开下面,把传送过来的信息写进log 可用于调试,测试成功后注释即可
exec('cd '.$path .'; git pull  2<&1; chown -R www:www '.$path .';', $output);
logs('END',$output);
// 调试时打开
 echo json_encode($output);


function logs($type,$info){
  $log = './system.log';
  file_put_contents($log, date("Y-m-d H:i:s"). '================ LOG 【'.$type.'】  ===============' . PHP_EOL.var_export($info,true).PHP_EOL, FILE_APPEND | LOCK_EX);
 }

!!!注意 exec 函数以及执行权限,脚本浏览器可访问

!!!注意 exec 函数以及执行权限,脚本浏览器可访问

!!!注意 exec 函数以及执行权限,脚本浏览器可访问

非特殊说明,本博所有文章均为博主原创。

备注:相关侵权、举报、投诉及建议等,请联系站长

添加新评论

昵称
邮箱
网站