PullNotifier Logo

PullNotifier

Complete Guide ยท 2026

GitHub Microsoft Teams Integration: The Complete Guide for 2026

Install the GitHub app in Teams, set up channel routing, schedule daily PR reminders for standups, and learn what to do when the native app is not enough.

Gabriel Pineda

Founder, PullNotifier

ยท

Published May 19, 2026

ยท

12 min read

Free to start. Setup in under 5 minutes.

GitHub and Microsoft Teams integration

On this page

The basics

What does the GitHub Microsoft Teams integration do?

The GitHub Microsoft Teams integration is an app, published by GitHub, that posts repository activity directly into Teams channels. Pull requests, code reviews, issue activity, commits, and deployments all show up as cards in whatever channels you configure. You can also run a small set of @github commands from inside Teams, like subscribing a channel to a repo or setting up a scheduled PR reminder.

You install it once, then run @github subscribe in each channel that should receive notifications. The app is free, supports unlimited users and repos, and works with any GitHub account or organisation on github.com. It is the right starting point for most teams.

Why teams wire these two tools together

Engineers already spend their day in Teams. A working GitHub integration removes the daily context switch between code review, deploy alerts, and team chat. Done well, it shortens PR review time, surfaces the right events for the right people, and gives managers visibility without requiring them to log into GitHub.

For the quick reference version of this guide, see the Microsoft Teams GitHub integration quick reference.

Picking an approach

The 3 ways to send GitHub notifications to Microsoft Teams

Before any setup, decide which path fits your team. There are three honest options and they solve different problems.

Official @github Teams app

Single team, single repo, single channel. Free.

Pros

  • Made by GitHub, free forever

  • Bidirectional @github commands

  • Under 5 minutes to install

Cons

  • No routing by label, author, or branch

  • No reviewer @-mention mapping

  • Authentication can be fragile

GitHub Actions โ†’ Teams webhook

CI/CD pipeline events. Build, test, deploy.

Pros

  • Total control in YAML

  • Ideal for build and deploy alerts

  • Works without installing a Teams app

Cons

  • One-way only, no commands

  • YAML lives in every repo and drifts

  • Not designed for PR review workflows

PullNotifier (and similar tools)

Multi-team setups, code review at scale, GHES.

Pros

  • Per-channel routing by repo, label, author, branch

  • GitHub username to Teams handle mapping

  • Daily digest and smart reminders

Cons

  • Paid above the free tier

  • One more app to install

Step 1

Install the GitHub app in Microsoft Teams

Open Microsoft Teams and click Apps in the left sidebar. Search for โ€œGitHubโ€ and select the app published by GitHub, Inc. Click Add.

You can add it to a specific channel or to a whole team. If your Teams workspace has a policy restricting app installs, a Teams admin needs to approve it from the Teams Admin Center before it appears for regular members.

Once installed, the GitHub bot posts a welcome message in the channel. That is your confirmation that the app is active and ready for commands.

Step 2

Sign in to GitHub

At this point the app is installed, but your Teams identity and GitHub account are not linked yet. In the channel where you added GitHub, type:

@github signin

The bot sends you a private link that opens a GitHub OAuth flow in your browser. Approve the requested scopes and the connection is made.

Use a service account if you are setting this up for a team

The integration is tied to the GitHub account that signed in. If that person leaves the company or loses org access, notifications stop without any error message. A shared bot or service account on both GitHub and Teams keeps the integration stable long-term.

Step 3

Subscribe a channel to a repo

From the channel where you want notifications to show up, run:

@github subscribe your-org/your-repo

Replace your-org/your-repo with your actual organisation and repository name. The default subscription covers pull requests, issues, commits, releases, and deployments. That is usually too much. Step 4 covers trimming it down.

On private repos, a GitHub org admin needs to grant the app access. The bot returns a message with a link if that approval is still pending.

Step 4

Filter the noise

Most teams only need pull request activity: when a PR is opened, reviewed, has comments, or merges. Remove what you do not need:

@github unsubscribe your-org/your-repo issues, commits

Then confirm what is active in the channel:

@github subscribe list

