Create a consumer service for service hooks
TFS 2017
With service hooks, you can do tasks on other services when events happen in your project. For example, create a card in Trello when a work item gets created or send a push notification to your team's mobile devices when a build fails. Service hooks can also be used in custom apps and services, as a more efficient way to drive activities when events happen in your projects.
Tip
Check out our newest documentation on extension development using the Azure DevOps Extension SDK.
How service hooks work
Service hook publishers define a set of events. Subscriptions listen for the events and define actions to take based on the event. Subscriptions also target consumers, which are external services that can do their own actions, when an event occurs.
Custom consumer service
This article walks through developing an extension that implements a sample consumer service that includes:
- Supported events that trigger actions to be taken
- Code pushed
- Pull request created
- Pull request updated
- Supported actions to take when events occur
- Do action
Note
This article refers to the home directory for your project as "home".
Create the extension
- (Optional) Add an icon - a square image in the
images
folder that identifies your extension. It's displayed in the Marketplace and when someone installs your extension. You don't need to add an icon for your extension to work, but you can use it alongside your extension name, like in the following image.
Note
Name the image logo.png
, or remove the "icons" sections from the manifest file if you wish to skip this step.
Create the manifest file and populate it. The manifest file defines both your extension and the consumer service.
Create a json file (
vss-extension.json
, for example) in thehome
directory of your extension with the following contents:
{
"manifestVersion": 1,
"id": "tools",
"version": "0.1.0",
"name": "Fabrikam Tools",
"publisher": "fabrikam",
"targets": [
{
"id": "Microsoft.VisualStudio.Services"
}
],
"categories": [
"Azure xxx"
],
}
Note
Make sure to update the publisher
property.
Valid values for categories are: Azure Repos
, Azure Boards
, Azure Pipelines
, Azure Test Plans
, and Azure Artifacts
.
For a consumer service, the following properties are required:
Property | Description |
---|---|
manifestVersion | Number corresponding to the version of the manifest format. |
id | Unique ID for your consumer service. |
version | String specifying the version of the consumer service. |
name | Name of the consumer service. |
publisher | Identifier of the publisher. |
categories | Array of strings representing the categories your consumer service belongs to. For more information, see Required attributes. |
targets | Products and services supported by your integration of extension. For more information, see Installation targets. |