github-webhook-filter/README.md

28 lines
1.3 KiB
Markdown
Raw Normal View History

2022-09-02 23:45:01 +00:00
# github-webhook-filter
2022-09-04 14:03:55 +00:00
A webhook filter for [Deno](https://deno.land/) that filters GitHub events before
forwarding them to a Discord webhook, reducing noise.
Additionally, it attempts to handle Discord ratelimits and resend the webhook events if needed, instead of just dropping the requests like GitHub does.
2022-09-02 23:45:01 +00:00
Certain no-op events (which Discord would ignore anyway) and common CI bots are ignored by default; see [configuration](#configuration) below for more.
2022-09-04 14:03:55 +00:00
## Usage
2022-09-10 00:53:21 +00:00
0. Host the project somewhere, for example https://deno.com/deploy. Remember to add the environment variables you may want to set, see [`lib/config.ts`](./lib/config.ts).
2022-09-04 14:03:55 +00:00
1. Create a Discord webhook (`https://discord.com/api/webhooks/1234/ABCDWXYZ`).
2022-09-10 00:53:21 +00:00
1. Take the ID (`1234`) and token (`ABCDWXYZ`) from the URL, and enter `https://<filter_url>/1234/ABCDWXYZ` (note: no `/github`) in the GitHub webhook settings:
2022-09-04 14:03:55 +00:00
![settings](./.github/assets/github-settings.png)
2022-09-10 00:53:21 +00:00
1. Optionally add configuration parameters (see below) to the URL, e.g. `?allowBranches=master,dev&hideTags=1`.
1. ????
1. Profit!
## Configuration
Additional options can be configured per URL:
- Only forward events from specific branches (`allowBranches`, comma-separated list)
- Ignore tag updates (`hideTags`)
- Ignore burst PR review comments in a short timespan, only showing the first x comments (`commentBurstLimit`)