Перейти к основному содержимому
Версия: v2 (текущая)

Интеграция Azure DevOps с PanDev Metrics

import IdealImage from "@theme/IdealImage"; import Head from "@docusaurus/Head";

Кратко. Гайд подключает Azure DevOps к PanDev Metrics примерно за 10 минут. Вы создадите Personal Access Token (PAT) со scope'ами Code, Build и Work Items, вставите его в PanDev Metrics, выберете проекты и убедитесь, что webhook'и pull request, pipeline и Boards приходят. Аудитория: администратор.

Что понадобится

  • Версия PanDev Metrics ≥ 1.0.250 (Cloud — всегда)
  • Доступ администратора к воркспейсу PanDev Metrics
  • Пользователь Azure DevOps (желательно сервисный аккаунт) с правами Project Administrator на нужных проектах
  • Для on-prem PanDev Metrics: исходящий 443 к dev.azure.com или к вашему хосту Azure DevOps Server
  • Чтобы Azure DevOps достучался до on-prem PanDev Metrics: хост PanDev Metrics должен быть доступен из Azure DevOps по публичному webhook URL

:::tip Используйте сервисный аккаунт Создайте пользователя Microsoft Entra ID под PanDev Metrics (например, pandev-metrics-bot@acme.onmicrosoft.com) и добавьте его в нужную организацию Azure DevOps. Автоматические комментарии к PR будут отделены от человеческих. :::

Шаг 1 — Создайте Personal Access Token в Azure DevOps

  1. Войдите в Azure DevOps под сервисным аккаунтом.
  2. Нажмите на иконку пользователя справа сверху и выберите Personal access tokens.
  3. Нажмите New Token и настройте:
ПолеЗначение
Namepandev-metrics
OrganizationВаша организация (или All accessible organizations)
ExpirationCustom — рекомендуется 1 год
ScopesCustom defined (см. ниже)
  1. В Custom defined включите следующие scope'ы:
ScopeУровеньЗачем
CodeReadЧтение коммитов, веток, файлов для анализа
Pull Request ThreadsRead & writeЧтение метаданных PR; публикация комментариев с метриками
BuildReadЧтение pipeline-запусков для метрик deployment frequency
Work ItemsReadСвязь рабочих элементов Boards с коммитами и PR
  1. Нажмите Create и сохраните токен — Azure DevOps показывает его только один раз.

:::warning Сохраните токен сразу Токен отображается только один раз. Если закрыть диалог без копирования — придётся создавать новый. :::

Шаг 2 — Откройте экран интеграции Azure DevOps в PanDev Metrics

Войдите в PanDev Metrics как администратор воркспейса и откройте Настройки → Интеграции → Azure DevOps.

Шаг 3 — Введите URL организации и PAT

Заполните форму:

ПолеЗначение
Organization URLhttps://dev.azure.com/<ваша-организация> для Services; https://azuredevops.acme.example/<ваша-коллекция> для Server
Personal access tokenЗначение из Шага 1

Нажмите Проверить подключение. PanDev Metrics вызовет API Azure DevOps и покажет аутентифицированного пользователя и число доступных проектов.

После успешной проверки нажмите Активировать.

Шаг 4 — Выберите проекты для мониторинга

PanDev Metrics покажет список проектов Azure DevOps, доступных по PAT. Выберите нужные и сохраните.

PanDev Metrics запустит одноразовый backfill за последние 30 дней по коммитам, pull request'ам и pipeline-запускам.

Шаг 5 — Проверьте регистрацию webhook'ов

PanDev Metrics регистрирует service hooks в Azure DevOps автоматически по каждому выбранному проекту. Проверить можно в Project settings → Service hooks на стороне Azure DevOps — должны быть хуки, указывающие на ingest-URL PanDev Metrics.

