Customizing Azure DevOps with Extensions
In this post, App Dev Manager Larry Duff shows how to customize Azure DevOps with Extensions.
Why do you paint rooms in your house? Add new wheels or fuzzy dice to our cars? We want to make it our own. When it feels like your invested in it, you appreciate it more. Software is no different. When software implements your policies and procedures you are more productive and happier to use it. Nothing is perfect “out of the box.” You usually spend a good amount of time configuring, but even after that there is usually room for improvement. In the case of Azure DevOps Services/ Server you can add extensions to bridge and make the product yours.
Azure DevOps allows you to extend in any of the services that are provided.
As you look to extend there are two ways you can do this, from the Marketplace or create your own custom extension.
Before embarking on building your own extension, I would endorse looking through the Marketplace for a solution, when I last looked there were over 1250 extensions available to add to your system. But remember to review closely what you’re looking at. Let’s look at the anatomy of a listing for an extension.
- Author – If the extension is from a trusted company certainly makes it easier to install. But just because it doesn’t make it suspect, you just need to dig deeper.
- How many installs – This is a great bellwether on how well the extension does its job. There has been a word of mouth spread about using it, or maybe this is a key gap in Azure DevOps being filled.
- Rating – Two pieces to this… do the number of reviews line up with the number of installs? If there aren’t a lot of reviews but lot of installs, maybe the extension is getting installed but not used. Are the reviews that are posted good? Remember that someone who has a bad experience will tell fifty people, and only one in fifty people that have a good experience will write a review, so bad reviews don’t completely tell the story.
- Cost – Very few extensions cost you anything for the extension. But remember that there could be services associated with the connection that could have a cost.
- Service it extends – Tells you were you’ll use the extension, sometimes the extension has multiple pieces and/or will affect multiple systems.
- Products this is used with – VERY IMPORTANT, will it work on the system I’m using?
- Source availability – Another important factor, do I need to see how it’s built, do I want to contribute?
- How often updated – Doesn’t tell you much by itself, but should it be updated because what it connects to is getting updated? An old extension that doesn’t use the latest features may be worse that having nothing at all.
When you install you get one final check to ensure it’s what you want. Pay attention to the permissions and make sure the extension only accesses areas that you expect.
Once you complete the install, verify it’s installed via the dashboard.
We know where to find extensions and how to install them. Let’s list out some of the most useful extensions to install in your system.
Azure DevOps CLI
Control Azure DevOps from the command line. Work in a streamlined task/command-oriented manner without having to worry about the GUI flows. Works with Pipelines, Boards, Repos, Artifacts and DevOps commands to the Azure CLI.
Azure DevOps Open in Excel
Useful for Project Management roles who need more than standard reports, allows for bulk editing work items. Leverage Excel tools to analyze and visualize a large number of work items. Work items that are opened in Excel can be edited and published back to Azure DevOps.
Work Item Visualization
In Azure DevOps Services you can add, edit and display work items in query results and various boards. With this extension you can visualize these work items from within the work item form. Some concern by users, hasn’t been updated since Apr 2018.
Azure Boards Microsoft Teams app
Get notified whenever work items are created, updated, commented on, deleted or restored. Use messaging extension to search and share work items and create new work items. Convert a conversation in the channel into a work item using message actions. Use work item URLs to get preview of work items. This will help to add context to the conversations in the channel.
Azure Boards Slack app
New release that replaces popular Slack Integration. Create work items using slash command. Convert a conversation in the channel into work item using message actions. Get notified whenever work items are created, updated, commented on, deleted or restored. Use filters to customize what you hear in the channel.
Search across all the projects, teams and repositories to which you have access. Similar to Work Item Search, available as built in extension.
Pull Request Merge Conflict Extension
Review and resolve pull request merge conflicts on the web. Before a Git pull request can complete, any conflicts with the target branch must be resolved. With this extension, you can resolve these conflicts on the web, as part of the pull request merge, instead of performing the merge and resolving conflicts in a local clone.
Pull Request Dashboard
Provides a place that pull requests across all repositories can be viewed on a single page.
Replaces tokens in files with variable values as a step in the pipeline. One of the top rated, most reviews talk about it being indispensable
Provides “Infrastructure as Code“. Install and run terraform commands to manage resources on Azure, AWS and GCP. Terraform also allows management of on-prem resources. There are two different implementations in the Marketplace, both are popular.
Resharper Code Quality Analysis
Based on the Resharper Command-Line Tools (CLT). Build task will automatically run over a thousand code quality checks for various languages.
Show how many build minutes are being used within an account. Make them visible for your team by adding Build Usage tiles to your dashboard
Monitor your pipelines from your Microsoft Teams channel. Do following things from your Microsoft Teams channel:
- Get notifications for various events related to builds and releases
- Approve release deployments from your channel
- Use filters to customize what you hear in the channel
Use the ARM Deployment outputs in your Azure Pipelines. Usually this task runs directly after the ‘Azure Resource Group Deployment’ task. Used by Azure DevOps Demo Generator.
Team Project Health
Add an overall status of your builds and releases to your dashboard.
Create Your Own Extension
There are great opportunities to extend Azure DevOps whether you grab from the marketplace or write you own. Go ahead and make Azure DevOps your own.
FYI the link for the “Build Usage” extension is incorrect — it’s points to the same URL as “Teams”.