接收 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 会显示回调状态,绿色对勾即为成功:

本文链接:https://my.lmcjl.com/post/17207.html

展开阅读全文

4 评论

留下您的评论.