Azure DevOps Services extensibility points

In this article

Extensions extend and enhance the Azure DevOps Services user experience by contributing new capabilities. This guide highlights the most common extensibility points that your extension can target.

Note

To learn more about the Azure DevOps Services extensibility model, see contribution model for an overview.

Other useful references

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 in this GitHub pull request.

Hubs and hub groups

Hubs and hub groups are the primary navigation elements in Azure DevOps Services. Files, Releases Backlog, and Queries are examples of hubs. A hub belongs to a hub group. The Files hub, for example, belongs to the project-level Code hub group. Hub groups can exist at the organization (also known as a collection) level or the project level, but most extensions contribute to the project level.

Extensions can contribute both hubs and hub groups. A common extensibility scenario is to contribute a hub to an existing hub group. For example:

Targetable hub groups

Here are the most common, Microsoft-provided hub groups that hubs can be contributed to:

ms.vss-web.hub is the type of this contribution. This type is defined in the vss-web extension published under the ms 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 the vss-code-web extension published under the ms publisher

my-custom-hub is the short ID of this contribution; {publisherId}.{extensionId}.my-custom-hub is the full ID

Build and release tasks

Service hooks

A "consumer" is the service that events are sent to in Service Hooks. An extension can contribute consumer services. These services are configured by a user (or programmatically), to send events to that service. For more information, see contribute a service hooks consumer.