{"id":15901640,"url":"https://github.com/shiftinv/github-webhook-filter","last_synced_at":"2025-08-20T19:15:02.815Z","repository":{"id":58536300,"uuid":"532108431","full_name":"shiftinv/github-webhook-filter","owner":"shiftinv","description":"A webhook filter for Deno that filters GitHub events before forwarding them to a Discord webhook","archived":false,"fork":false,"pushed_at":"2024-12-28T16:31:21.000Z","size":125,"stargazers_count":8,"open_issues_count":0,"forks_count":4,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-03T14:06:53.374Z","etag":null,"topics":["deno","discord","webhook"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/shiftinv.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-09-02T23:45:17.000Z","updated_at":"2024-12-28T16:31:24.000Z","dependencies_parsed_at":"2024-02-01T18:29:04.209Z","dependency_job_id":"eb26d6ba-f8eb-4590-a83a-fd570738ba91","html_url":"https://github.com/shiftinv/github-webhook-filter","commit_stats":{"total_commits":72,"total_committers":1,"mean_commits":72.0,"dds":0.0,"last_synced_commit":"f833a1313d02cf78888b5fd65524503d86e66fd7"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/shiftinv/github-webhook-filter","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shiftinv%2Fgithub-webhook-filter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shiftinv%2Fgithub-webhook-filter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shiftinv%2Fgithub-webhook-filter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shiftinv%2Fgithub-webhook-filter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/shiftinv","download_url":"https://codeload.github.com/shiftinv/github-webhook-filter/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shiftinv%2Fgithub-webhook-filter/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":271370197,"owners_count":24747802,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-20T02:00:09.606Z","response_time":69,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["deno","discord","webhook"],"created_at":"2024-10-06T11:05:17.238Z","updated_at":"2025-08-20T19:15:02.776Z","avatar_url":"https://github.com/shiftinv.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# github-webhook-filter\n\nA webhook filter for [Deno](https://deno.land/) that filters GitHub events before forwarding them to\na Discord webhook, reducing noise.\\\nAdditionally, it attempts to handle Discord ratelimits and resend the webhook events if needed,\ninstead of just dropping the requests like GitHub does.\n\nCertain no-op events (which Discord would ignore anyway) and common CI bots are ignored by default;\nsee [configuration](#configuration) below for more.\n\n## Usage\n\n0. Host the project somewhere, for example https://deno.com/deploy. Remember to add the environment\n   variables you may want to set, see [`src/config.ts`](./src/config.ts).\n1. Create a Discord webhook (`https://discord.com/api/webhooks/1234/ABCDWXYZ`).\n2. Take the ID (`1234`) and token (`ABCDWXYZ`) from the URL, and enter\n   `https://\u003cfilter_url\u003e/1234/ABCDWXYZ` (note: no `/github`) in the GitHub webhook settings:\\\n   ![settings](./.github/assets/github-settings.png)\n3. Optionally add configuration parameters (see below) to the URL, e.g.\n   `?allowBranches=master,dev\u0026hideTags=1`.\n4. ????\n5. Profit!\n\n## Configuration\n\nAdditional options can be configured per URL:\n\n- Only forward events from specific branches (`allowBranches`, simplified wildcard syntax)\n  - `abc*xyz` is equivalent to `/^(abc.*xyz)$/`\n  - `stuff,things` is equivalent to `/^(stuff|things)$/`\n  - `!oh*hi*there` is equivalent to `/^(oh.*hi.*there)$/` inverted\n- Ignore tag updates (`hideTags`)\n- Ignore burst PR review comments in a short timespan, only showing the first x comments per review\n  (`commentBurstLimit`)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshiftinv%2Fgithub-webhook-filter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fshiftinv%2Fgithub-webhook-filter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshiftinv%2Fgithub-webhook-filter/lists"}