<?php
error_reporting(1);
// 项目仓库文件夹路径
$dir = '/var/www/html/SmallPunchMiniProgramAfterEnd';
// Coding新版本的webhook若是设置了token,Coding则对每个请求进行了哈希签名
// 这个签名会放在请求头 X-Coding-Signature,在服务器端我们需要进行签名解析才能拿到真正数据
// token验证令牌,与Coding webhook上设置的一致,用于与Coding进行身份验证,防止恶意提交代码
$token = 'xxx';
// 从请求头中获取签名
$signature = $_SERVER['HTTP_X_CODING_SIGNATURE'];
// 接收Coding post传递的参数
$json_post = file_get_contents('php://input');
// 进行签名解析
$sha1 = hash_hmac("sha1",$json_post,$token);
$calculate_signature = 'sha1='. $sha1;
// 进行身份验证
if ($calculate_signature !== $signature) {
exit('error request');
}
// shell_exec()即PHP用于执行系统命令的函数
// cd $dir:进入上面设置的项目仓库文件夹中
// git checkout -f 撤销本地的修改
// git pull origin master 从Coding的项目仓库master分支拉取最新代码,注意origin为远程仓库的别名,要与 git remote add 远程仓库
别名 仓库地址 中的远程仓库别名保持一致
echo shell_exec("cd $dir && git checkout -f && git pull origin master 2>&1");
Coding 新版本webhook PHP签名解析
最新推荐文章于 2024-09-07 10:03:10 发布