# MergeMe > MergeMe delivers GitHub pull request and GitLab merge request notifications to Slack for code review. Each PR/MR gets one updating Slack card - status changes update the existing message in place instead of posting a new notification per event. Comments are posted as thread replies on that card. It supports GitLab.com (OAuth), GitLab self-hosted (manual webhook), and GitHub.com (GitHub App). One workspace can connect multiple git sources; Slack remains one connection per workspace. ## Key features - Single updating Slack card per PR/MR - status changes update the existing message in place - Optional CI checks/pipeline rollup on each card (e.g. CI: Running (2/5)) - enable in Routing > Preferences - GitLab/GitHub @mentions in comments resolved to Slack @mentions via user mappings - Per-workspace channel routing - different projects can post to different Slack channels - Multi-git per workspace: GitHub + GitLab.com + self-hosted in one place - Per-mapping git source; grouped project/user pickers in routing - Scheduled Slack digests of stale open PRs/MRs (GitHub and GitLab.com; Routing > Reminders) ## Providers | Provider | Setup | Webhook registration | |---|---|---| | GitLab.com | OAuth - automatic | MergeMe registers webhooks via GitLab API | | GitLab Self-Hosted | Manual - paste webhook URL into GitLab | You add the webhook to each project | | GitHub.com | GitHub App install - automatic | GitHub App handles it globally | ## Setup overview ### GitLab.com (~5 minutes) 1. Sign in at mergeme.dev, create a workspace, pick GitLab.com as your main platform 2. Sources → Slack: connect your Slack workspace 3. Sources → GitLab.com: Connect GitLab (OAuth) 4. Routing → Channel mappings: select a project, pick a Slack channel 5. Routing → User mappings (optional): map GitLab usernames to Slack users ### GitLab Self-Hosted (~10 minutes) 1. Sign in at mergeme.dev, create a workspace, pick Self-Hosted GitLab as your main platform 2. Sources → Slack: connect your Slack workspace 3. Sources → Self-hosted: copy webhook URL and signing token (or secret token for GitLab < 19.0) 4. In GitLab: Settings → Webhooks → Add webhook, paste URL and token, enable MR + Note events (and Pipeline events for CI status on cards) 5. Routing → Channel mappings: enter project ID, pick a Slack channel 6. Repeat step 4 for each project ### GitHub.com (~5 minutes) 1. Sign in at mergeme.dev, create a workspace, pick GitHub.com as your main platform 2. Sources → Slack: connect your Slack workspace 3. Sources → GitHub: Install GitHub App, choose org/account and repos 4. Routing → Channel mappings: select a repo, pick a Slack channel 5. Routing → User mappings (optional): map GitHub usernames to Slack users You can add other git sources later from Sources without creating a new workspace. ## Slack notifications trigger when a PR/MR transitions to - opened / reopened - in review (reviewer requested or review dismissed) - approved - changes requested - merged - closed Comments post as thread replies on the existing Slack message. When CI status on cards is enabled (Routing > Preferences), the card also shows a rollup CI line (e.g. CI: Running (2/5)) that updates in place as GitHub checks or GitLab pipelines run. Scheduled reminders (Routing > Reminders) post a separate Slack digest of open GitHub PRs and GitLab.com MRs older than a threshold you set. They do not require channel mappings and do not support self-hosted GitLab. ## Full documentation - [Docs home](https://mergeme.dev/docs): Overview, install guides, routing, webhooks, and FAQ - [Provider comparison](https://mergeme.dev/docs/providers): GitLab.com vs self-hosted vs GitHub.com - [Install GitLab.com](https://mergeme.dev/docs/install/gitlab-cloud) - [Install GitLab self-hosted](https://mergeme.dev/docs/install/gitlab-self-hosted) - [Install GitHub.com](https://mergeme.dev/docs/install/github) - [Routing overview](https://mergeme.dev/docs/routing) - [Reminders](https://mergeme.dev/docs/routing/reminders) - [Routing preferences](https://mergeme.dev/docs/routing/preferences) - [Webhook reference](https://mergeme.dev/docs/webhooks) - [FAQ](https://mergeme.dev/docs/faq) ## Integrations - [GitLab merge request notifications in Slack](https://mergeme.dev/integrations/gitlab-slack) - [GitHub pull request notifications in Slack](https://mergeme.dev/integrations/github-slack) - [Self-hosted GitLab Slack notifications](https://mergeme.dev/integrations/gitlab-self-hosted-slack) - [Multi-git Slack notifications](https://mergeme.dev/integrations/multi-git-slack) ## Guides - [Stop GitLab Slack notification spam](https://mergeme.dev/guides/stop-gitlab-slack-notification-spam) - [GitHub PR notifications without spam](https://mergeme.dev/guides/github-pr-notifications-without-spam) ## Use cases - [Mixed GitHub and GitLab teams](https://mergeme.dev/for/mixed-github-gitlab-teams) - [Self-hosted GitLab enterprises](https://mergeme.dev/for/self-hosted-gitlab-enterprises) - [Engineering managers](https://mergeme.dev/for/engineering-managers) ## Compare - [Official GitLab Slack app vs MergeMe](https://mergeme.dev/compare/gitlab-slack-app) - [Official GitHub Slack app vs MergeMe](https://mergeme.dev/compare/official-github-slack-app) - [PullNotifier vs MergeMe](https://mergeme.dev/compare/mergeme-vs-pullnotifier) - [Axolo vs MergeMe](https://mergeme.dev/compare/mergeme-vs-axolo) ## Optional - [Full documentation (plain text)](https://mergeme.dev/llms-full.txt): Complete product documentation in a single LLM-friendly file