Extensibility points
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
Extensions enhance the Azure DevOps user experience by contributing new capabilities. In this article, we highlight the most common extensibility points that your extension can target. For more information about the Azure DevOps extensibility model, see the Contribution model.
The Contributions Guide extension is a sample extension. Install this extension into your organization. Once it's installed, you see the extensibility points that are available. We recommend you install this extension into a personal or test organization. The source for this extension is also available. Also, find a sample of a repository creation extension point here.
For more information, see the following references:
- azure-devops-extension-api
- azure-devops-extension-sdk
- azure-devops-extension-sample
- installed extension api
Hubs and hub groups
Hubs and hub 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. The Files hub, for example, belongs to the project-level Azure Repos hub group. 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.
Name | ID | Level | Preview image |
---|---|---|---|
Azure Boards | ms.vss-work-web.work-hub-group |
Project/team | ![]() |
Azure Repos | ms.vss-code-web.code-hub-group |
Project/team | ![]() |
Azure Pipelines | ms.vss-build-web.build-release-hub-group |
Project/team | ![]() |
Azure Test Plans | ms.vss-test-web.test-hub-group |
Project/team | ![]() |
Project settings | ms.vss-web.project-admin-hub-group |
Project | ![]() |
Organization settings | ms.vss-web.collection-admin-hub-group |
Organization or collection | ![]() |
Example
The following example shows how to contribute a hub to 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.hub
is the type of this contribution. This type is defined in thevss-web
extension published under thems
publisher. This type declares optional and required properties that are required by contributions of this type (for example, name, order, and so on).ms.vss-code-web.code-hub-group
is the full ID of the hub group contribution this hub is targeting. This contribution is declared in thevss-code-web
extension published under thems
publishermy-custom-hub
is the short ID of this contribution;{publisherId}.{extensionId}.my-custom-hub
is the full ID
Add an icon to your menu or toolbar
Add an icon property, so it can be used 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"
}
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 Boards menu and toolbar
Name | Target ID | Preview image |
---|---|---|
Work item query menu | ms.vss-work-web.work-item-query-menu |
![]() |
Work item query results toolbar menu | ms.vss-work-web.work-item-query-results-toolbar-menu |
![]() |
Work item query results menu item | ms.vss-work-web.query-result-work-item-menu |
![]() |
Work item query results tab | ms.vss-work-web.query-tabs |
![]() |
Work item for context menu | ms.vss-work-web.work-item-toolbar-menu |
![]() |
Backlog item menu | ms.vss-work-web.backlog-item-menu |
![]() |
Sprint board pivot filter menu | ms.vss-work-web.sprint-board-pivot-filter-menu |
![]() |
Board pivot filter menu | ms.vss-work-web.backlog-board-pivot-filter-menu |
![]() |
Card menu | ms.vss-work-web.backlog-board-card-item-menu |
|
Product backlog tab | ms.vss-work-web.product-backlog-tabs |
![]() |
Iteration backlog tab | ms.vss-work-web.iteration-backlog-tabs |
![]() |
Portfolio backlog pane | ms.vss-work-web.portfolio-backlog-toolpane |
![]() |
Product backlog pane | ms.vss-work-web.requirement-backlog-toolpane |
![]() |
Iteration backlog pane | ms.vss-work-web.iteration-backlog-toolpane |
![]() |
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 |
![]() |
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 |
![]() |
Pipeline details view, header button | ms.vss-build-web.pipelines-header-menu |
![]() |
Pipeline details view, folder context menu | ms.vss-build-web.pipelines-folder-menu |
![]() |
Azure Pipelines tasks
Tasks perform work in a build or release. For more information, learn how to contribute a build or release task.
Azure Repos menu and toolbar
Name | Target ID | Preview image |
---|---|---|
Source item (grid) menu | ms.vss-code-web.source-grid-item-menu |
![]() |
Source item (tree) menu | ms.vss-code-web.source-tree-item-menu |
![]() |
Source item (grid and tree) menu | ms.vss-code-web.source-item-menu |
|
Change list item menu | ms.vss-code-web.change-list-item-menu |
|
Change list summary item menu | ms.vss-code-web.change-list-summary-item-menu |
|
Git branches tree menu | ms.vss-code-web.git-branches-tree-menu |
![]() |
Git pull request actions menu | ms.vss-code-web.pull-request-action-menu |
![]() |
Git pull request tabs (pivots) | ms.vss-code-web.pr-tabs |
![]() |
Git commit listing menu | ms.vss-code-web.git-commit-list-menu |
![]() |
Git commit detail menu | ms.vss-code-web.git-commit-details-menu |
![]() |
Azure Test Plans menu and toolbar
Name | Target ID | Preview image |
---|---|---|
Test run grid menu | ms.vss-test-web.test-run-grid-menu |
|
Test plan suites tree menu | ms.vss-test-web.test-plans-suites-context |
|
Test plan hub pivot tab | ms.vss-test-web.test-plan-pivot-tabs |
![]() |
Other extensibility points
- Dashboard widget: An extension can contribute a new type of widget that can be added by users to a dashboard. Learn how to contribute a dashboard widget.
- Work item form: The work item form is enhanced by extensions 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 events are sent to in Service Hooks. An extension can contribute consumer services. These services get configured by a user (or programmatically), to send events to that service. For more information, see contribute a service hooks consumer.
- Features:
Name: Preview feature (hosted only)
Target ID: ms.vss-web.managed-features
Name: Feature (on-premises only)
Target ID: ms.vss-web.managed-features-onprem