Commit graph

68 commits

Author SHA1 Message Date
3dae942b7e Update build dependencies 2021-03-22 00:06:14 +01:00
a6ab0b4ef6 Remove unneeded lifetime annotations 2021-03-21 23:40:23 +01:00
82b308f8cf Make tls an optional feature 2021-03-21 23:37:30 +01:00
b05acf9c72 Housekeeping of example config and readme
Update readme to current state and rename the example config to
prevent confusion.
2021-03-21 23:35:08 +01:00
0610fd49c9 Replace command parameters with values
To create a minimalistic parser, nom is used to identify and replace
parameters given in the command field.

For clarity the `action` field for hooks was renamed to `command`.
2021-03-21 22:38:14 +01:00
12c3b12c31 Improve secret handling and add tests
Instead of a string `receive_hook` returns a `Response` now. Some
rudimentary tests were added.
2021-03-20 00:14:08 +01:00
e052af5114 Enable tls and update dependencies 2021-03-19 15:44:26 +01:00
54e48c66b3 Extend README.md a bit
Add some high-level description.
2021-03-19 14:37:53 +01:00
b370d59b40 Implement secret functionality
In order to validate requests a field called `secret` has to be sent
containing a secret key which validates the request. A hook will be
executed only if the secret sent with the request matches the hook's
secret.
2021-03-19 10:40:19 +01:00
ea19c7e413 Enable arguments in action fields of hooks 2021-03-17 13:42:48 +01:00
72a8a06c42 Add webhookey systemd service file 2021-03-17 11:45:03 +01:00
45cdd104b0 Add meta data to Cargo.toml 2021-03-17 11:01:30 +01:00
a0d7813687 Cargo update 2021-03-17 11:01:20 +01:00
606a3ad9c1 Add license 2021-03-12 17:23:35 +01:00
2539e75071 Add readme file to give at least some infos 2021-03-12 16:59:30 +01:00
82ccbf0a7e Implement proper logging
The `log` and `env_logger` crates are used for logging.
2021-03-03 17:01:41 +01:00
c8505b27c5 Parse config file and act upon
All dependencies were updated.

An example configuration file `config.yml` is added to show the
configuration options. Following locations are checked:
- `/etc/webhookey/config.yml`
- `<config_dir>/webhookey/config.yml`
- `./config.yml`

Whereas `<config_dir>` is depending on the platform:
- Linux:   `$XDG_CONFIG_HOME` or `$HOME/.config`
- macOS:   `$HOME/Library/Application Support`
- Windows: `{FOLDERID_RoamingAppData}`

Each hook's action is executed if all of the specified filters match.
2021-03-03 15:36:31 +01:00
d8ca63ab37 Parse JSON from post request
Accept a post request and try to parse it expecting the data is
formated in JSON.
2021-02-02 11:17:27 +01:00