Integration of Azure DevOps in Microsoft Teams and why is it useful?
A lot of customers asked about the options that Microsoft Teams offers to integrate Azure DevOps into it. In this post I want to give you a brief overview of the possible uses:
- Using Azure DevOps Connectors to get notifications in a Microsoft Teams channel
- Integrate Azure DevOps with predefined Applications which are like small Chat Bots
- Integrate Azure DevOps Dashboard in a Microsoft Teams channel tab
Contents
- How to combine Teams and Azure DevOps?
- Option 1: Use Azure DevOps or Azure DevOps Server connector to get notifications in a Microsoft Teams channel
- Option 2: Use Applications to manage Pipelines, Repositories, Boards and get notified
- Option 3: Integrate Azure Boards or Dashboards into Microsoft Teams
- Summary
How to combine Teams and Azure DevOps?
Let us now start with the main goal of this blogpost. To answer the question “How can we integrate Azure DevOps in Teams?” and maybe more important “Is it really useful?”
An answer to the first question – we have different options to integrate Azure DevOps in Teams. As a little reminder, a team in Microsoft Teams can consist of different channels. In a channel you can write, group call and there is a file storage for each channel. You can additionally connect other services or applications provided in a dedicated Apps hub to a channel or a whole team.
So, to handle the integration, it depends on what functionality we want to use. There are three direct options which I will present you.
First, we need some Prerequisites and Clarifications
To do the following steps, you will need:
- An Azure DevOps organization with a Project
- The needed access rights in Azure DevOps
- A Microsoft Teams channel or team
Also, I want to clarify some wording for the following explanation. There are different mentions of the word “Team”. First, there is the product Microsoft Teams. Moreover, you can create groups called “Teams” in Microsoft Teams. In Azure DevOps, you can create one or more teams in a project. This may be confusing at first, but you will get used to it. Please note that if you create an Azure DevOps project, there is always one standard team created which has the same name as the project itself. But how to configure and use them is another story. Let’s just say we have an Azure DevOps team, the product Microsoft Teams and a normal team which is created in Microsoft Teams.
For our explanation below I created a Demo Azure DevOps organization and used the SonarCube Project from the Azure DevOps Demo Generator. The project uses the SCRUM framework and brings predefined work items as well as two predefined teams with it.
Then I configured the Backlog, where the work items (Product Backlog Items in this case) are created and managed for each of the two Azure DevOps Teams and assigned the work items to the respective Team Backlogs. It is possible to use different backlog levels for each work item like a feature or the Product Backlog Items, but we go with the feature level for our demonstration. Following you can see the Backlog of Team 1 in the SonarCube Project.
I additionally created very rudimentary Azure Dashboards for the different Azure DevOps teams as well as a dashboard for the overview of the whole project and all teams overall.
Now we have our Azure DevOps organization, a project, and Azure DevOps team, and work items we can get notifications on which means finally…
…Ready, Steady, Go!
Option 1: Use Azure DevOps or Azure DevOps Server connector to get notifications in a Microsoft Teams channel
With Azure DevOps connectors in Teams, you will be able to get notifications based on different events happening in Azure DevOps.
The information about changes will be posted in the channel where the connector is set up. Note that you can configure more than one connector. You need to configure one connector for each event you want to get notified on.
If you navigate to the channel menu via the three dots right of the channels name, you can select the Connectors Option:
Then we configure the needed Connector. In our case the one for Azure DevOps. It may be needed to add your Azure DevOps account or reconnect to it before the set up starts working. We use the demo project in our demo organization and want to set up a notification if a work item is created in the scope of Team 1. We will see that all selections of teams, organizations and projects will be prompted automatically for as long as our account has the needed access rights. You will also get an error message if the connector is already connected.
To test our newly set up connector, we go to the Azure DevOps in the Azure DevOps Team 1 backlog and create a new work item.
And after a short delay of about ten seconds, the notification is automatically created in our channel.
We can now create connectors for each Azure DevOps teams, work item or the whole project.
Option 2: Use Applications to manage Pipelines, Repositories, Boards and get notified
We can achieve the same functionality as in option two and more with the use of the provided apps for Microsoft Teams.
- Azure Boards provides us with the functionality to create or manage work items and get notified if changes occur
- Azure Repos allows us to manage and get notified if code changes, pull requests or other changes in the repositories happen
- Azure Pipelines allow us to track and manage pipeline runs
- Azure DevOps allows to integrate notifications of Azure DevOps in messages, search for work items and manage Azure DevOps
How can we set up the applications?
To integrate the applications, you simply search for Azure in the bottom left Apps tab and click on the desired app you want to add. Then the options to add them to a channel or a whole team is provided together with a short functionality introduction.
Note that not all apps can be added to individual chats. But you can select channels which is done with the “Add to Team” option.
After we selected the desired app extension, we need to connect the Azure DevOps organization and do additional configurations like selecting dashboards to show, select teams, repositories with branches or pipeline features to manage and track. All depending on the selected application.
We switch now to the channel where the extension is active. From here, we can now use the predefined commands.
Each application has its own unique set of commands and functionality. As its functionality may change, I will provide the links to the official documentations for each application. Also, the set-up is explained there in more details. I will not go further into the detail of the commands in this blogpost.
- Azure DevOps Application
- Azure Boards Application
- Azure Pipelines Applications
- Azure Repos Applications
Now let us get into two small examples
As an example, we set up the same functionality with the connectors above with the Azure Boards application. For this we need to type in @Azure Boards subscriptions. After that, the active subscriptions are shown, and we can set up a new one or manage our existing subscriptions.
Here, we can select a little less than the connector provides but get all necessary information on work item events like Comment, Create, Delete, Updated or Restored. Also, we can specify a bit more details on which work item we want tracked.
After we create a new work item in Azure DevOps, we get notified about the creation of this team by the Azure Boards feature. As we set up the Azure DevOps connector before, it also notifies us, which shows the difference between the notifications.
Option 3: Integrate Azure Boards or Dashboards into Microsoft Teams
To track different Azure DevOps teams across organizations you can integrate the dashboards into a sperate Microsoft Teams channel tab. This may look as shown below:
As said before, there are different command palettes for the other applications, so just try it out and see what fits your needs.
Summary
In conclusion, I want to state my opinion on the provided topics. I think that the options to integrate Azure DevOps in Microsoft Teams are very useful. Especially if you want to get an update on bugs, service requests or such issues in one communication medium. Also, you can get notified on work items assigned to yourself which is quite useful. especially if working in different projects or organizations for different customers. Same goes for tracking pipeline runs, get notified on fails, approve different steps of those pipeline runs or manage pull requests in the repository app. On the other hand, it should be evaluated what kind of notifications you subscribe to as many notifications may get a bit confusing as they add up. Also, it is a bit of a personal preference if you want to create work items from a Teams channel in Azure DevOps. I personally go for that directly into Azure DevOps and do it there directly. Also, for most of the notifications, if you are mentioned in a work item, you receive per default an e-mail from Azure DevOps. Keep in mind to switch off those notifications if you use it in Microsoft Teams. The possibility to show dashboards is quite handy, for instance, if one does not want to access Azure DevOps directly, but wants to track different projects or teams across Azure DevOps organizations.