For most teams running code review workflows, the right subscription is pulls, comments, reviews. That covers the full PR lifecycle without commit spam.

Channel setup

Setup scenario: one channel per team or repo

The most common setup. Each team has their own Teams channel and subscribes to the repos they own. The backend team gets backend PRs. The frontend team gets frontend PRs. No cross-contamination.

In your backend team channel:

@github subscribe acme-corp/backend-api pulls, comments, reviews@github unsubscribe acme-corp/backend-api issues, commits

In your frontend team channel:

@github subscribe acme-corp/frontend-app pulls, comments, reviews@github unsubscribe acme-corp/frontend-app issues, commits

If your team works across a monorepo or multiple repos, stack subscriptions in one channel:

@github subscribe acme-corp/backend-api pulls, comments, reviews@github subscribe acme-corp/frontend-app pulls, comments, reviews

Channel setup

Setup scenario: priority filtering with labels

If your whole engineering team shares one channel and you only want to surface the most urgent PRs, filter by a label like hotfix or important. Normal PRs stay in team channels. Urgent ones ping everyone.

In a shared engineering alerts channel:

@github subscribe acme-corp/backend-api+label:"hotfix" pulls, comments, reviews@github subscribe acme-corp/backend-api+label:"important" pulls, comments, reviews

A developer opens a hotfix PR, applies the hotfix label, and the whole team sees it immediately. Everything else routes through the normal team channel.

Channel setup

Setup scenario: deployment tracking only

Some teams do not need to track every PR. They just want to know when something ships. Create a dedicated deployments channel and run:

@github subscribe acme-corp/backend-api deployments

You get a notification every time a deployment event fires on that repo. It works well as a read-only audit channel that anyone in the company can join without adding noise to their main workspace.

Channel setup

Setup scenario: commit notifications by branch

If you need to track what lands on a specific branch, subscribe to commits at the branch level.

Default branch only

@github subscribe acme-corp/backend-api commits:main

All branches

@github subscribe acme-corp/backend-api commits:*

Release branches by pattern

