<?php
/**
* @Description: Git Hook 部署
*
* @Author lor
* @Date 2020年03月24日 17:50:51 星期二
*/
namespace app\admin\controller;
use think\Exception;
use think\facade\Log;
class Deploy
{
public function hook_git()
{
try {
$json = file_get_contents("php://input");
Log::info($json);
$data = json_decode($json, true);
if (!isset($data['ref']) || $data['total_commits_count'] < 1) {
throw new Exception("没有获取到推送消息", 0);
}
$cwd = rtrim($_SERVER['DOCUMENT_ROOT'], '/public');
$cmd = "git pull origin 2<&1";
$order = "cd {$cwd} && $cmd";
if (exec($order, $err_info)) {
$msg = <<<ERR
{$data['user_name']} 向 {$data['repository']['name']} 项目的 {$data['ref']} 分支push了 {$data['total_commits_count']} 个commit: {$data['commits'][0]['message']}.
ERR;
Log::info($msg);
Log::info($err_info);
} else {
throw new Exception("exec 被禁用", 0);
}
} catch (Exception $e) {
Log::error($e->getMessage());
}
}
}
码云(gitee) PHP hooks配置
最新推荐文章于 2021-10-21 09:33:53 发布