pietroalbini / fisher Goto Github PK
View Code? Open in Web Editor NEWSimple yet powerful webhooks catcher
Home Page: https://fisher.pietroalbini.org
License: GNU General Public License v3.0
Simple yet powerful webhooks catcher
Home Page: https://fisher.pietroalbini.org
License: GNU General Public License v3.0
Socket activation allows to start the process only when an HTTP request is received. Since Fisher is fast enough to start, it might be a nice feature to be able to start it only when needed.
fisher uses 42% cpu in my Macbook Pro unexpectedly. My configuration is 2Cores/12GB
USER PID %CPU %MEM VSZ RSS TT STAT STARTED TIME COMMAND
piaoger 31287 42.1 0.0 2502836 100 ?? R 22Dec17 1387:59.96 fisher /u/hooks --bind 127.0.0.1:9029 --recursive
It's also reproducible in my another Linux machine which configuration is 4cores/8GB.
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
15959 uzj 20 0 52372 32208 1468 S 8.6 0.8 10:49.30 fisher
Currently Fisher isn't too much optimized: it allocates too much RAM, and pulls in dependencies it doesn't fully need. It would be nice to have it optimized for the release.
tiny-http
Fisher uses a temporary directory for each job, but this prevents caching of build artifacts to happen, which can slow down builds a lot. A caching mechanism built into Fisher should be added.
Please allow to disable ANSI sequences in the output, e.g. when redirecting the output to a log file.
Currently, if Fisher is behind a proxy, it will receive the proxy's IP as the source IP address, which is really bad for verifying the autenticity of an hook from its source address. This should be improved.
BitBucket is a popular alternative to GitHub, and it also supports webhooks. Support for it should be added.
Hooks containing a dot in the name of the file don't work despite the fact that they get displayed in collected hooks when starting fisher (tested on 1.0.0-beta.2)
test.something.sh
curl http://127.0.0.1:8000/hook/test.something
{"status":"not_found"}
Currently, Fisher doesn't resolve symlinks in the hook paths, which works fine most of the times, but doesn't work well with live reloading of the hooks.
If each "deploy" of the hook scripts lives in a different directory, and the current one is symlinked to a "current" directory, after reloading even old jobs already in the queue will use the new script. If this is implemented, old jobs would be pointing to the old scripts, and the new ones to the new scripts.
Fisher currently uses the signal
crate for signal handling, but it doesn't like macOS so much. While supporting macOS is not one of my goals (mainly because I'm unable to test on it), switching to nix
(which supports macOS) for signal handling is quite easy (and it removes a dependency), so why not.
GitLab is a popular alternative to GitHub, and it supports Webhooks. It would be nice to have a specific provider for it.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.