@github subscribe acme-corp/backend-api commits:release/*

Daily standups

Scheduled reminders: the daily PR digest

The scheduled reminder feature is one of the most useful things the official GitHub Teams app offers. You configure a time and day pattern, and the bot posts a digest of open pull requests directly into the channel at that time.

To set it up, run this in the channel you want to receive the digest:

@github schedule

The bot walks you through setting the time, the days of the week, and filter options like ignoring draft PRs. To review what is already scheduled:

@github schedule list

Recommended standup configuration

  • Time: 9:00 AM on weekdays

  • Filter: ignore draft PRs

  • Channel: your main engineering PR channel

For a more configurable digest with reviewer breakdowns, per-PR age tracking, and individual engineer reminders, see PullNotifier daily digest for Microsoft Teams.

Reference

@github command reference

Every command your team will use. Run them from the Teams channel you want to configure.

CommandWhat it does
@github signinLink your GitHub account to your Teams identity
@github subscribe org/repoSubscribe this channel to a repo with the default event set
@github subscribe org/repo pulls, reviews, commentsSubscribe to specific event types only
@github subscribe org/repo+label:"hotfix" pulls, reviewsSubscribe filtered by a specific GitHub label
@github unsubscribe org/repo issues, commitsRemove noisy event types from this channel
@github subscribe listShow every active subscription in this channel
@github subscribe list featuresShow all available event types you can subscribe to
@github unsubscribe org/repoRemove all subscriptions for that repo from this channel
@github subscribe org/repo commits:mainGet commit notifications for a specific branch only
@github subscribe org/repo deploymentsTrack deployment events only
@github scheduleSet up a scheduled PR reminder for this channel
@github schedule listList all reminders configured in this channel
@github signoutDisconnect your GitHub account and remove all subscriptions

Before you hit problems

Tips and gotchas

Things that catch teams off guard after they get the initial setup working.

Use a service account, not a personal one

If the person who ran @github signin leaves the company or loses org access, the integration breaks. A shared bot or service account on both the GitHub and Teams side keeps it stable.

Plan your channels before you subscribe

It is easy to end up with overlapping subscriptions across channels with no clear owner. Decide which channels track which repos, write it down, and stick to it.

Set up subscriptions outside working hours

The first time you connect a busy repo, Teams fires a banner notification for every matching PR. Do the setup on a Sunday evening or early morning before anyone is at their desk.

Label discipline makes routing work

If you route by labels like "hotfix" or "important", your team actually has to apply those labels consistently. Without that habit, the routing falls apart. Consider GitHub PR templates to make it a default.

Audit subscriptions when teams change

Channels get archived, repos get deprecated, teams reshuffle. Run @github subscribe list in every active channel every quarter and remove subscriptions that no longer serve anyone.

The honest gaps

Where the official app falls short

The native GitHub Teams app works for a single team in a single channel. The moment you have multiple teams, multiple repos, or you need reviewers to actually get pinged, the same six problems show up.

One firehose per channel

The native app subscribes a channel to a repo as a whole. You cannot route the backend repo to the backend channel and the frontend repo to the frontend channel without repeating the subscribe setup in each channel. There is no rule-based routing.

Reviewers do not get notified

When a PR notification card lands in Teams, assigned reviewers see their GitHub username as plain text. There is no mapping to Teams handles, so no one gets actually pinged. Reviews sit idle because the right people never knew they were asked.

Authentication is fragile

The integration is tied to the GitHub account that ran @github signin. If that person leaves the org or their GitHub permissions change, the whole connection can break silently. Teams might stop getting notifications without any error message.

Banner notifications cannot be snoozed

When you first subscribe a busy repo, Teams fires a banner notification for every matching event. There is no way to batch or defer these. If you set up subscriptions during the workday, expect to disrupt your team with a wave of pings.

No filtering for bots or drafts

Dependabot bumps, Renovate PRs, and draft pull requests all show up as notifications. You can unsubscribe from event types, but you cannot say "ignore everything from dependabot[bot]". The result is a channel your team eventually mutes.

No personal notifications

The official app posts into channels only. There is no way to get a direct message when a PR you opened gets approved, when someone requests changes on your code, or when someone leaves a review comment addressed to you.

PullNotifier is a dedicated GitHub to Microsoft Teams integration built specifically for pull request workflows. It adds the layer the official app skips: per-channel routing, reviewer handle mapping, actionable alerts, and a daily digest that actually runs on time.

We built it because we kept watching the same thing happen at every engineering team. The official bot would get installed in a shared channel on Monday. By Thursday, half the team had muted it. Reviews stalled because nobody got pinged. Dependabot drowned out real work. The native app pushes events. What teams need is a notification system that understands code review as a workflow.

PullNotifier runs in over 1,000 organisations and reaches roughly 30,000 engineers across Slack and Microsoft Teams. Free for small teams. See the GitHub Microsoft Teams integration page for the full feature breakdown.

30,000+

Engineers notified

1,000+

Organisations

4.8

30+ reviews on G2

What you get out of the box

Six things the official app does not do.

Actionable alerts for every PR event

When your PR is approved, someone requests changes, a reviewer leaves a comment, or a review is submitted, you get a notification exactly where your team already works.

Per-channel routing

Route by repo, label, author, or branch. The backend team gets backend PRs in their channel. Hotfixes ping the right people automatically.

Teams handle mapping that works

Import GitHub to Teams user mappings in bulk or let PullNotifier auto-match. Reviewers actually get pinged instead of seeing their GitHub handle as plain text.

Filter bots and drafts

Per-author and per-label rules keep Dependabot, Renovate, and draft PRs out of the channel until they need a human.

Daily PR digest

A morning summary of every open PR and its review status. Standups get shorter and stale PRs get unstuck.

GitHub Enterprise Server

Supported as a managed integration, including air-gapped deployments behind a proxy.

Here is what PullNotifier looks like in your Teams workspace.

Route every PR event โ€” opened, reviewed, merged - to the right Slack channel. Per-repo rules, fully themable.
Search Acme Inc.
Acme Inc.
Gabriel
Threads
Mentions & reactions
Drafts
Channels
#general
#engineering
#pull-requests
3
#design
๐Ÿ”’releases
Apps
PullNotifier
# pull-requests
Smart PR notifications for the engineering team ยท 24 members
24
Today
BiS
Message #pull-requests

Set it up in two clicks

Connect Microsoft Teams first, then GitHub. Five-minute setup, free for up to four users. The official @github bot can keep running alongside.

โ€œThe daily digest alone was worth it. Our standups went from 20 minutes of "what PRs are open" to actual discussion. We stopped losing reviews in notification noise.โ€

Sarah

Engineering Manager ยท G2 verified review

Side by side

PullNotifier vs the official @github Teams app

No spin. The features that matter for teams running more than one channel.

FeaturePullNotifierOfficial @github
Pull request notifications in Teams

Smart, scoped cards

Basic event cards

Per-channel routing by repo, label, author, or branch

Yes

One firehose per channel

GitHub username to Teams handle mapping

Bulk import and auto match

Reviewers are not pinged

Noise filtering (drafts, bots, Dependabot)

Per author and per label rules

All or nothing per event type

Daily PR digest for standups

Configurable cadence

Via @github schedule only

Actionable alerts (approved, changes requested, comments)

All PR lifecycle events

Events delivered, no smart grouping

Personal DM notifications with per-event filters

Yes

Not available

GitHub Enterprise Server support

Yes, including air-gapped

github.com only

Setup time

Under 5 minutes

10 to 20 minutes per channel

Pricing

Free for small teams

Free

When the official GitHub app is the right call

The official @github bot is the right pick when:

  • You have one engineering team, one channel, and one repo.

  • Free is a hard requirement and a third-party app cannot be approved.

  • You only need deployment or issue notifications, not PR review workflows.

  • Your setup is simple enough that the @github commands cover everything.

Quick answers

Frequently asked questions

What teams ask before setting this up.

Yes. GitHub publishes an official app for Microsoft Teams that you can install from the Teams app store. It posts pull request, issue, and deployment events into channels and supports a set of @github commands for subscribing and filtering. For teams that need more control โ€” routing by label, reviewer notifications, or a daily digest โ€” third-party tools like PullNotifier add those on top.

Install the GitHub app from the Teams app store, run @github signin in your target channel to link your GitHub account, then run @github subscribe org/repo to start receiving notifications. By default you get all event types. Trim it with @github unsubscribe org/repo issues, commits to keep only pull request activity.

The official @github app from GitHub is completely free with no limits on users or repos. Third-party tools like PullNotifier are also free for small teams and charge per user above a threshold.

With the official app, you can subscribe different channels to different repos by running @github subscribe in each. You cannot do more granular routing like "send PRs with the hotfix label to this channel" without a third-party tool that supports label or author-based filters.

The official GitHub Teams app does not map GitHub usernames to Teams handles. When a review is requested, the card shows the GitHub username as plain text. No one gets an actual Teams mention. This is the most common reason reviews stall. PullNotifier solves this with a GitHub-to-Teams user mapping that you can import in bulk.

Run @github schedule in the channel and follow the bot prompts to set the time and days. The bot posts a digest of pending pull requests at the scheduled time. For a more configurable digest with per-reviewer breakdowns and age filters, PullNotifier offers this as a built-in feature.

The official app only connects to github.com and does not support GitHub Enterprise Server. For GHES you need either a self-hosted solution or a managed tool like PullNotifier, which supports GHES including air-gapped deployments.

The most common cause is a broken authentication link. Run @github signin in the affected channel to reconnect. If the GitHub app was uninstalled from your Teams workspace or org, a Teams admin needs to reinstall it. On private repos, a GitHub org admin also needs to have granted the app access from the org settings page.


Set up GitHub notifications in Teams the way your team actually wants it

Install PullNotifier alongside the official @github bot. Compare them in your own workspace and keep whichever one your team picks. Free for up to 4 users.

Gabriel Pineda

Founder of PullNotifier. Writing about code review, async engineering, and the infrastructure between GitHub and the tools teams already use every day.

PullNotifier

ยท

Blog

ยท

GitHub Slack guide
PullNotifier logo

PullNotifier

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

RSS

GitHub + Slack


ยฉ 2026 PullNotifier. All rights reserved.

PrivacyTermsPermissions