MergeMeMergeMe/Integrations

Self-hosted GitLab Slack integration

Self-hosted GitLab Slack notifications

Send merge request notifications from your own GitLab instance to Slack as one updating card per MR. Use manual webhooks if MergeMe cannot reach GitLab, or a GitLab Application with OAuth if it can.

What is this?

MergeMe posts self-hosted GitLab merge request notifications to Slack as one updating card per MR. Status changes update the existing message in place. Review comments appear as thread replies, and GitLab @mentions can map to real Slack @mentions.

The problem with default GitLab Slack notifications

  • The official GitLab Slack app posts a new message for every merge request event
  • Busy channels fill up with duplicate MR posts as reviews progress
  • Hard to see MR status at a glance when messages scroll away
  • Self-hosted teams still need per-project webhook setup with basic integrations

How MergeMe helps

  • One Slack card per merge request, updated in place as the MR moves through review
  • Thread replies for GitLab review comments on the same card
  • Per-project channel routing - different GitLab projects to different Slack channels
  • Label routing to override the default channel when specific labels are present
  • User mapping so GitLab @mentions become Slack @mentions
  • Webhook payloads only - MergeMe does not read private source code

Setup overview (~10 minutes)

  1. Sign in at mergeme.dev and create a workspace with Self-Hosted GitLab as your main platform
  2. Connect Slack under Sources
  3. Copy your webhook URL and signing token from Sources → Self-hosted GitLab
  4. In GitLab: Settings → Webhooks on each project (or group on Premium/Ultimate) - paste URL and token, enable Merge request and Note events
  5. Add channel mappings in Routing → Channel mappings using each project ID
  6. Optionally map GitLab usernames to Slack users under Routing → User mappings

Full walkthrough: Install MergeMe for self-hosted GitLab.

FAQ

Does MergeMe need inbound access to my GitLab server?
Only for Application setup: MergeMe calls your GitLab over HTTPS to complete OAuth and register webhooks. Manual webhook setup does not — GitLab only sends outbound HTTPS to MergeMe. In both cases GitLab must be able to POST events to MergeMe.
What GitLab events does MergeMe need?
Merge request events and note (comment) events. Also enable pipeline events if you want CI status on Slack cards. Register the webhook URL and signing token from the MergeMe dashboard on each project, or use group-level webhooks on GitLab Premium/Ultimate.
Can I mix self-hosted GitLab with GitLab.com or GitHub?
Yes. One MergeMe workspace can connect self-hosted GitLab, GitLab.com, and GitHub.com with per-source channel routing.
Does MergeMe read my source code?
No. MergeMe processes webhook payloads only. It does not clone repositories or read private code.
Can I schedule stale MR reminders on self-hosted GitLab?
Not yet. Scheduled reminders work with GitHub.com and GitLab.com only. Self-hosted GitLab cards still update in Slack as usual.

Start free on MergeMe

Hobby plan is free for small teams. Self-hosted setup takes about 10 minutes per project.