我想从 GitHub 收听webhook,并在任何新提交时启动bash脚本(git pull
)。
我不想仅使用python
或nodejs
bash脚本。
可能吗?我相信netcat
可以做到。
我不需要解析请求。只监听特定端口,如果有人尝试连接到该端口,则运行脚本。
可选:也许netcat可以将请求正文传播到awk
或pgrep
并仅过滤到post
请求,甚至可以将REPO名称提取到环境变量。
答案 0 :(得分:1)
您可以使用netcat创建一个非常讨厌的for循环:
while IFS= read -r line; do
/the/script/you/want/to/run
done < <(netcat -l 8888 | grep '^POST ')
免责声明:未经测试
答案 1 :(得分:0)
Socat?
http://www.dest-unreach.org/socat/doc/socat-multicast.html
只是把它扔出去,我想做与Aminadav类似的事情,但不一定需要使用http webhook(我想我可能会被投票:)
如果您进行多播,则可以控制群集。谁需要webhooks?
该教程的第一页显示您可以接收数据包并分叉一个命令,例如“git pull”,然后可以在其中有一个合并后的挂钩,在每个群集节点上运行更复杂的任务,就像它一样拉。使用git进行分发,但不要轮询git服务器,而是使用多播socat触发。还没试过......