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

关联教程

一、服务器秘钥

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 代码测试了