2016-10-27 87 views
2

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

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

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

可选:也许netcat的可管请求体,以awkpgrep和过滤器只post请求,或甚至提取REPO名称到环境变量。

while IFS= read -r line; do 
    /the/script/you/want/to/run 
done < <(netcat -l 8888 | grep '^POST ') 

免责声明:未经测试

回答

0

你可以用netcat的循环是很讨厌的创造?

http://www.dest-unreach.org/socat/doc/socat-multicast.html

只是把它扔在那里,我想要做类似的事情作为Aminadav,但不一定需要使用HTTP网络挂接(我想我可以得到否决了:)

如果你去组播你可以控制一个集群。谁需要webhooks?

该教程的第一页显示您可以接收数据包并分配一个命令,例如“git pull”,然后它可以有一个合并后挂钩,在每个群集节点上运行更复杂的任务,因为它做了拉。使用git来分发,但不要轮询git服务器,而是用组播社区触发一次拉。尚未尝试此...

0

Socat