GitHub & GitLab → Slack & Discord

Pull requests shouldn’t wait for someone to notice.

ForgeRelay turns GitHub and GitLab activity into focused Slack and Discord conversations — routed to the right channel, with the right reviewer, pipeline status, and quiet reminders. Reviews stay in threads. Direct-to-main stays visible.

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

platform/edge !77 rt_04 branch = main #deploys
  1. Reviewer requested 09:41:02 thread opened

    !77 Harden edge cache invalidation · @priya.raman

  2. Pipeline failed 09:52:38 posted in thread

    integration-tests, lint · 4m 12s · main @ 7c1ab90

  3. Pipeline recovered 10:06:11 same thread

    all 9 jobs passed · 3m 48s

  4. Approved 10:14:57

    Priya Raman approved · 6 files, +214 −63

  5. Merged 10:21:04

    !77 merged into main · thread resolved

One merge request, one thread: reviewer requested, pipeline failed, pipeline recovered, approved, merged.

One request, one living thread

Reviews, pipeline changes and the merge all update the same conversation instead of scattering across the channel.

Route each repository deliberately

A route is a repository-to-destination policy. Choose the events it relays and how messages behave, per route.

Mentions resolve to real teammates

Identity mapping links forge accounts to Slack and Discord users, so a review request reaches a person.

Product demo

From webhook to useful conversation.

Pick a forge and a destination. The forge event, the route policy that accepted it, and the conversation it produces.

2 · Route policy

Route
rt_04
Destination
Condition
branch = main
Features
One thread per request · Mention mapped reviewers · (failures and recovery) · Stale review reminder

View this route

Platform Guild · #deploys
thread · 6 messages
  • FR

    ForgeRelay BOT 14:02

    !77 Review requested — cache invalidation

    Status: Awaiting review

    platform/edge · 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

    !77 Merged — cache invalidation

    Status: Merged

    platform/edge · 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

One thread, updated in place. Pipeline failure and recovery both land here.
Northwind HQ · #eng-reviews
thread · 6 messages
  • FR

    ForgeRelay APP 14:02

    !77 Review requested — cache invalidation

    Status: Awaiting review

    platform/edge · feat/edge-cache main

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

    Opened 2 hours ago · Last activity 4 minutes ago · ForgeRelay

    Open merge request

  • FR

    ForgeRelay APP 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 APP 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 APP Next day, 09:30

    Still waiting on review · @dana.k

  • FR

    ForgeRelay APP 11:04

    !77 Merged — cache invalidation

    Status: Merged

    platform/edge · feat/edge-cache main

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

    Opened 2 hours ago · Last activity 4 minutes ago · ForgeRelay

    Open merge request

One thread, updated in place. Pipeline failure and recovery both land here.
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

One thread, updated in place. Checks failure and recovery both land here.
Northwind HQ · #eng-reviews
thread · 6 messages
  • FR

    ForgeRelay APP 14:02

    #482 Review requested — cache invalidation

    Status: Awaiting review

    northwind/api · feat/edge-cache main

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

    Opened 2 hours ago · Last activity 4 minutes ago · ForgeRelay

    Open pull request

  • FR

    ForgeRelay APP 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 APP 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 APP Next day, 09:30

    Still waiting on review · @dana.k

  • FR

    ForgeRelay APP 11:04

    #482 Merged — cache invalidation

    Status: Merged

    northwind/api · feat/edge-cache main

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

    Opened 2 hours ago · Last activity 4 minutes ago · ForgeRelay

    Open pull request

One thread, updated in place. Checks failure and recovery both land here.

How it works

Four steps, one continuous relay.

Connections, routes, events, then the behaviour that keeps a review from going quiet.

  1. 01

    Connect the forge and chat

    Install the GitHub app or connect GitLab through OAuth and project hooks, then authorise a Slack workspace or a Discord server. Connections are listed with their scopes.

    github gitlab slack discord

    Two connections are enough to relay your first request.

  2. 02

    Route repositories to destinations

    Pick a repository and a channel with searchable pickers. One repository can relay to several channels; each pairing is its own route.

    platform/edge rt_04 #deploys

    branch = main · relays merge request activity and pipeline status

  3. 03

    Choose events and per-route behaviour

    Start from a preset — Review essentials, Full lifecycle with pipeline, Pipeline monitoring — then override workspace defaults for that route only.

    • One thread per request On
    • Mention mapped reviewers On
    • Include diff summary Default
    • Compact messages Off
  4. 04

    Let threads, reminders and pipeline recovery keep work moving

    Stale reviews get one quiet nudge. Pipeline failures and recoveries post into the existing thread. Every delivery is recorded and replayable.

    • pipeline failed integration-tests, lint
    • recovered 9 jobs · 3m 48s
    • reminder waiting 19h

Capabilities

Everything a review needs, and nothing it doesn’t.

Routing

Readable routing policies

Search repositories, workspaces and channels instead of scrolling a native dropdown. A route names its source, its destination, and the events it relays.

  • One route per repository-to-destination pairing
  • Presets for review essentials, full lifecycle with CI, and pipeline monitoring
  • Conditions for branch, label and author kept in a collapsed disclosure
