Создание перехватчика службы для Azure DevOps Services и TFS с помощью Trello

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

Создайте карта и списки в Trello в ответ на события из Azure DevOps. Например, при отправке кода или сборке.

Получение маркера авторизации Trello

  1. Если у вас нет учетной записи Trello, зарегистрируйтесь в Trello.

  2. Перейдите на страницу Авторизации Azure DevOps Services для Trello и войдите с помощью учетных данных Trello.

  3. Разрешить Azure DevOps использовать учетную запись Trello.

    Разрешить Azure DevOps Services

  4. Скопируйте маркер авторизации.

    Маркер авторизации Trello

Создайте карта или список Trello из события Azure DevOps Services.

  1. Перейдите на страницу перехватчиков службы проекта:

    https://{orgName}/{project_name}/_settings/serviceHooks

    Страница администрирования проекта

    Выберите Создать подписку.

  2. Выберите службу Trello.

    Страница службы, выбранная Trello

  3. Настройте триггер события Visual Studio. В этом случае подписка будет отвечать при создании рабочего элемента.

    Страница конфигурации триггера

  4. Настройте действие, которое Trello будет принимать в ответ на триггер, либо создайте карта или список.

    Страница конфигурации действия

    Заполнители можно использовать для вставки содержимого из события в имя и описание создаваемых карта или списков. Например, при запуске тестового уведомления карта, которая создается, называется "Ошибка #5: Некоторая отличная новая идея!", так как тестовый рабочий элемент является ошибкой (ID=5) с заголовком "Некоторые отличные новые идеи!".

  5. Проверьте подписку на перехватчик службы и завершите работу мастера.

    Тестовое уведомление

Теперь она настроена. Перейдите к Trello и увидите карта отображаются.

Доска приветствия с карта для ошибки #5

Заполнители

Заполнители можно вставить в имя списка или имя или описание карта для создания подписки. При создании списка или карта заполнители будут заменены значениями из события, которое было создано. Пример, используемый для имени карта на этой странице, использует:

    {{workitem.workItemType}} #{{workitem.id}}: {{workitem.title}}

Таким образом, когда ошибка создается с идентификатором 5 и названием "Некоторые отличные новые идеи!", карта имя — "Ошибка #5: Некоторые отличные новые идеи!".

Базовая форма заполнителя — {{resource.field}} это имя ресурса, вызывающего событие (рабочий элемент, сборка и т. д.), а поле — поле в разделе ресурса события, например идентификатор. Таким образом, если подписка для завершенной сборки, это может быть что-то подобное.

    Build {{build.id}} completed at {{build.finishTime}}

Где сборка — имя ресурса и идентификатора, finishTime — это поля, доступные в этом ресурсе. Чтобы понять типы событий, поля и ресурсы, доступные для использования, ознакомьтесь со ссылкой на события.

Поля рабочих элементов

Поля рабочих элементов отображаются в событии в массиве полей, как показано в следующем примере:

    " fields": {
                " System.AreaPath": "Fabrikam-Fiber-Git", 
                " System.TeamProject": "Fabrikam-Fiber-Git", 
                " System.IterationPath": "Fabrikam-Fiber-Git", 
                " System.WorkItemType": "Product Backlog Item", 
                " System.State": "New", 
                " System.Reason": "New backlog item", 
                " System.CreatedDate": "2014-11-05T21:11:28.85Z", 
                " System.CreatedBy": "Normal Paulk", 
                " System.ChangedDate": "2014-11-05T21:11:29.23Z", 
                " System.ChangedBy": "Normal Paulk", 
                " System.Title": "Test PBI", 
                " Microsoft.Azure DevOps Services.Common.BacklogPriority": 999999999, 
                " WEF_6CB513B6E70E43499D9FC94E5BBFB784_Kanban.Column": "New"
           },

Работая непосредственно из определения события, мы создали бы наше карта имя, как в следующем примере:

    {{workitem.fields["System.workItemType"]}} #{{workitem.fields["System.id"]}: {{workitem.fields["System.title"]}}

В качестве ярлыка можно ссылаться на любые поля в пространствах имен System или Microsoft.Azure DevOps Services.Common, как если бы они были полями ресурса. Таким образом, {{workitem.fields["System.workItemType"]}} превращается в {{workitem.workItemType}}.

Выражения заполнителей

Эти заполнители используют реализацию шаблонов дескрипторов, которая в значительной степени совместима с усиками. Некоторые полезные выражения включают в себя

Тип выражения Примеры
основные выражения {{workitem.name}}
Выражения массива {{pullRequest.reviewers.[0].displayName}}
Разделы усы {{#workitem.assignedTo}} Эта wi-адрес назначена {{/workitem.assignedTo}}
Перевернутые разделы усов {{^workitem.assignedTo}} Эта wi-адрес не назначена {{/workitem.assignedTo}}
Вспомогательные средства блокировки дескрипторов дескрипторов на
If/else
unless
каждый
Пути к дескрипторам ...
this
Например, {{../comment/id}} или {{this/title}}.
Примечания к шаблону {{!-- this is a handlebar comment --}}

Цены

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

Вопросы и ответы

Вопрос. Можно ли программно создавать подписки?

Ответ. Да, см. здесь подробные сведения.

Вопрос. Можно ли получить дополнительные сведения о Trello?

Ответ. Да, trello.com.