GitHub → Discord

GitHub pull requests, in your Discord server.

Relay GitHub pull requests and checks to Discord. Keep one public thread per request, add mapped mentions, and close the loop on CI recovery.

Free for up to 3 mapped people · Unlimited repos · No credit card

northwind/api #482 rt_03 branch = main #deploys
  1. Reviewer requested 14:02:11 thread opened

    #482 Cache invalidation for edge reads

  2. Checks failed 14:09:44

    build (node 20) · 2m 31s

  3. Checks recovered 14:24:02

    all 6 checks passed · 2m 07s

  4. Stale review reminder 09:30:00

    open 19h with one reviewer requested

  5. Merged 10:47:19

    #482 merged into main

What gets relayed

GitHub events, chosen per route.

Pick a preset or select events individually. Everything below can travel to #deploys through one route.

  • pull_request.opened
  • pull_request.review_requested
  • pull_request.approved
  • pull_request.changes_requested
  • pull_request.merged
  • pull_request.closed
  • check_run.completed
  • check_suite.completed
  • workflow_run.completed
  • issue_comment.created (top-level)
  • push.commits (commit digests)

In the channel

One conversation in Discord.

Discord public threads suit servers where contributors watch a channel rather than a mailbox.

Route
rt_03
Source
northwind/api
Destination
Platform Guild #deploys
Platform Guild · #deploys
thread · 6 messages
  • FR

    ForgeRelay BOT 14:02

    #482 Review requested — cache invalidation

    Status: Awaiting review

    northwind/api · feat/edge-cache main

    Opened 2 hours ago · Last activity 4 minutes ago

    Opened by
    dana.k
    Reviewers
    alex.r
    CI
    2 pending, 4 total
    Size
    +128 · −41 · 3 files

    ForgeRelay

  • FR

    ForgeRelay BOT 14:09

    Open pipeline #58217

    2 of 9 jobs failed.

    Passed

    build, typecheck, security, e2e, deploy-preview, docs, coverage

    Failed

    integration-tests, lint

    Duration
    2m
    SHA
    83c1a8e

    ForgeRelay

  • DK

    Dana Køhler 14:16

    Missing lockfile bump. Pushing now.

  • FR

    ForgeRelay BOT 14:24

    Open pipeline #58217

    Checks are green again.

    Passed

    integration-tests, lint, build, typecheck, security, e2e, deploy-preview, docs +1 more

    Duration
    2m
    SHA
    83c1a8e

    ForgeRelay

  • FR

    ForgeRelay BOT Next day, 09:30

    Still waiting on review · @dana.k

  • FR

    ForgeRelay BOT 11:04

    #482 Merged — cache invalidation

    Status: Merged

    northwind/api · feat/edge-cache main

    Opened 2 hours ago · Last activity 4 minutes ago

    Opened by
    dana.k
    Reviewers
    None
    CI
    4 passing
    Size
    +128 · −41 · 3 files

    ForgeRelay

Setup

Connect GitHub and Discord.

Four steps in the control panel. Nothing to deploy, no YAML to maintain.

  1. 01

    Install the GitHub app

    Install with the listed read permissions — including Contents: read when you want commit digests. ForgeRelay never pushes code.

  2. 02

    Add the ForgeRelay bot to the server

    Invite the bot, then give it access to the channels that should receive routes.

  3. 03

    Create the route

    northwind/api → Platform Guild #deploys, starting from the Pipeline monitoring preset. Add a separate Commits route later if you want filtered digests on main.

  4. 04

    Map contributors to Discord members

    Identity mapping links GitHub accounts to server members so mentions reach the right person.

Message customisation

Route behaviour and a shared status palette.

Set message behaviour per route, then choose one organisation-wide PR/MR status palette for Slack and Discord.

  • Custom PR/MR status colours — one organisation palette across Slack and Discord
  • One thread per request — keep every update in one place
  • Mention mapped reviewers — resolve forge accounts to chat users
  • Include diff summary — files changed and line counts
  • Include link to the forge — one click back to the request
  • Compact messages — a single line for low-signal channels
  • Relay top-level comments — discussion without review noise
  • Stale review reminder — one quiet nudge, then silence

Check status

Check failures and recovery in one thread.

Discord threads keep a noisy build out of the channel. Choose failures only, failures and recovery, or all changes, and include failed checks, duration, and SHA with a link back to GitHub.

Open pipeline #58217

2 of 9 jobs failed.

Passed

build, typecheck, security, e2e, deploy-preview, docs, coverage

Failed

integration-tests, lint

Duration
2m
SHA
83c1a8e

ForgeRelay

Open pipeline #58217

Checks are green again.

Passed

integration-tests, lint, build, typecheck, security, e2e, deploy-preview, docs +1 more

Duration
2m
SHA
83c1a8e

ForgeRelay

Permissions

What ForgeRelay asks for, and why.

Least-privilege by design. ForgeRelay never needs to push code or manage members.

  • Pull requests: read

    Read request titles, reviewers, state changes and diff totals.

  • Checks: read

    Subscribe to check_run and check_suite so Live CI cards list each job, failure, duration and recovery.

  • Actions: read

    Subscribe to workflow_run so PR and Live CI cards refresh when a GitHub Actions workflow finishes (per-job detail still comes from check_run).

  • Contents: read

    Required to subscribe to Push events and resolve compare or commit links for digests — not to browse or mirror the repository.

  • Metadata: read

    Resolve repository names and default branches.

  • Members: read

    Suggest identity mappings between forge and chat accounts.

  • Webhook: Check suite / Check run

    Receive per-job CI updates for Live CI cards and failure/recovery pings.

  • Webhook: Workflow run

    Refresh CI status when an Actions workflow completes, even before every check_run has landed.

  • Webhook: Push

    Receive push payloads; ForgeRelay ignores them unless a Commits route matches.

  • Webhook secret

    Verify every incoming payload signature before processing.

  • Send Messages

    Post the relayed message into the selected channel.

  • Create Public Threads

    Open one thread per pull or merge request.

  • Send Messages in Threads

    Keep pipeline and review updates in the same thread.

  • Read Message History

    Attach updates to the correct existing thread.

no code write access Full security overview

FAQ

GitHub and Discord, specifically.

No. It needs Send Messages, Create Public Threads, Send Messages in Threads and Read Message History in the channels it posts to.

Yes. Use conditions to relay only review requests and check failures, and leave comment relaying off.

Unmapped contributors appear as plain GitHub handles. Mapping is optional and can be added later.

Turn Compact messages on for this route to relay a single line per event.

Required by GitHub to subscribe to Push events and resolve compare or commit links for digests — not to browse or mirror the repository. Existing installs may need to re-accept the app.

Put the review where the team already is.

Start with northwind/api → #deploys, then add routes as the team grows.