platform/edge rt_04 #deploys
northwind/api rt_01 #eng-reviews

Open the route editor

Overrides

Workspace defaults, route-level exceptions

Set message behaviour once for the workspace, then override it where a channel needs something different. Each route shows whether a feature is inherited or explicit.

  • Default / On / Off for every feature
  • Workspace defaults live on their own page
  • Overrides are counted, so drift is visible
  • One thread per request route override On
  • Mention mapped reviewers workspace: on Default
  • Include diff summary route override Off
  • Relay top-level comments workspace: off Default
  • Stale review reminder after 4 hours On

People

Real reviewer mentions

Identity mapping connects a forge account to a Slack or Discord user. A review request becomes a mention of the person who has to act.

  • Suggested matches with the reason for the match
  • Manual mapping through a searchable chat identity picker
  • Unmapped people fall back to their forge handle, never a wrong ping
  • priya.raman Priya Raman mapped
  • dana.k Dana Køhler mapped
  • t.oyelaran needs mapping

Status colours

Your PR and MR states, in your colours

Choose the colour used for Open, Draft, Awaiting review, Changes requested, Merged and Closed. One organisation palette keeps request cards consistent across Slack and Discord.

  • Six colours configured from Preferences
  • Live preview before you save
  • Included on every plan

Organisation status palette

One set of colours across every destination.

  • Open #286653
  • Draft #99AAB5
  • Awaiting review #F2C744
  • Changes requested #E03E3E
  • Merged #9B59B6
  • Closed #6B7280

Pick colours in Preferences and preview them before saving.

Threads

One thread through the whole lifecycle

Opened, review requested, pipeline failed, recovered, approved, merged: all of it updates a single conversation, so nobody scrolls to reconstruct the story.

Platform Guild · #deploys
thread · 6 messages
  • FR

    ForgeRelay BOT 14:02

    !77 Review requested — cache invalidation

    Status: Awaiting review

    platform/edge · 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

    !77 Merged — cache invalidation

    Status: Merged

    platform/edge · 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

Reminders

Quiet stale-review reminders

When a request has waited too long, ForgeRelay posts one reminder into the existing thread and mentions the mapped reviewer. No ping storms, no repeated nagging.

  • Elapsed delay set per workspace (four hours by default)
  • Reminders stop as soon as a review lands
  • Each route can enable or disable the reminder
stale review reminder after 4h

Still waiting on review · #482

Open for 19 hours with one reviewer requested.

@dana.k

Pipeline status

MR pipeline status, with recovery

Relay failures only, failures and recovery, or all changes. Updates carry the failed jobs, duration, SHA, and a link to the pipeline.

  • Post into the existing merge request thread or as a new message
  • GitLab uses pipeline language; GitHub uses check language
  • Recovery closes the loop instead of leaving a red message behind

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

Reliability

Durable delivery logs and replay

Every relayed event is recorded with its route, destination, status and payload. If a destination rejects a message, replay it once the channel is healthy again.

Event Route Status
evt_8836 rt_04 ok
evt_8829 rt_04 ok
evt_8817 rt_04 ok
evt_8791 rt_02 failed

Pricing

Free for small teams. Team scales by seats.

Unlimited repos and notifications. Plans meter mapped people — forge identities linked for mentions.

Free

£0

Up to 3 mapped people

Team

From £19/mo

More seats — same product

Self-hosted

Talk to us

Future option

See full pricing

Security

Product principles, stated plainly.

ForgeRelay handles webhook payloads and chat credentials. These are the principles the design follows.

Read the security overview

  • Signed webhook verification before a payload is accepted
  • Least-privilege app permissions on both forge and chat
  • No write access to your code — and no clone or stored source tree
  • Secrets encrypted at rest
  • Delivery history with replay controls

Design principles, not audited claims

FAQ

Questions worth answering before you connect anything.

Yes. GitHub sources use pull request and check terminology; GitLab sources use merge request and pipeline terminology. The route editor changes its labels to match the connected forge.

Reviews stay in threads. Direct-to-main stays visible. Commit digest routes post one filtered digest per push to a watched branch — branch filters, bot suppress, and conventional types included. Pushes without a matching Commits route are ignored; see Security for Contents: read and Push subscription details.

Yes. Create a route for each destination. Overlapping routes all deliver, so northwind/api can relay the same review activity to #eng-reviews and a Discord channel at the same time.

Every feature — One thread per request, Mention mapped reviewers, Include diff summary, Include link to the forge, Compact messages, Relay top-level comments, Stale review reminder, MR pipeline status — can be left at the workspace default or overridden On or Off for a single route.

Choose failures only, failures and recovery, or all changes. Updates can post into the existing request thread or as a new message, and can include failed jobs, duration, SHA, and a link to the pipeline.

No. Reviews, approvals and merges still happen in the forge. ForgeRelay decides what reaches chat and keeps that conversation current.

Yes. Destinations are independent. Create two routes for the same repository — one to Slack, one to Discord — and both deliver when their conditions match.

The delivery is recorded with its status and payload, and can be replayed from the delivery log once the destination accepts messages again.

Put the review where the team already is.

Free for up to 3 mapped people. Unlimited repos and notifications. No credit card.