Added
- Background worker through RQ (Redis Queue) for asynchronous running of jobs
- Status endpoint for a submitted job, which shows status of the (background) job, and process output
- Configuration through environment variables, including sanity checks on the values (e.g., existing paths and such); if webhaak is crashing on startup, check the last line of the stacktrace as that will likely tell what's wrong
Changed
- API backend changed from Flask to FastAPI; big refactor
- `get_app_key` endpoint is now located behind the secret key to prevent abuse
- All configuration is done through environment variables, see [Example configuration](https://github.com/aquatix/webhaak#example-configuration) and [the configuration examples](https://github.com/aquatix/webhaak/tree/master/example_config)
- Various linting, CI and code quality improvements
Removed
- settings.py file; configuration is handled through environment variables completely now; project/hook configuration is still in the yaml file
Fixed
- A crash could occur when a branch was merged, as `commits` property of payload is empty (BitBucket)
- Job results when commands were failing or when a job was still running
- Lots of other small crashes and edge-cases