GitHub Microsoft Teams Integration
Introduction
Releasing small controlled product iterations might be one of the best approaches to deliver qualitative requirements one step at a time. This statement aligns with modern agile delivery frameworks to date, and most of us use Microsoft Teams to manage projects and orchestrate those releases.
Sometimes it works, sometimes, it doesn’t, and sometimes it needs an extra “thing” to add value and match the expectations. If you are at this stage, you might be interested in starting an operational transformation journey integrating GitHub to Microsoft Teams to put code at the center of everything, empower developers, remove constraints, and accelerate time to value!
If there are many ways to do things depending on how your team works, you could be interested in implementing “Code review Channels” and “Pull requests Listeners”. The idea is to reduce the “Pull Request Review Waiting time” as we work in an industry where users count on us to deliver as soon as possible.
To do so, the first thing you can do on your side is to look at this website: https://teams.github.com/.
Before you start
The below commands are what you need to bookmark before you start:
@github signin Connect to your GitHub Account
@github subscribe / Subscribe to an Organization or Repository
@github subscribe / [feature] Subscribe to a feature in an Org or Repo.
@github subscribe list List the subscriptions in the channel
@github subscribe list features List subscriptions é features in the channel
@github unsubscribe / Unsubscribe from an org or a repo
@github unsubscribe / [feature] Unsubscribe a specific feature
@github schedule List the reminders scheduled for the org in this channel
@github schedule list List all the reminders configured in this channel
@github signout Disconnect from your GitHub Account and remove all subscriptions
Configuration
Once you click the button, you will land on the App installation in Teams. A welcome message is displayed during the installation. Next, use the @Github handle to start interacting with the App. After that step, you will be redirected to the “connection” and “sign-in”.
At this point of the setup, your Microsoft Teams and GitHub user accounts are not linked. To link the two accounts, authenticate to GitHub using a GitHub sign-in command.
Here it would be best if you think about reliability, as removing the connected account in the future, from MS Teams or GitHub could break this entire automation. Maybe adding a company “ service account” on both sides with all the needed permissions is the right way to do this. Another solution could be that GitHub changes how the App is designed regarding integration and allow, for instance, org secrets (if you are reading this, GitHub team members, you can ping me).
To have a differentiator with this PR integration and start structuring your operations, you might be interested in creating multiple Ms.Teams channels and linking them using GitHub labels for pull requests (“dev”, “staging”, “production”).
After that, to configure the connection, you will only need to call the @Github app in Microsoft Teams under the required channels.
Step 1: Listeners
@gitHub subscribe my-company/repo+label:”dev” pulls, comments, reviews
Step 2: Filters (to remove the noise)
@GitHub unsubscribe my-company/repo issues, commits
Note: Snoozing the Microsoft Teams App Banner Notifications was impossible the last time I integrated repositories into Teams channels. Therefore, you should do this outside working hour to minimize the disturbances (if you had no plans on Sunday, now you do).
Additionally, some GitHub filters you can use are:
@github subscribe org/repo commits for commit notifications from a default branch.
@github subscribe org/repo commits:* for commit notifications across all the branches.
@github subscribe org/repo commits:myBranch for commit notifications from a specific branch.
@github subscribe org/repo commits:users/* for commit notifications from a pattern of branches
Now that this is functional, you can monitor things in Microsoft Teams. Congratulations!
Any new event that happens in a PR or into a GitHub issue (like comment/review/close/merge etc.) will be added as a reply to the parent Microsoft card. How cool is that? You can perform actions like:
- Open a new issue.
- Close and reopen existing issues.
- Comment on issues and pull requests.
Some users will tell you it is too much information, so you might only want to implement the below deployments monitoring solution with your team.
Deployment notifications
If you are only interested in tracking the latest deployments to dev, stage, and production, nothing is blocking you from creating a channel and using :
@github subscribe/unsubscribe org/repo deployments
You can find more information and API capabilities here.
I am also a massive fan of “Deploy Cards” and will let you choose the best solution for your team.
Scheduled reminders
You can configure schedule reminders for pending pull requests. With this feature, you get periodic reminders of pending pull requests. The scheduled reminders are a must for all teams, the best way to start the day, or a great way to start the week, ensuring no PR is left behind from the previous week.
Conclusion
Once you have mastered all the capabilities offered here, you could probably think about auto-assigning “PR GitHub labels” and enhancing this piece with “Round-Robin Code Reviews Algorithms”. This article is not intended to replace the official GitHub documentation but was created to socialize the topic and open the discussion in the comments below.
Feel free to subscribe to my profile to be updated on future articles if you still need to do it. You can find me on LinkedIn and X, too. Let me know your thoughts, and feel free to join the conversation below. Don’t forget to hit the 👏 Thank you!
Dimitri Pletschette 🚀 LinkedIn | Medium | X | Microsoft | Mastodon