3d8fcf3acb | ||
---|---|---|
.github | ||
lib | ||
.dockerignore | ||
.env.example | ||
.gitignore | ||
.pre-commit-config.yaml | ||
Dockerfile | ||
LICENSE | ||
README.md | ||
deno.json | ||
deno.lock | ||
deps.ts | ||
docker-compose.yml | ||
main.ts |
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
- 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
. - Create a Discord webhook (
https://discord.com/api/webhooks/1234/ABCDWXYZ
). - Take the ID (
1234
) and token (ABCDWXYZ
) from the URL, and enterhttps://<filter_url>/1234/ABCDWXYZ
(note: no/github
) in the GitHub webhook settings:
- Optionally add configuration parameters (see below) to the URL, e.g.
?allowBranches=master,dev&hideTags=1
. - ????
- Profit!
Configuration
Additional options can be configured per URL:
- Only forward events from specific branches (
allowBranches
, simplified wildcard syntax)abc*xyz
is equivalent to/^(abc.*xyz)$/
stuff,things
is equivalent to/^(stuff|things)$/
!oh*hi*there
is equivalent to/^(oh.*hi.*there)$/
inverted
- Ignore tag updates (
hideTags
) - Ignore burst PR review comments in a short timespan, only showing the first x comments (
commentBurstLimit
)