This Express app listens for webhook events from a git hosting service. It was originally written for GitHub but also works with Gitea and Forgejo, and anything else that uses the `X-Hub-Signature-256` header to send an HMAC SHA-256 digest of the payload. Alternatively you could change the code to look for a different header.
How this works is outlined in a blog post - [Automation workflows with GitHub Actions and Webhooks](https://www.hughrundle.net/automation-workflows-with-github-actions-and-webhooks/), though I have slightly updated the code since then.