如何从bash脚本中收听webhooks?

时间:2016-10-27 07:32:32

标签: git bash awk netcat

我想从 GitHub 收听webhook,并在任何新提交时启动bash脚本(git pull)。

我不想仅使用pythonnodejs bash脚本。 可能吗?我相信netcat可以做到。

我不需要解析请求。只监听特定端口,如果有人尝试连接到该端口,则运行脚本。

可选:也许netcat可以将请求正文传播到awkpgrep并仅过滤到post请求,甚至可以将REPO名称提取到环境变量。

2 个答案:

答案 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触发。还没试过......