Интеграция с трекерами может быть полезна при внедрении Devprom ALM в организацию, где уже используется какой-то трекер. Например, разработку требований можно вести в Devprom ALM, а разработкой кода управлять в уже используемом трекере.
Разные организации, использующие Devprom ALM, могут организовать обмен данными по общему проекту, сохраняя при этом работу в своих системах.
Devprom предоставляет очень гибкий механизм настройки для обмена данными с внешними трекерами, основанный на мэппинге между Devprom REST API и REST API трекера. Вы можете сопоставить модель данных Devprom модели данных трекера удобным для вас образом, то есть выбрать сущности и атрибуты, которые необходимо синхронизировать. По умолчанию мэппинг позволяет синхронизировать следующие данные (однако, объем функциональности зависит от конкретного трекера):
Обмен данными происходит периодически небольшими порциями, чтобы не создавать лишней нагрузки на приложения.
Для настройки синхронизации или миграции данных между Devprom ALM и трекерам необходимо перейти к настройкам проекта и добавить нужную интеграцию. На первой вкладке нужно указать параметры подключения:
JIRA |
URL, например, https://jira.atlassian.com Проект - уникальный идентификатор проекта, например, JRASERVER Имя пользователя и пароль для аутентификации. В некоторых версия JIRA не поддерживается аутентификация пользователя в REST API по паре имя пользователя/пароль. В этом случае необходимо сгенерировать API Token и в поле "Имя пользователя" указать Email пользователя, а в поле "Пароль" указать API Token |
Devprom ALM |
URL, например, https://demo.myalm.ru Проект - кодовое название проекта, которое можно взять из URL ссылок на страницы данных проекта, либо в модуле Настройки - Общие настройки. Ключ API для аутентификации в REST API, можно получить на странице Ключи в профиле пользователя, под которым будет осуществляться обмен данными. |
Redmine |
URL, например, https://redmine.openpne.jp Проект - уникальный идентификатор проекта, например, op3 HTTP-заголовки, необходимо скопировать ключ API в Redmine (свой для каждого пользователя) и указать его после X-Redmine-API-Key: |
YouTrack |
URL, например, https://youtrack.jetbrains.com Проект - уникальный идентификатор проекта, например, JT Имя пользователя и пароль для аутентификации. |
Gitlab |
URL, например, https://gitlab.com ИД Проекта - уникальный идентификатор проекта, который указан под названием, на странице проекта: Токен для аутентификации можно сформировать в разделе Настройки пользователя, в меню Токены доступы (Access Tokens). Для синхронизации статусов и приоритетов необходимо настроить соответствие:
Поскольку приоритеты и статусы задач в Gitlab определяются при помощи меток, необходимо дополнительно обеспечить хранение перечня меток, путем создания пользовательского атрибута с ссылочным именем GitlabLabels |
TFS |
URL, например https://instancename.visualstudio.com Проект - название проекта или коллекции TFS Персональный токен - может быть сгенерирован в настройках профиля пользователя TFS |
Выберите направление синхронизации, начните с варианта "Читать из приложения". В этом случае интеграция не будет влиять на данные во внешней системе.
Чтобы данные синхронизировались корректно, необходимо настроить мэппинг. На соответствующей вкладке отображается настройка мэппинга между Devprom ALM REST API и REST API целевой системы. Таким образом, для настройки мэппинга вам необходимо знать возможности этих API.
По умолчанию используется мэппинг для базовых конфигураций трекеров. Однако, ваш трекер может быть специфически настроен и сильно отличаться от базовой версии.
Начните с настройки мэппинга для приоритетов, типов задач и их статусов.
Настройка мэппинга между справочниками выглядит так:
"mapping": [{"submitted":"Новая"},{"planned":"В работе"},{"State_5bb6079d99e47":"Ожидание клиента"},{"State_5bb6082cb4fd6":"Ответ клиента"},{"State_5bb6079d99e47":"Ожидание оплаты счета"},{"resolved":"Решена"}{"submitted":"*"}]
Здесь приводится мэппинг статусов пожеланий, в каждой паре значений справа - названия статусов в трекере, слева - кодовое имя в Devprom ALM.
Кодовые (или ссылочные) имена доступны в справочниках, например, для статусов нужно включить отображение этого поля в настройках списка статусов:
Далее приводим ссылки для получения названий справочников в различных трекерах:
Мэппинг пользователей осуществляется на основе Email. Перед синхронизацией необходимо создать учетные записи пользователей.
Например, у вас есть пользовательское поле для пожелания, с ссылочным именем TEST, которое вы добавили в настройках проекта. Для синхронизации его значения с аналогичным полем из внешней системы используйте следующие настройки мэппинга.
Вам необходимо выяснить идентификатор пользовательского поля в Redmine. Это можно сделать открыв по ссылке карточку задачи и добавив в конце .json, например, https://redmine/issues/1452.json
В разделе "custom_fields" найдите значение поля id. Используйте его в подстановке вида:
"TEST": "issue.custom_fields:(id=42).value"
В REST API интегрируемой системы данные могут быть представлены таким образом, что их невозможно напрямую поставить в соответствие данным REST API Devprom ALM. Например, в интегрируемой системе значение может находиться в списке, а для Devprom ALM требуется скалярное значение. В этом случае можно использовать специальные функции.
Отфильтровать элементы коллекции |
В этом примере, в атрибут ExternalId у сущности ChangeRequest будет записано значение из поля url для объекта из коллекции relations, у которого значение атрибута rel равно "System.LinkTypes.Hierarchy-Reverse". |
Взять конкретный элемент коллекции |
В этом примере, в атрибут ExternalId у сущности ChangeRequest будет записано значение из поля url для первого объекта из коллекции relations. Вместо ключевого слова first можно использовать число, явно указывающее на позицию элемента в коллекции. |
Преобразовать коллекцию в строку |
В этом примере, в атрибут GitlabLabels будет записана строка, в которой через запятую перечислены метрки задачи в Gitlab. |