Go to file
shiftinv 6027c8271d feat: use redis to fix state sync issues 2022-09-06 21:21:40 +02:00
.github docs: update readme once more 2022-09-04 16:13:06 +02:00
lib feat: use redis to fix state sync issues 2022-09-06 21:21:40 +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(readme): move configuration to separate section 2022-09-04 17:20:26 +02:00
deno.json Initial commit 2022-09-03 02:19:53 +02:00
deps.ts feat: use redis to fix state sync issues 2022-09-06 21:21:40 +02:00
docker-compose.yml feat: add docker stuff 2022-09-03 02:19:54 +02:00
main.ts feat: set metadata headers on all responses 2022-09-06 04:16:06 +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

Note The main service (https://github-webhook-filter.deno.dev/) is not open to the public (yet?), and currently requires an api key to prevent abuse. Feel free to message me on Discord if you want to use it. Alternatively, you can always host the project yourself, and customize it to your liking c:

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