Interestingly similar and interestingly different to a project I wrote a while back called Hookah. Mine is specifically targeted at GitHub though.<p>I actually might not have written mine if this had been around. I intend to play with this as we want to start handling webhooks from other services and I'm not really interested in growing the scope of Hookah.<p><a href="https://github.com/donatj/hookah" rel="nofollow">https://github.com/donatj/hookah</a>
Configuration for this, especially the hook rules definitions, would be better in some DSL rather than JSON. Trying to structure logic as JSON is very hard to read.<p>Edit: if you aren't married to configuration in a file, you could even do hosted JS or Lua functions kinda like a serverless environment
Seems cool! Given the example talks about "redeploy," I assume this was built with longer running tasks in mind? Is there a way to see what hooks are processing and get output from them (or send that output somewhere)?
I think your JSON keys are verbose.<p>Command to run should be just called command. And trigger rule can be just trigger no?<p>Maybe personal preference.
Sigh, it's HTTP by default. I get that HTTPS is more setup and it's nice to have something that works out of the box with minimal configuration, but the idea of command execution over an insecure channel makes my eye twitch.
Might be a good time to plug my writeup of parsing webhooks in Go <a href="https://groob.io/tutorial/go-github-webhook/" rel="nofollow">https://groob.io/tutorial/go-github-webhook/</a>
One thing this has going for it that others here likely don't: it's in debian repos. The docs say `sid` but it's made it into `stretch` too.