Share via


Extensibility points

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).

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.hub is the type of contribution. The vss-web extension published under the ms publisher 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-group is the full ID of the hub group contribution that this hub targets. The vss-code-web extension published under the ms publisher declares this contribution.
  • my-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 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 Screenshot of completed build actions.
Build definitions menu ms.vss-build-web.build-definition-menu Screenshot of build definition actions.
Test results toolbar action ms.vss-test-web.test-results-actions-menu Screenshot of test results toolbar action.
Test result details tab ms.vss-test-web.test-result-details-tab-items Screenshot of test result details tab.
Release pipeline explorer context menu ms.vss-releaseManagement-web.release-definition-explorer-context-menu Screenshot of definition explorer context menu.
Release pipeline explorer toolbar menu ms.vss-releaseManagement-web.release-definition-explorer-toolbar-menu Screenshot of definition explorer toolbar menu.
Release summary toolbar menu ms.vss-releaseManagement-web.release-editor-tool-bar-menu Screenshot of release summary toolbar menu.
Release summary tab ms.vss-releaseManagement-web.release-details-view Screenshot of release summary tab.
Release summary section ms.vss-releaseManagement-web.release-details-summary-tab Screenshot of release summary section.

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.