Для справки — PanDev Metrics обрабатывает следующие endpoints (URL'ы заполняются автоматически при активации):

СобытиеEndpoint PanDev Metrics (информационно)
Жизненный цикл репозитория / проекта/v1/azure/webhook/project
События pull request/v1/azure/webhook/merge-request
События work item в Azure Boards/v1/azure/webhook/boards

Последние доставки должны отдавать HTTP 200 в течение секунд.

Проверка

Откройте Настройки → Интеграции → Azure DevOps в PanDev Metrics. Вы увидите:

  • Зелёный бейдж Подключено
  • Количество выбранных проектов
  • Время последней синхронизации (не старше 30 минут после завершения backfill)

Затем откройте дашборд с DORA-метриками — в течение ~15 минут плитки deployment frequency и PR cycle time покажут данные из Azure DevOps. Отфильтруйте Lead Time по вашему Azure-проекту, чтобы убедиться, что Boards work items связаны с коммитами.

Решение проблем

«Проверить подключение» возвращает «TF400813» или `401 Unauthorized`

PAT невалиден, просрочен или выпущен для другой организации. Пересоздайте PAT (Шаг 1) и убедитесь, что Organization совпадает с той, которую вы подключаете из PanDev Metrics. Если PAT выпущен на All accessible organizations — сервисный аккаунт должен состоять в каждой такой организации.

Service hooks зарегистрированы, но события Boards не приходят

У PAT нет scope'а Work Items: Read. Пересоздайте PAT с этим scope'ом и обновите в Настройки → Интеграции → Azure DevOps → Расширенные → Обновить токен. События Boards возобновятся в течение минут.

Pipeline-запуски пропадают на части проектов

У PAT нет scope'а Build: Read, либо у сервисного аккаунта нет права View build pipeline на этих проектах. Добавьте пользователя в группу безопасности с правом на чтение сборок (например, Build Administrators на уровне проекта).

Комментарии в PR не появляются

У PAT нет Pull Request Threads: Read & write, либо отключена опция Публикация комментариев в PR в PanDev Metrics. Откройте Настройки → Интеграции → Azure DevOps → Расширенные и проверьте оба пункта. Также проверьте, что нужный проект не исключён.

Azure DevOps Server отвечает 404 на API-запрос

Для Server в Organization URL должна быть указана коллекция: https://azuredevops.acme.example/DefaultCollection. Без сегмента коллекции REST API отдаёт 404. Поправьте URL в Настройки → Интеграции → Azure DevOps.

Что собирается

PanDev Metrics получает из каждого выбранного проекта:

  • Коммиты (SHA, автор, время, сообщение, статистика файлов) из Azure Repos
  • Pull request'ы (active / completed / abandoned) и их ревью, комментарии и approvals
  • Pipeline-запуски (build и release) — время старта, конца, результат, окружение
  • Work item'ы, связанные с коммитами и PR (из Azure Boards)

Исходный код не сохраняется. Подробнее — в Как работает плагин.

FAQ

Boards-задачи подхватываются автоматически?

Да — если PAT включает Work Items: Read, PanDev Metrics связывает элементы Boards с коммитами и PR по стандартному упоминанию #1234 в сообщениях коммитов и описаниях PR. Подробный гайд по Boards — Azure Boards как трекер задач.

Какой минимальный набор scope'ов PAT?

Для аналитики только по репозиториям: Code: Read и Pull Request Threads: Read & write. Для DORA-метрик deployment frequency из pipeline: добавьте Build: Read. Для связи с Boards: добавьте Work Items: Read. Стандартная настройка PanDev Metrics включает все четыре.

Работает ли PanDev Metrics с Azure DevOps Server?

Да. Тот же flow с PAT работает на Azure DevOps Server. Organization URL должен включать коллекцию (например, https://azuredevops.acme.example/DefaultCollection). Для on-prem PanDev Metrics нужен сетевой доступ от хоста PanDev Metrics к хосту Azure DevOps Server по 443 порту.

Как часто обновляются данные?

Service hooks доставляют события pull request, pipeline и work item в реальном времени — обычно за секунды. Дополнительно раз в 15 минут PanDev Metrics запускает reconciliation-опрос, чтобы подобрать пропущенные доставки.

Сколько занимает первичный backfill?

Backfill последних 30 дней. Для 10 проектов — обычно 5-15 минут. Большие организации с большим числом pipeline-запусков — час и больше.

Можно ли ротировать PAT без переустановки?

Да. Сгенерируйте новый PAT с теми же scope'ами в Azure DevOps, затем откройте Настройки → Интеграции → Azure DevOps → Расширенные → Обновить токен в PanDev Metrics. Service hooks остаются зарегистрированными, backfill не пересчитывается.

Можно ли ограничить интеграцию конкретными проектами?

Да. После активации в любой момент снимите выбор с лишних проектов на экране интеграции. PanDev Metrics удалит регистрации service hooks с них в течение минут.

Дальнейшие шаги

Связанные материалы