Skip to content

Latest commit

 

History

History
185 lines (117 loc) · 8.83 KB

overview.md

File metadata and controls

185 lines (117 loc) · 8.83 KB
title description ms.assetid ms.prod ms.technology ms.topic ms.manager monikerRange ms.author author ms.date
Integrate with service hooks | Azure DevOps Services
Perform tasks with other services when events happen in Azure DevOps Services projects
c0617128-b67c-4ec4-b1c9-e65e1b3ab82c
devops
devops-collab
conceptual
jillfra
>= tfs-2017
elbatk
elbatk
2/08/2019

Integrate with service hooks

Service hooks let you run tasks on other services when events happen in your Azure DevOps Services projects. For example, create a card in Trello when a work item is 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.

What is a service hook?

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 run their own actions, when an event occurs.

Service Hooks Diagram

Available services

These services are available as the target of service hooks. To learn about others apps and services that integrate with Azure DevOps Services, visit the Visual Studio Marketplace

Build and release Collaborate Customer support Plan and track Integrate
AppVeyor Flowdock UserVoice Trello Azure Service Bus
Bamboo HipChat (No longer supported) Zendesk Azure Storage
Jenkins Hubot Grafana
MyGet Office 365 Web Hooks
Slack Zapier

Create a subscription

When you integrate one of these services with Azure DevOps Services, you have to create a new subscription. In many cases, you have to do some work in the other service, too. For specific details, look at the information on the service that you're interested in.

::: moniker range=">= azure-devops-2019"

  1. Open the admin page for a project in web access.

    Open the admin page
  2. Create a subscription by running the wizard.

    Click the link to run the subscription wizard
  3. Select the service you want to integrate with.

    Select the service to integrate
  4. Select the event to trigger on and any filters (if applicable).

    Select the event to trigger on and any filters
  5. Select an action to run on the target service.

    [!NOTE] The list of available actions may be limited based on the event type you selected.

    Select an action to perform on the target service
  6. To confirm the settings are correct, test the subscription and then finish the wizard.

    Test notification 1 Test notification 2

::: moniker-end

::: moniker range=">= tfs-2017 < azure-devops-2019"

  1. Open the admin page for a project in web access.

    Open the admin page
  2. Create a subscription by running the wizard.

    Click the link to run the subscription wizard
  3. Select the service you want to integrate with.

    Select the service to integrate
  4. Select the event to trigger on and any filters (if applicable).

    Select the event to trigger on and any filters
  5. Select an action to run on the target service.

    [!NOTE] The list of available actions may be limited based on the event type you selected.

    Select an action to perform on the target service
  6. To confirm the settings are correct, test the subscription and then finish the wizard.

    Test notification 1 Test notification 2

::: moniker-end

Q & A

A: Edit subscriptions and View subscriptions. By default, only project administrators have these permissions. To grant them to other users directly, use tfssecurity.exe from the command line. For example:

tfssecurity /a+ /collection:https://dev.azure.com/fabrikam/DefaultCollection ServiceHooks PublisherSecurity/abcdef00-abcd-0000-0000-abcdef000000 ViewSubscriptions n:fabrikamfiber4@hotmail.com ALLOW

and

tfssecurity /a+ /collection:https://dev.azure.com/fabrikam/DefaultCollection ServiceHooks PublisherSecurity/abcdef00-abcd-0000-0000-abcdef000000 EditSubscriptions n:fabrikamfiber4@hotmail.com ALLOW

The GUID is the ID of the project. You can get it using the Projects REST API.

Q: What are the security implications of granting Edit subscriptions and View subscriptions permissions?

A: The user with these permissions can see all subscriptions created in the project and the notification history for those subscriptions. That user can then create any type of service hook subscription in that project. If the user sets up a subscription for a resource that they don't otherwise have permission to access, the subscription won't get triggered.

For example: if I don't have access to work items in area path XYZ, and I set up a subscription to the work item update events, I won't get notifications for updates to work items in area path XYZ. However, if another user who does have access to the work items in area path XYZ is receiving those "work item update" events, then I could see the notification history of that other user's events, which includes work item data that I don't otherwise have access to.

Q: Can I create service hook subscriptions for a project programmatically?

A: Yes. For more information, see Create a service hooks subscription.

Q: Can I remove an app's access to my organization after I've authorized it?

A: Yes. You can revoke authorizations from your profile.

  1. Go to your profile page from http://visualstudio.com.

    Make sure you start from the Visual Studio site (http://visualstudio.com) instead of your organization (https://dev.azure.com/{orgName}) because, right now, your profile accessed from your organization will take you to the wrong implementation of the authorizations management feature.

  2. Manage your authorizations.

    Click Manage applications to manage authorizations
  3. Revoke any authorizations you no longer want to allow.

    Click Revoke to revoke authorizations

Q: Why can't we setup Service Hooks for HipChat anymore?

A: Atlassian officially dropped support for HipChat. See more on that announcement here.