Невозможно создать подписку на веб-перехватчик VSTS для punlisherId = tfs и eventId tfvc.checkin через REST API

Я пытаюсь создать подписку на веб-перехватчик VSTS для publisherId = tfs и eventType = tfvc.checkin. Вот образец запроса на публикацию:

URL: https://testvstsaccount.visualstudio.com/_apis/hooks/subscriptions?api-version=1.0

Тело запроса:

{
  "publisherId": "tfs",
  "eventType": "tfvc.checkin",
  "resourceVersion": "1.0-preview.1",
  "consumerId": "webHooks",
  "consumerActionId": "httpRequest",
  "publisherInputs": {
    "path": "$/"
  },
  "consumerInputs": {
    "url": "https://myservice/myhookeventreceiver"
  }
}

В ответ я получаю 400 неверных запросов.

Тело ответа:

{
  "$id": "1",
  "innerException": null,
  "message": "Subscription input 'path' is not supported at scope 'collection'.",
  "typeName": "Microsoft.VisualStudio.Services.ServiceHooks.WebApi.SubscriptionInputException, Microsoft.VisualStudio.Services.ServiceHooks.WebApi, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a",
  "typeKey": "SubscriptionInputException",
  "errorCode": 0,
  "eventId": 4501
}

Может ли кто-нибудь помочь мне понять правильный способ создания этого веб-перехватчика.


person cb177    schedule 05.03.2018    source источник
comment
Я также пробовал использовать следующий URL-адрес запроса: testvstsaccount.visualstudio.com / DefaultCollection / _apis / hooks /. Я получаю ту же ошибку.   -  person cb177    schedule 05.03.2018
comment
Разве он не должен содержать в URL-адресе «DefaultCollection»? Как это: testvstsaccount.visualstudio.com/DefaultCollection/_apis/hooks /   -  person Yan Sklyarenko    schedule 05.03.2018
comment
@YanSklyarenko: Вы правы. Я тоже пробовал это. Как упоминалось в моем предыдущем комментарии, я тоже пробовал это.   -  person cb177    schedule 05.03.2018
comment
Похоже, он жалуется на свойство 'path', но я не могу найти свойство 'path' в примере запроса JSON здесь: visualstudio.com/en-us/docs/integrate/api/hooks/.   -  person Yan Sklyarenko    schedule 05.03.2018
comment
Пример, указанный по этой ссылке, предлагает publisherInputs для eventType: build.complete. На самом деле, когда я использовал образец для eventType, я получаю следующую ошибку: tfvc.checkin. В сообщении об ошибке говорится: message: Неизвестный вход подписки \ ветка \ для издателя \ Team Foundation Server \ и тип события \ Код проверен в \ .. Я получил необходимые inputDescriptors для eventType: tfvc.checkin, используя api: testvstsaccount.visualstudio.com/_apis/hooks/publishers/.   -  person cb177    schedule 05.03.2018


Ответы (1)


path фильтрует отметки, которые изменяют один или несколько файлов по указанному пути. Он должен выглядеть как $/TeamProject, $/TeamProject/Project или $/TeamProject/Project/.... $/ не поддерживается. Посмотрите мой пример ниже:

POST https://xxx.visualstudio.com/DefaultCollection/_apis/hooks/subscriptions?api-version=1.0

Content-Type: application/json

{
  "consumerActionId": "httpRequest",
  "consumerId": "webHooks",
  "consumerInputs": { "url": "https://xxx.visualstudio.com" },
  "eventType": "tfvc.checkin",
  "publisherId": "tfs",
  "publisherInputs": {
    "path": "$/TestCase/TestCaseProject",
    "projectId": "1decf66b-1974-43e3-xxxx-ba9a3fd2xxxx"
  },
  "resourceVersion": "1.0",
  "scope": 1
}
person Cece Dong - MSFT    schedule 06.03.2018