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.

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 signinThe 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-repoReplace 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, commitsThen confirm what is active in the channel:
@github subscribe listFor 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, commitsIn your frontend team channel:
@github subscribe acme-corp/frontend-app pulls, comments, reviews@github unsubscribe acme-corp/frontend-app issues, commitsIf 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, reviewsChannel 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, reviewsA 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 deploymentsYou 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:mainAll 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 scheduleThe 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 listRecommended 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.
| Command | What it does |
|---|---|
@github signin | Link your GitHub account to your Teams identity |
@github subscribe org/repo | Subscribe this channel to a repo with the default event set |
@github subscribe org/repo pulls, reviews, comments | Subscribe to specific event types only |
@github subscribe org/repo+label:"hotfix" pulls, reviews | Subscribe filtered by a specific GitHub label |
@github unsubscribe org/repo issues, commits | Remove noisy event types from this channel |
@github subscribe list | Show every active subscription in this channel |
@github subscribe list features | Show all available event types you can subscribe to |
@github unsubscribe org/repo | Remove all subscriptions for that repo from this channel |
@github subscribe org/repo commits:main | Get commit notifications for a specific branch only |
@github subscribe org/repo deployments | Track deployment events only |
@github schedule | Set up a scheduled PR reminder for this channel |
@github schedule list | List all reminders configured in this channel |
@github signout | Disconnect 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.
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.
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.
| Feature | PullNotifier | Official @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.