将 gitee 镜像库使用 webhook 同步到 服务器

木偶AI正在绞尽脑汁想思路ING···
木偶のAI摘要
DeepSeek-Chat

关联教程

一、服务器秘钥

1. 创建秘钥

在终端输入以下代码 (邮箱换为自己的),不要犹豫,一路 Enter 即可, 出现下图即表示成功

1
ssh-keygen -t rsa -C "pupper.cheng@gmail.com"

如果已经有了 私钥 公钥,可能不会有上图的效果.

2. 验证

在终端输入以下代码, 出现 id_rsaid_rsa.pub 两个文件即表示生成成功.

  • id_rsa: 私钥
  • id_rsa.pub: 公钥
1
cd ~/.ssh && ls

3. 查看公钥

在终端输入以下代码查看公钥

1
cat ~/.ssh/id_rsa.pub

公钥大概长这样 :angry:

二、给 gitee 镜像库添加公钥

三、服务器宝塔面板操作

在宝塔面板 —> 软件商店 —> 搜索 webhook 安装 —> 点击设置 —> 添加脚本

webhook 脚本

脚本中需要修改的内容:

  • Pupper0601.github.io 替换为自己的 gitee 仓库名称, 同时也是自己的 网站目录名称
  • gitPath 修改为自己的 git 项目路径
  • gitHttp 修改为自己的 gitee 仓库地址(注意: 不要使用 http 地址)
  • main 为分支名称, 注意 github 同步到 gitee 的仓库, 分支名称为 github 上的分支名称
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#!/bin/bash
echo ""
#输出当前时间
date --date='0 days ago' "+%Y-%m-%d %H:%M:%S"
echo "-------开始-------"
#判断宝塔WebHook参数是否存在
if [ ! -n "Pupper0601.github.io" ];
then
echo "param参数错误"
echo "End"
exit
fi
#git项目路径
gitPath="/www/wwwroot/HexoNote/Pupper0601.github.io"
#git 网址
gitHttp="git@gitee.com:pupper/Pupper0601.github.io.git"

echo "路径:$gitPath"

#判断项目路径是否存在
if [ -d "$gitPath" ]; then
cd $gitPath
#判断是否存在git目录
if [ ! -d ".git" ]; then
echo "在该目录下克隆 git"
git clone $gitHttp gittemp
mv gittemp/.git .
rm -rf gittemp
fi
#拉取最新的项目文件
#拉取最新的项目文件
git reset --hard origin/main
#git clean -f
git pull origin main
echo "拉取完成"
#执行npm
#执行编译
#npm run build
#设置目录权限
chown -R www:www $gitPath
echo "-------结束--------"
exit
else
echo "该项目路径不存在"
echo "End"
exit
fi

四、gitee 添加 webhook

在 镜像仓库中设置 webhook 钩子, url 中填写 https://4*.*.\*.135:8989/hook?access_key=ygxPcOW...2HIFZlT6Ld,
事件中选择 Push 即可

五、大功告成, 现在可以 push 代码测试了