PullNotifier Logo

PullNotifier

GitLab + Microsoft Teams Setup Guide

Connect a GitLab group and get merge request notifications as Adaptive Cards in Microsoft Teams, in five minutes.

Skip the doc and start now

Setup starts on the GitLab side. The Microsoft Teams half is two clicks at the end.

Before you start

  • A gitlab.com account (self-managed GitLab is not supported yet)
  • The Maintainer role on the projects you want to connect, which GitLab requires to create webhooks. Only the person running the connect step needs it. Teammates need no special role.
  • Permission to add an app to Microsoft Teams, or a Teams admin who can approve PullNotifier
  • About five minutes

Setup steps

Steps 1 to 6 happen in PullNotifier. Step 7 happens inside Microsoft Teams. Every screenshot below shows the real screen with placeholder data.

1

Log in with your GitLab account

Open the GitLab login page and click "Continue with GitLab". This is a standard OAuth sign-in against gitlab.com. There is nothing to install on the GitLab side.

One clickAlready signed in with GitHub? Log out first. A session belongs to one provider, and your GitLab groups only appear in a GitLab session.

PullNotifier GitLab login screen with a Continue with GitLab button

Step 1: sign in at pullnotifier.com/gitlab-login

2

Authorize API access

PullNotifier asks for API access to your GitLab account. It uses this to list the groups you belong to and to register merge request webhooks on the projects you choose.

ScopesThe token reads merge request metadata and writes webhooks. Creating a webhook is a write, so the read-only read_api scope is not enough for this step. It never reads your source code, and you can revoke it at any time from GitLab under Settings, Applications.

Connect a GitLab group screen asking the user to authorize API access

Step 2: grant API access so webhooks can be registered for you

3

Choose the group to connect

Pick the GitLab group you want notifications for. Subgroups are supported, so connecting a parent group lets you pick projects from any subgroup underneath it.

Maintainer roleOnly groups where you hold the Maintainer role appear here. GitLab requires that role to create project webhooks.

Group picker listing the GitLab groups where the user is a Maintainer

Step 3: groups you can connect, filtered by your role

4

Pick the projects to notify on

Tick the projects that should send merge request notifications, then click Connect. PullNotifier registers the webhooks for you and takes you to your dashboard.

Per projectWebhooks are registered per project, which every GitLab tier includes, Free among them. Group webhooks, a Premium feature, are not required.

Project picker with several GitLab projects selected

Step 4: select projects, then click Connect

5

Switch the connection to Microsoft Teams

New connections default to Slack. On the dashboard, click "Using Microsoft Teams?" next to your group to switch it over. The row then offers a Teams connection instead of a Slack one.

Switch platformThe prompt appears on a freshly connected group that has no Slack channel yet. If you do not see it, connect Teams from the group's three-dot menu instead.

Dashboard row offering a Using Microsoft Teams? switch next to Select Slack Channel

Step 5: move the group from Slack to Microsoft Teams

6

Open the Teams connect panel

The group now shows a "Connect Teams" button. Click it to see exactly what to install on the Microsoft Teams side.

Connect TeamsEach project row can also point at its own Teams channel once the group is linked.

Dashboard showing a connected GitLab group with a Connect Teams button

Step 6: the group is connected, Teams is not linked yet

7

Install the PullNotifier bot in Microsoft Teams

In Microsoft Teams, open Apps in the left sidebar, search for "PullNotifier", click Add, and choose the channel that should receive notifications. The bot posts a setup card in that channel. Click "Complete Setup" on the card to link it back to your GitLab group.

In TeamsYour Teams admin may need to approve the app first. If PullNotifier is not in the catalog, ask them to allow it in the Microsoft Teams Admin Center under Manage apps.

Connect Microsoft Teams dialog listing the four bot installation steps

Step 7: the exact steps, shown in the app

That is it, you are live

Your dashboard now shows the group, its connected projects, and the Microsoft Teams channel each one posts to. The next merge request opened in any of them arrives as an Adaptive Card that keeps updating itself as the MR moves.

