Goordinator is an event-processor for GitHub events. It provides 2 functionalities.
Goordinator listens for GitHub webhook events, runs their JSON payloads through a JQ filter query and triggers actions if the filter matches. The supported actions are:
- posting a http-request,
- updating a GitHub branch with its base branch,
- removing a GitHub pull request label.
All actions are executed in parallel and retried if they fail until a retry timeout expires (default: 2h).
-
Download a release archive from: https://github.com/simplesurance/goordinator/releases.
-
Extract the archive to a temporary directory.
-
Install
goordinator
to/usr/local/bin
:install -o root -g root -m 775 goordinator /usr/local/bin/goordinator
-
Create a goordinator group and user:
useradd -r goordinator
-
Copy the configuration files to
/etc
:cp -r dist/etc/* /etc/ chmod 660 /etc/goordinator/config.toml chown root:goordinator /etc/goordinator/config.toml
-
Adapt the configuration and define your rules in
/etc/goordinator/config.toml
. -
Enable the systemd service and start it:
systemctl daemon-reload systemctl enable goordinator systemctl start goordinator
Goordinator is configured via a config.toml
file.
The path to the configuration file can be defined via --cfg-file
commandline
parameter.
A documented example configuration file can be found in the repository:
dist/etc/goordinator/config.toml.
The configuration options of actions can contain template strings. The template strings are replaced with concrete values from the event that is processed.
The supported template strings are documented in the example config.toml file.
Trigger a redelivery of the lost events in the GitHub settings page of the repository.