Azure DevOps extensions are a game-changer for teams looking to streamline their workflow and boost productivity. They offer a wide range of capabilities, from automated testing and deployment to project management and reporting.
Extensions can be easily installed and configured within the Azure DevOps platform, with many available for free. This makes it simple for teams to get started with new tools and workflows without incurring additional costs.
One of the most significant benefits of Azure DevOps extensions is their ability to integrate with other tools and services. This allows teams to create seamless workflows that span multiple platforms and systems.
Azure DevOps Extensions
Azure DevOps Extensions offer a wide range of project- and team-focused capabilities. These extensions can be found on the Azure DevOps marketplace.
To contribute to a hub group, you'll need to specify the type of contribution, the ID of the hub group, and the short ID of your contribution. For example, the ms.vss-web.hub type is defined in the vss-web extension published under the ms publisher, and it declares optional and required properties such as name and order.
Here's a table of the most common hub groups in Azure DevOps that you can contribute hubs to:
Note that most extensions contribute to the project level, and you can add an icon property to your contribution so it can be used directly by name.
Hubs and Groups
Hubs and Groups are the primary navigation elements in Azure DevOps. Files, Releases, Backlogs, and Queries are examples of hubs.
A hub belongs to a hub group, and hub groups can exist at the organization or collection level or the project level. Most extensions contribute to the project level.
The following table describes the most common hub groups in Azure DevOps that you can contribute hubs to.
You can contribute a hub to a hub group using the az devops extension command, as shown in Example 3. This requires specifying the type of contribution, the full ID of the hub group, and the short ID of the hub.
Information
You can get detailed information about an extension by using the az devops extension show command. This command allows you to view the specifics of an extension, which is useful for understanding its functionality and capabilities.
To use this command, you'll need to refer to the Get started with Azure DevOps CLI documentation for instructions on how to get started.
The az devops extension show command provides a straightforward way to list extension details, making it easy to explore and understand the various extensions available for Azure DevOps.
Accessing Features
You can't access extension features for one of the following reasons. Most extensions require at least Basic access, not Stakeholder. For example, you can install the free Code Search extension, but each user must have at least Basic access to search for code.
Some extensions require users to have a certain level of access to work properly. This can be frustrating if you're used to working with Stakeholder access.
The extension's description in the Visual Studio Marketplace, Azure DevOps tab, can give you more information about the access requirements.
To access an extension, check if your trial has expired, especially if you're using an organization and started a free extension trial. This can be a common issue if you're not keeping track of your trials.
If you've paid for an extension, make sure you've assigned it to users in your organization. This is a crucial step to ensure everyone can access the extension's features.
Here are some reasons why you might not be able to access an extension:
- Most extensions require at least Basic access, not Stakeholder.
- Free extension trials might have expired.
- Extensions might not be assigned to users in your organization.
Terraform
Terraform is a game-changer for DevOps teams, dominating the Infrastructure as Code (IaC) world with its predictable infrastructure configuration and deployment.
This powerful tool has taken the industry by storm, making it a must-have in any DevOps team's toolbelt. It brings the full capabilities of Terraform to Azure DevOps operations, enabling teams to launch VMs or create entire environments in tandem with other actions.
The Terraform extension for Azure DevOps provides cross-provider Infrastructure as Code (IaC) support, allowing teams to efficiently manage resources across vendor boundaries from a central location. This is a powerful feature that maximizes the efficiency of organizations already facing the challenge of becoming multi-cloud.
With the Terraform extension, teams can simply add Terraform code to implement infrastructure in a new provider, plug it into a workflow, and let the extension do the rest. This seamless integration is a huge time-saver, eliminating the need for changes to existing workflow logic.
The Terraform extension is available in the Azure DevOps Marketplace, where you can find it under the name "Custom Terraform Tasks".
Docker Build Task
Docker Build Task is a game-changer for DevOps teams. It brings Docker build, push, and compose functionality into Azure DevOps with special features for added support of Azure Container Service.
Docker is the 1927 Yankees of virtualization, sweeping the DevOps world to become the de-facto standard. Containers, and specifically the Docker structure, have revolutionized the way teams build and deploy applications.
Most DevOps teams are already using Docker in some way, whether it's for local development flexibility or full integration with a container orchestration system like Kubernetes. The Docker Build Task extension allows teams to fully integrate Docker builds into any phase of the Azure DevOps development lifecycle.
Making use of this extension can bring a lot of value, from building containers to capture changing code as GitOps, to responding to supply chain events like security updates or new versions of software. It's a fantastic tool for any toolbox.
The Docker Build Task extension can be found on the Visual Studio Marketplace, at https://marketplace.visualstudio.com/items?itemName=lambda3.lambda3docker.
Incredibuild
Incredibuild brings the Incredibuild BuildConsole into Azure DevOps to significantly decrease build time in Visual Studio.
This extension is perfect for time-sensitive projects where speed is crucial. Everything in the Cloud is time-sensitive, from responding to events automatically to scaling in or out based on activity.
By taking advantage of the Incredibuild BuildConsole, developers can capture time savings in every build. This can be used to spend those savings in additional testing or faster time to delivery.
Developers can inject raw power into the software development lifecycle with Incredibuild. Sometimes, a simple injection of power is the quickest way to achieve great results.
Code Vulnerability Review
Code vulnerability review is a crucial step in ensuring the security of your Azure DevOps extensions. You can check the libraries used in your extension for known vulnerabilities by looking at the package*.json files.
Extensions might contain third-party components that could harbor vulnerabilities, so it's essential to review these components. Conducting a basic review can help identify critical security issues.
You can use SAST tools like Snyck to check for vulnerabilities or do it manually by checking the libraries' versions listed in the package*.json files on the site. Microsoft also performs security scanning of extensions before they are made available on the Azure DevOps Marketplace.
This scanning process aims to detect malicious code or activities, offering some assurance that published extensions meet baseline security standards.
Cost Insights
Cost Insights is a game-changer for Azure Cloud costs. The Azure Cost Insights extension provides visibility into Azure Cloud costs by interacting with the Azure Costs APIs directly.
This integration enables the extension to provide highly accurate data without exposing the data itself or pulling the data out of Azure. It's easy for Cloud costs to quickly spiral out of control if not properly monitored and managed.
From the first VM, teams should be conscious of their spend and ensure that costs lead directly back to benefits. Effective cost management adds real business value.
Ensuring that the activity of managing costs is not disruptive to the work effort of DevOps teams is crucial to balancing the needs of both finance and technical organizations. In many cases, effective cost management is a direct product of greater and shared visibility across those organizations.
The Azure Cost Insights extension can be found at https://marketplace.visualstudio.com/items?itemName=keesschollaart.AzureCostInsights.
Definition of Done
The Definition of Done is a critical project component that ensures all parties are on the same page. It promotes visibility of done definitions from teams to work items and more, tracked in tabs in Visual Studio for quick and convenient reference.
Delivery Plans help teams understand their position in the DevOps organization across time, but defining done can sometimes be the hardest part of a project. The Definition of Done extension supports team velocity by promoting visibility of done definitions.
Clearly communicating, documenting, and agreeing to the definition of done is a major facilitator for effective DevOps teams. This helps prevent misunderstandings of requirements and the work is not complete, which can be frustrating and damaging to a project.
The Definition of Done extension helps with the heavy lifting by ensuring that all parties are on the same page. This can be a significant source of technical debt, especially if it is a frequent event in an organization.
You can find the Definition of Done extension on the Visual Studio Marketplace.
What Are
Azure DevOps Extensions are custom-built tools that can be added to the Azure DevOps platform to enhance its functionality. They can be used to automate tasks, integrate with other tools, and improve the overall development and deployment process.
These extensions can be created by Microsoft or by third-party developers, and they can be easily installed and managed within the Azure DevOps interface.
Extensions can be used to automate tasks such as code reviews, testing, and deployment, freeing up developers to focus on more complex and creative tasks.
Some popular Azure DevOps Extensions include the Azure Pipelines Extension, which allows for continuous integration and delivery, and the Azure Test Plans Extension, which enables manual and exploratory testing.
Installation and Removal
You can list the extensions installed in your organization with the az devops extension list command. This command is a great way to get an overview of what's available.
To install an extension, sign in to your organization, browse the marketplace, search for the extension, select "Get It Free", and then select your organization. This simple process makes installing extensions a breeze.
The az devops extension list command is a great starting point, and you can also install extensions via the CLI with the az devops extension install command.
You can uninstall an extension using the az devops extension uninstall command, which requires the extension name, publisher name, and organization URL. The command is as follows:
For example, to uninstall the "Timetracker" extension without prompting for confirmation, you can use the following command: az devops extension uninstall --extension-name Timetracker --publisher-name PublisherName --org https://dev.azure.com/MyOrganizationName/ --yes.
Update Your
Updating your extensions is a straightforward process, and we recommend doing it over removing and re-uploading to avoid any issues.
You can update your extension by selecting it from the list of displayed items and right-clicking to select Update, or by using the az devops extension search command to search for the extension first.
To update your extension, you'll need to make the same updates to the production version as you do to the private version, and then browse to the .vsix for your extension and upload it.
The updated version of your extension will automatically get installed to accounts that have it already installed, and new accounts where the extension is installed in the future will also receive the latest version.
You don't need to maintain two copies of source code for your extension, just two manifest files - one for each extension.
Here's a step-by-step guide to updating your extension:
- Select an extension from the list of displayed items.
- Right-click and select Update for the publisher.extension-dev, for example.
- Validate your extension.
- Make the same updates to the production version, publisher.extension, for example.
- Browse to the .vsix for your extension and upload it.
Parameters
When uninstalling an extension, you'll need to specify the name of the extension to uninstall, along with the publisher's name and the organization URL.
The extension name is required, and it's the name of the extension you want to remove. The publisher's name is also necessary, as it identifies the company that created the extension.
To configure the default organization, you can use the `az devops configure` command with the `-d organization=ORG_URL` option. This will set the default organization for future commands.
The organization URL is required if you haven't configured a default organization or if it's not picked up from your Git configuration. You can specify it using the `--org` option followed by the URL.
Here are the required parameters for uninstalling an extension:
You can also use the `yes` parameter to avoid prompting for confirmation. This can be useful if you're automating the uninstall process.
Troubleshooting
Troubleshooting can be a frustrating process, but there are some common issues you can check first. Make sure you've installed the extension correctly, as described in the "Installation" section.
Azure DevOps extensions can sometimes conflict with each other, so if you're experiencing issues, try disabling all extensions and then re-enabling them one by one to identify the problematic one.
If you're still having trouble, check the extension's documentation for troubleshooting tips specific to that extension, as mentioned in the "Extension Documentation" section.
Installation Issues
Installation Issues can be a real challenge. One common issue is that the installation software may not be compatible with your operating system.
Make sure you're using the correct version of the software for your OS. For example, if you're running a 64-bit Windows, you'll need to download the 64-bit version of the software.
Incorrect installation of the software can also cause problems. This can happen if you don't follow the installation instructions carefully.
Double-check that you've followed each step of the installation process. If you're still having trouble, try reinstalling the software from scratch.
A faulty installation disk or USB drive can also cause issues. Make sure the installation media is in good condition and free from errors.
In some cases, a corrupted installation file can prevent the software from installing correctly. Try downloading the installation file again and see if that resolves the issue.
Poor internet connectivity can also cause installation issues. Ensure that your internet connection is stable and fast enough to support the installation process.
Missing Preview
If you're missing a preview extension, it might be because it's no longer available as a preview.
After a preview period, an extension is generally available as a paid extension. A grace period might be offered before you have to buy the extension.
Your extension will automatically convert to a free trial before you have to buy it. This gives you some extra time to decide whether to purchase the extension or not.
Upload Issues
Upload Issues can be frustrating, but let's tackle them together. You might be running into issues uploading extensions to Azure DevOps Server.
You must be a member of the Team Foundation Administrators group to upload extensions. This is a straightforward requirement that can be easily checked.
Having Edit instance-level information permissions for the Azure DevOps Server where you want to upload extensions is also crucial. Without these permissions, you won't be able to upload extensions.
It's essential to verify your permissions and group membership before attempting to upload extensions to avoid further complications.
Manifest Review
When reviewing the manifest of an Azure DevOps extension, you can check the scope of permissions and operations it can perform by reading it from the installation page.
The extension manifest defines the scope of permissions and operations that the Azure DevOps web extensions can perform, and you can rename it from vsix to zip and unzip it to inspect the scopes described in the manifest.
You can verify that the extension doesn’t request more permissions than necessary for its functionality by examining the manifest, and permissions granted must match the functionalities that the extension claims to offer.
For example, if an extension requests permissions for “Test Management (read)” or “Work Item (read)”, these should align with its stated purpose.
The official guide on manifest runtime attributes provides details on the full list of scopes, which you can refer to for more information.
You can also inspect the “contributions” section of the manifest to check if the extension contains tasks, and then locate the folder containing the task and inspect it.
Here's an example of how to dezip a jar file to inspect it, which was used to execute a java program on the devops agent.
Auditing the extensions used in your Azure devops organization is also crucial, and one interesting article found a guy who analyzed thousands of Azure devOps extensions / tasks published on the market place.
Debug Your
To debug your extension, add the baseUri property to the manifest. This speeds up development without redeploying the extension each time you change the source code.
You can use Visual Studio or Browser Developer Tools to debug your extension. This makes it easier to identify and fix issues.
Change the manifest to load the extension from your local web server instance, such as IISExpress in Visual Studio. This allows you to see the changes in real-time.
Deploy and install the debugging extension only once. This will save you time and effort in the long run.
Run your local web server in SSL mode to avoid errors in the browser console during extension IFRAME loading. Azure DevOps demands a secure source, so this is a must.
Why Doesn't My Desired Content Show a Download Button
If your desired content doesn't show a download button, it might be because the extension uses Azure DevOps features that aren't released yet for Azure DevOps Server.
There are a few reasons why this could be the case. Some extensions are designed to work only with Azure DevOps Services, which means they won't be available for download on-premises.
Extensions that use Azure DevOps features not yet released for Azure DevOps Server are a common culprit. This can be frustrating, especially if you're eager to try out the latest features.
Other times, the extension manifest might indicate that the extension is only available for Azure DevOps Services (targets = Microsoft.Visualstudio.Services.Cloud). This means it's not meant for on-premises use.
Additionally, the extension manifest might indicate that the extension is an integration (targets = Microsoft.Visualstudio.Services.Integration). This can also prevent the download button from appearing.
If you're still unsure about why your desired content isn't showing a download button, take a closer look at the extension manifest to see if it provides any clues.
Frequently Asked Questions
Are Azure DevOps extensions safe?
Azure DevOps extensions undergo rigorous security scanning to detect malicious code, ensuring a baseline level of security. However, it's still essential to review extension permissions and usage before installation.
Sources
- https://learn.microsoft.com/en-us/azure/devops/marketplace/install-extension
- https://learn.microsoft.com/en-us/azure/devops/extend/reference/targets/overview
- https://www.incredibuild.com/blog/top-azure-devops-extensions
- https://medium.com/@SecurityArchitect/how-to-assess-the-security-of-an-azure-devops-extension-from-the-visual-studio-marketplace-a37635ea3b7f
- https://learn.microsoft.com/en-us/azure/devops/extend/publish/overview
Featured Images: pexels.com