Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022 | Azure DevOps Server 2020
Extensions add capabilities to the Azure DevOps UI and REST surface. This article lists the most common extensibility points you can target and shows the IDs you use in your extension manifest. For an overview of the extension model and contribution patterns, see the Contribution model.
Tip
If you're starting a new Azure DevOps extension, try these maintained sample collections first—they work with current product builds and cover modern scenarios (for example, adding tabs on pull request pages).
- Azure DevOps extension sample (GitHub)—a compact starter sample that demonstrates common extension patterns: https://github.com/microsoft/azure-devops-extension-sample
- Azure DevOps extension samples (legacy collection and contributions guide)—install to inspect UI targets, or view the source: https://marketplace.visualstudio.com/items/ms-samples.samples-contributions-guide and https://github.com/Microsoft/vso-extension-samples/tree/master/contributions-guide
- Microsoft Learn samples (browse Azure DevOps samples)—curated, up-to-date samples across Microsoft docs: /samples/browse/?terms=azure%20devops%20extension
If a sample doesn't work in your organization, install it into a personal or test organization and compare the extension manifest's target IDs and API versions with the current docs. For reference and APIs, see:
Hubs and hub groups
Hubs and hub groups provide primary navigation in Azure DevOps (for example, Files, Releases, Backlogs, Queries). A hub belongs to a hub group; for example, the Files hub belongs to the project-level Azure Repos hub group. Hub groups can exist at the organization/collection level or at the project level. Most extensions contribute at the project level.
The following table lists common hub groups and their contribution IDs.
Contribute a hub
This example shows a hub contribution that targets the Code hub group:
{
"contributions": [
{
"id": "my-custom-hub",
"type": "ms.vss-web.hub",
"targets": [
"ms.vss-code-web.code-hub-group"
],
"properties": {
"name": "Code Hub",
"order": 30,
"uri": "/views/code/custom.html"
}
}
]
}
ms.vss-web.hubis the type of contribution. Thevss-webextension published under themspublisher defines this type. This type defines the optional and required properties for contributions of this type (for example, name, order).ms.vss-code-web.code-hub-groupis the full ID of the hub group contribution that this hub targets. Thevss-code-webextension published under themspublisher declares this contribution.my-custom-hubis the short ID of this contribution;{publisherId}.{extensionId}.my-custom-hubis the full ID.
Add an icon to your menu or toolbar
Add an icon property so you can reference it directly by name.
We recommend providing your own icon. Using your own icon example:
"name": "Sample hub",
"uri": "dist/Hub/Hub.html",
"icon": "asset://static/sample-icon.png",
"supportsMobile": true
}
Using the Office UI Fabric Icons example:
"iconName": "Code",
"name": "Code Hub",
"order": 30,
"uri": "/views/code/custom.html"
}
Note
Icons, icon and iconName properties, don't support tab contributions. They only work for hubs, menus, and toolbars.
Settings for menus and toolbars
| Name | Target ID |
|---|---|
| Organization/collection overview toolbar | ms.vss-admin-web.collection-overview-toolbar-menu |
| Collection overview projects grid | ms.vss-admin-web.projects-grid-menu |
| Project overview toolbar | ms.vss-admin-web.project-overview-toolbar-menu |
| Project overview teams grid | ms.vss-admin-web.teams-grid-menu |
Azure Pipelines menu and toolbar
| Name | Target ID | Preview |
|---|---|---|
| Completed build menu | ms.vss-build-web.completed-build-menu |
|
| Build definitions menu | ms.vss-build-web.build-definition-menu |
|
| Test results toolbar action | ms.vss-test-web.test-results-actions-menu |
|
| Test result details tab | ms.vss-test-web.test-result-details-tab-items |
|
| Release pipeline explorer context menu | ms.vss-releaseManagement-web.release-definition-explorer-context-menu |
|
| Release pipeline explorer toolbar menu | ms.vss-releaseManagement-web.release-definition-explorer-toolbar-menu |
|
| Release summary toolbar menu | ms.vss-releaseManagement-web.release-editor-tool-bar-menu |
|
| Release summary tab | ms.vss-releaseManagement-web.release-details-view |
|
| Release summary section | ms.vss-releaseManagement-web.release-details-summary-tab |
|
Other extensibility points
- Dashboard widget: An extension can contribute a new type of widget that users can add to a dashboard. Learn how to contribute a dashboard widget.
- Work item form: Extensions enhance the work item form with new sections, tabs, actions, and custom field renderers. For more information, learn how to extend the work item form.
- Service hooks: A consumer is the service that Service Hooks sends events to. An extension can contribute consumer services. A user (or programmatically) configures these services to send events to that service. For more information, see Create a custom consumer for service hooks.