PullNotifier dashboard with a GitLab group connected to a Microsoft Teams channel

A connected group, its projects, and the Teams channel each one posts to

Fine-tune it (optional)

The defaults work out of the box. These two settings are the ones teams reach for first.

Set per-project rules

Open the gear icon on any project to set the approvals it needs, mute comment notifications, route by label, or send a specific author or reviewer to a different Teams channel.

Project settings modal with notification toggles and Teams channel mapping options

Per-project settings, including label and reviewer routing

Map GitLab users to Teams users

Mapping turns notifications into real @mentions inside the Adaptive Card, so a review request actually pings the reviewer instead of printing their username as plain text.

GitLab to Microsoft Teams user mapping screen

Map once, then every mention resolves correctly

What you get

One Adaptive Card per merge request, updated in place instead of a new post per event

Notifications for opened, reopened, merged, closed, draft and ready transitions

Approvals, comments, and new commits reflected on the same card

Routing by label, author, or reviewer, per project or across the whole group

Real @mentions once GitLab users are mapped to Teams users

Works on GitLab Free, because it uses per-project webhooks

Same dashboard as the Slack setup, so you can switch platforms later

Troubleshooting

  • PullNotifier is not in the Teams app catalog: your tenant blocks third-party apps. A Teams admin has to allow it in the Microsoft Teams Admin Center under Manage apps.
  • No "Using Microsoft Teams?" button: it only shows on a freshly connected group with no Slack channel. Use the group's three-dot menu to switch platform instead.
  • The bot posted a card but nothing linked: click Complete Setup on that card while logged in to PullNotifier, so it can attach the channel to your GitLab group.
  • Your group is not in the list: you need the Maintainer role on it. Ask an owner to raise your role, or have them run the connect step.
  • Mentions show as plain text: map the GitLab user to a Teams user on the mapping screen shown above.

Setup FAQ

Can GitLab send merge request notifications to Microsoft Teams?

Yes. Connect your GitLab group to PullNotifier, install the PullNotifier bot in Microsoft Teams, and merge request notifications arrive in your chosen channel as Adaptive Cards.

How long does the setup take?

About five minutes. Four steps happen in PullNotifier and one happens inside Microsoft Teams, where you add the bot and click Complete Setup on the card it posts.

Do I need a Microsoft Teams admin?

Often not, but some tenants block third-party apps by default. If PullNotifier does not appear in the Teams app catalog, an admin has to allow it in the Microsoft Teams Admin Center under Manage apps.

Do I need a paid GitLab plan?

No. PullNotifier registers per-project webhooks, which every GitLab tier includes, Free among them.

What GitLab role do I need?

Maintainer (or Owner) on each project you connect, and only for the person who runs the connect step. GitLab requires that role to create project webhooks, so a Developer or Reporter cannot finish the step. Teammates who use the notifications afterwards need no special role: any membership in the group, Guest included, is enough to see the dashboard.

Can I connect with a read-only scope or a lower role?

Not today. Webhook registration is the one write PullNotifier makes, and GitLab gates it behind both the api scope and the Maintainer role. Everything else (open merge requests, approvals, comments, members) is read-only. If you are not a Maintainer, ask one to run the five-minute connect step once; you can manage channels and rules afterwards with any role.

Can different projects post to different Teams channels?

Yes. Set a default channel for the group, then override it per project, or route by label, author, or reviewer from the project settings screen.

Does it work with self-managed GitLab?

Not yet. gitlab.com is supported today and self-managed support is on the roadmap. Contact us if your team needs it.

Can I use Slack and Microsoft Teams at the same time?

Each connected group delivers to one platform. If you run both, connect the group to the platform your reviewers actually watch, and switch it later from the dashboard whenever you like.

PullNotifier logo

PullNotifier

Smart GitHub pull request notifications for Slack and Microsoft Teams. Built for teams that ship code review faster.

GitHub + Slack


ยฉ 2026 PullNotifier. All rights reserved.

PrivacyTermsPermissions