要配置webhook首先要连接git仓库;
建议使用ssh连接,因为ssh连接是常驻连接,http连接每次都要输入账号密码
先在本地生成公钥秘钥
ssh-keygen -t ed25519 -C "Gitee SSH Key"
读取公钥
cat ~/.ssh/id_ed25519.pub
将公钥配置到gitee(我用的是gitee)
参考地址:https://help.gitee.com/base/account/SSH%E5%85%AC%E9%92%A5%E8%AE%BE%E7%BD%AE
然后添加路由
git add remote origin git@gitee.com:xxxxx/xxxx.git
宝塔下载webhook
配置地址
#!/bin/bash
#私有库载入私钥
sudo ssh-agent bash
sudo ssh-add ~/.ssh/id_rsa
sudo ssh-add -l |cat
echo ""
#输出当前时间
date --date='0 days ago' "+%Y-%m-%d %H:%M:%S"
echo "Start"
#判断宝塔webhook参数是否存在
if [ ! -n "$1" ];
then
echo "param参数错误"
echo "End"
exit
fi
#git项目路径,服务器上的路径
gitPath="/www/wwwroot/$1"
#git 网址两种方式都可以ssh 或者https
gitHttp="git@gitee.com:xxxxxx/$1.git"
echo "Web站点路径:$gitPath,git地址:$gitHttp"
#判断项目路径是否存在
if [ -d "$gitPath" ]; then
cd $gitPath
#判断是否存在git目录
if [ ! -d ".git" ]; then
echo "在该目录下克隆 git"
sudo git clone $gitHttp gittemp
sudo mv gittemp/.git .
sudo mv gittemp/* .
sudo rm -rf gittemp
fi
echo "拉取最新的项目文件"
#sudo git reset --hard origin/master
#sudo git pull
sudo -u root git pull origin master
echo "设置目录权限"
sudo chown -R www:www $gitPath
echo "End"
exit
else
echo "该项目路径不存在"
echo "新建项目目录"
mkdir $gitPath
cd $gitPath
#判断是否存在git目录
if [ ! -d ".git" ]; then
echo "在该目录下克隆 git"
sudo git clone $gitHttp gittemp
sudo mv gittemp/.git .
sudo mv gittemp/* .
sudo rm -rf gittemp
fi
echo "拉取最新的项目文件"
#sudo git reset --hard origin/master
sudo git pull
echo "设置目录权限"
sudo chown -R www:www $gitPath
echo "End"
exit
fi
测试
https://xxx.xxx.xxx.xxx:8888/hook?access_key=xxxxxxxxxxxxx¶m=xxxx
image.png
完工!