Поделиться через


Веб-перехватчики

Azure DevOps Services | Azure DevOps Server 2022 — Azure DevOps Server 2019

В этой статье описываются веб-перехватчики и их настройка для проекта Azure DevOps. Веб-перехватчики предоставляют способ отправки представления события Azure DevOps в любую службу с общедоступной конечной точкой.

Примечание.

Azure DevOps не взимает плату за настройку перехватчиков служб или интеграцию с внешними службами. Ознакомьтесь с сайтом конкретной службы по ценам, связанным с их службами.

Необходимые компоненты

Для управления веб-перехватчиками для организации Azure DevOps необходимы следующие предварительные требования:

  • Роль владельца или администратора коллекции проектов в организации.

  • Проект в организации и служба с общедоступной конечной точкой HTTP или HTTPS, в которую вы хотите отправить события Azure DevOps.

    Внимание

    Рекомендуется использовать только конечные точки HTTPS. HTTP может отправлять частные данные, включая заголовки проверки подлинности, незашифрованные в полезных данных события. Необходимо использовать HTTPS для базовой проверки подлинности в веб-перехватчике.

Отправка представления JSON в службу

  1. В проекте Azure DevOps перейдите в раздел "Параметры службы проектов" в https://<organization-name>/<project-name>/_settings/serviceHooksразделе "Перехватчики> служб".

    Снимок экрана: выбор перехватчиков службы в параметрах проекта.

  2. На странице "Перехватчики служб" выберите значок или подписку+.

    Снимок экрана: выбор параметра

  3. На экране "Служба" выберите веб-перехватчики и нажмите кнопку "Далее".

    Снимок экрана: выбор веб-перехватчиков на странице службы.

  4. На экране триггера выберите и настройте событие Azure DevOps, в которое нужно активировать веб-перехватчик, а затем нажмите кнопку "Далее". Дополнительные сведения о полезных данных JSON, размещенных потребителем Azure DevOps, см. в разделе "События перехватчиков служб".

    Снимок экрана: выбор и настройка события триггера.

  5. На экране действия настройте целевой URL-адрес и что делать при возникновении события. Дополнительные сведения о том, что нужно ввести в сведениях о ресурсах для отправки, сообщений и подробных сообщений для отправки, см. в разделе "Сведения о ресурсах" для отправки.

    Примечание.

    Веб-перехватчики не могут использовать адрес localhost (loopback) или специальный диапазон IPv4/IPv6-адресов.

  6. Выберите "Тест" , чтобы проверить подписку на перехватчик службы.

    Снимок экрана: настройка диалогового окна

  7. После успешного завершения теста закройте экран уведомлений и нажмите кнопку "Готово " на экране действия .

    Снимок экрана: результаты теста для подписки на перехватчик службы

  8. Теперь веб-перехватчик настроен. Перейдите в целевую службу, чтобы просмотреть представление JSON.

    Снимок экрана: просмотр представления JSON.

Совет

Вы также можете создать веб-перехватчик программным способом. Дополнительные сведения см. в статье "Создание подписки на перехватчик службы" программным способом.

Сведения о ресурсе для отправки

Сведения о ресурсе для отправки, сообщения для отправки и подробные сообщения для отправки параметров в области действий определяют размер полезных данных JSON для отправки. Сведения о ресурсе для отправки элементов управления объемом отправляемого ресурса. Значение по умолчанию — All, но вы также можете отправить минимальное значение, которое отправляет только ключевые поля, такие как URL-адрес и идентификатор, или None.

Ни один и минимальный полезны в сценариях, когда вызывающий объект не нуждается в большой или какой-либо информации о ресурсе, так как он зависит от сообщения или подробного сообщения. Ни один и минимальный также полезны по соображениям безопасности. Вызывающий объект должен вернуться в Azure DevOps Services и пройти обычные проверки безопасности и разрешений, чтобы получить дополнительные сведения о ресурсе.

В следующем примере JSON показаны минимальные сведения о ресурсе:

   {
       "eventType": "git.push",
       ...
       "messages": {
           "text": "...",
           "html": "...",
           "markdown": "..."
       },
       "detailedMessage": {
           "text": "...",
           "html": "...",
           "markdown": "..."
       },
       "resource": {
           "id": "...",
           "url": "https://...",
           "name": "...",
           "field1:": "..."
       }
   }