首页 » 未分类 » gitlab webhook php

gitlab webhook php

 

<?php
ini_set('date.timezone','Asia/Shanghai');

$data = file_get_contents("php://input");
if(empty($data)){
return ;
}
$gitJsonData=json_decode($data,true);

if(empty($gitJsonData['project']['name'])){
file_put_contents("./error.log",
"\r\n========================".date('Y-m-d H:i:s')."========================\r\n".
"1.gitJsonData['project']['name'] is NULL!\r\n".
"================================end================================\r\n",
FILE_APPEND);
return false;
}

$dir=$gitJsonData['project']['name'];//api.uarein.ccc
$version = explode("/", $gitJsonData['ref']);

//e.g /home/www/uarein/api.uarein.ccc/master
$projectdir = "/home/www/uarein/{$dir}/{$version[2]}";

if(is_dir($projectdir) == false){//添加
try{
//$s = mkdir($projectdir,0777,true);
$cmd = "git clone http://user:password@git.uarein.ccc:10080/root/{$dir}.git -b {$version[2]} {$projectdir}";
$s = shell_exec($cmd);
file_put_contents("./create.log",
"\r\n========================".date('Y-m-d H:i:s')."========================\r\n".
"cmd={$cmd}\r\n".
"================================end================================\r\n",
FILE_APPEND);
}catch (Exception $e){
file_put_contents("./error.log",
"\r\n========================".date('Y-m-d H:i:s')."========================\r\n".
print_r($e,true)."\r\n".
"================================end================================\r\n",
FILE_APPEND);
}
return ;
}else{//更新
$cmd = "cd {$projectdir} && git pull http://user:password@git.uarein.ccc:10080/root/{$dir}.git";
$s = shell_exec($cmd);
file_put_contents("./update.log",
"\r\n========================".date('Y-m-d H:i:s')."========================\r\n".
$s."$projectdir\r\n".
"================================end================================\r\n",
FILE_APPEND);
}

?>

原文链接:gitlab webhook php,转载请注明来源!

0