IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    接收 GitHub Webhook 并自动执行脚本

    Teacher Du发表于 2024-11-01 03:51:26
    love 0

    本博客的模板是 Volantis,开发者们非常勤劳,经常更新些新玩意。每次收到更新通知时杜老师都会第一时间同步代码,不过还要登录服务器部署才可以生效。本文分享如何配置接收 GitHub Webhook 后自动执行脚本。

    工具下载

    下载地址:

    下载地址

    解压配置

    下载后可先本地解压再传到服务器上的/opt 目录,或在服务器运行 unzip linux-webhook.zip。如提示 command not found,请执行下面的命令:

    1
    2
    yum -y install unzip # CentOS
    apt -y install unzip # Ubuntu

    然后编写服务配置文件,将下面代码写入/lib/systemd/system/webhook.service,其中的 SECRET 可自定义:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    [Unit]
    Description=linux-webhook
    After=network.target

    [Service]
    Type=simple
    ExecStart=/opt/linux-webhook --bash /opt/github.sh --secret SECRET
    Restart=on-failure
    RestartSec=30s

    [Install]
    WantedBy=multi-user.target

    编写脚本

    将需执行的脚本写入/opt/github.sh,例如:

    1
    2
    3
    #!/bin/bash
    echo "Hello Webhook"
    exit 0

    脚本末尾一定要加入 exit 0。最后赋予文件执行权限:

    1
    2
    chmod +x /opt/linux-webhook
    chmod +x /opt/github.sh

    服务相关命令:

    1
    2
    3
    4
    systemctl daemon-reload # 重载配置
    systemctl start webhook # 启动服务
    systemctl status webhook # 状态查询
    systemctl enable webhook # 开机启动

    服务默认端口为 2020,更换请将 ExecStart 项改为:

    1
    ExecStart=/opt/linux-webhook --port PORT --bash /opt/github.sh --secret SECRET

    其它配置

    Settings->Webhooks:

    Add webhook:

    Payload URL 填写 http://IP:PORT/web-hook,Content type 选择 application/json,Secret 填写之前设置的,最后点击 Add webhook 就行了:

    Recent Deliveries 会显示回调状态,绿色对勾即为成功:



沪ICP备19023445号-2号
友情链接