Go to file
shiftinv e73128ddf3 fix: scrub set-cookie, alt-svc headers
deno deploy doesn't like alt-svc or set-cookie with the wrong domain (in this case, discord.com), and emits a warning every time
2022-09-10 03:03:26 +02:00
.github docs: update readme once more 2022-09-04 16:13:06 +02:00
lib fix: add lock around redis commands 2022-09-08 00:04:37 +02:00
.dockerignore feat: add docker stuff 2022-09-03 02:19:54 +02:00
.env.example feat: use redis to fix state sync issues 2022-09-06 21:21:40 +02:00
.gitignore Initial commit 2022-09-03 02:19:53 +02:00
.pre-commit-config.yaml fix: update pre-commit hook file types 2022-09-03 02:19:54 +02:00
Dockerfile feat: add docker stuff 2022-09-03 02:19:54 +02:00
LICENSE docs: add readme and license 2022-09-03 02:19:54 +02:00
README.md docs: update readme 2022-09-10 02:53:21 +02:00
deno.json Initial commit 2022-09-03 02:19:53 +02:00
deps.ts fix: add lock around redis commands 2022-09-08 00:04:37 +02:00
docker-compose.yml feat: add docker stuff 2022-09-03 02:19:54 +02:00
main.ts fix: scrub set-cookie, alt-svc headers 2022-09-10 03:03:26 +02:00

README.md

github-webhook-filter

A webhook filter for Deno 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.

Certain no-op events (which Discord would ignore anyway) and common CI bots are ignored by default; see configuration below for more.

Usage

  1. 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.
  2. Create a Discord webhook (https://discord.com/api/webhooks/1234/ABCDWXYZ).
  3. 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:
    settings
  4. Optionally add configuration parameters (see below) to the URL, e.g. ?allowBranches=master,dev&hideTags=1.
  5. ????
  6. 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)