Bootstrap

php 用webhook实现git同步服务器代码 2022.8.18

网上很多的教程根本走不通,到后面会有一堆报错,所以自己整理了一下

预备工作:本地和服务器已git clone项目

1.先编写php文件

文件hook.php,放到和项目入口文同目录下(这里只是一种网上copy的,可以用其他的)

<?php

// 允许请求IP gitee请求的时候会打印
// $allowIpArr = [
//     //码云IP,不知道怎么来的,只能通过hook.php报错获得(未使用)
//     '106.13.250.83',
//     '106.13.250.89',
//     '106.13.250.90',
//     '106.13.250.88',
// ];

// 请求密码 你的密码
$password = 'shen9703142530';

// 检测IP(未使用)
// if (!in_array($_SERVER['REMOTE_ADDR'], $allowIpArr)) {
//     echo '非法IP:' . $_SERVER['REMOTE_ADDR'];
//     exit(0);
// }

// 获取请求参数
$headers = getallheaders();
$body = json_decode(file_get_contents("php://input"), true);

// 验证提交分支是否为master
if (!isset($body['ref']) || $body['ref'] !== 'refs/heads/master') {
    echo '非主分支' . $body;
    exit(0);
}

// 验证提交密码是否正确
if (!iss
;