Перейти к основному содержимому

PanDev + GitHub: интеграция через GitHub App

· 7 мин. чтения
Artur Pan
CTO & Co-Founder at PanDev

PanDev Metrics интегрируется с GitHub через специализированное GitHub App — никаких personal access tokens для управления, никакой ручной настройки webhook и тонкие разрешения из коробки.

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

GitHub App vs. Personal Access Token

Прежде чем начать, разберёмся, почему PanDev использует GitHub App вместо PAT:

ХарактеристикаGitHub AppPersonal Access Token
Привязка к человекуНет — устанавливается на уровне организацииДа — если человек уйдёт, интеграция сломается
РазрешенияТонкие, по каждому репозиториюШирокие scopes
Rate limitsВыше (5,000+ запросов/час)Ниже (5,000 запросов/час, общие для всех инструментов)
Управление webhookАвтоматическоеРучное
OAuth для пользователейВстроенныйТребуется отдельная настройка

Подход через GitHub App — рекомендуемый GitHub паттерн интеграции для сторонних инструментов.

Предварительные требования

ТребованиеПодробности
Аккаунт GitHubРоль Organization Owner для установки приложения или личный аккаунт для персональных репозиториев
Аккаунт PanDev MetricsРоль Admin или Manager
РепозиторииХотя бы один репозиторий, который вы хотите отслеживать

Шаг 1: Начните подключение в PanDev

  1. Войдите в PanDev Metrics
  2. Перейдите в Settings → Integrations → GitHub
  3. Нажмите Connect GitHub

PanDev перенаправит вас на страницу установки приложения GitHub.

Шаг 2: Установите PanDev GitHub App

На странице установки GitHub:

  1. Выберите организацию (или ваш личный аккаунт), куда хотите установить приложение
  2. Выберите доступ к репозиториям:
◉ All repositories
PanDev будет автоматически отслеживать новые репозитории по мере их создания.

○ Only select repositories
Выберите конкретные репозитории из списка ниже.

Для большинства команд "Only select repositories" — более безопасный начальный вариант. Добавить ещё можно в любой момент.

  1. Ознакомьтесь с разрешениями, которые запрашивает приложение:
Repository permissions:
Contents: Read-only (для чтения коммитов и файлов)
Metadata: Read-only (базовая информация о репозитории)
Pull requests: Read-only (для отслеживания PR, ревью, комментариев)
Checks: Read-only (опционально — для метрик CI/CD)

Organization permissions:
Members: Read-only (для сопоставления пользователей с профилями)

Events:
✅ Push
✅ Pull request
✅ Pull request review
✅ Pull request review comment
✅ Check run (опционально)
  1. Нажмите Install & Authorize

GitHub перенаправит вас обратно в PanDev.

Шаг 3: Завершите авторизацию OAuth

После установки приложения PanDev попросит авторизоваться через OAuth. Это отдельный шаг от установки приложения — он связывает вашу личную идентичность GitHub с профилем PanDev.

  1. Нажмите Authorize PanDev Metrics
  2. GitHub покажет экран согласия OAuth
  3. Нажмите Authorize

Вы будете перенаправлены обратно в PanDev и увидите сообщение об успехе:

✅ GitHub connected successfully
Organization: your-org
Repositories: 12 selected

Шаг 4: Проверьте обнаружение репозиториев

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

  1. Перейдите в Settings → Integrations → GitHub
  2. Вы увидите вашу организацию со списком подключённых репозиториев
  3. Каждый репозиторий показывает статус синхронизации:
Repository Status Last Sync
───────────────────────────────────────────────────
your-org/frontend ✅ Active Just now
your-org/backend-api ✅ Active Just now
your-org/infra ✅ Active Just now
your-org/docs ⏸ Paused —

Если репозиторий показывает статус "Paused", значит PanDev его обнаружил, но вы не включили отслеживание. Нажмите на переключатель, чтобы активировать.

Шаг 5: Импорт исторических данных

PanDev автоматически импортирует исторические данные за последние 90 дней при первом подключении репозитория. Это включает:

  • Все коммиты в default-ветке и ветках смерженных PR
  • Все pull requests (открытые, закрытые, смерженные)
  • Все ревью и комментарии к PR
  • Все check runs и статусы pipeline

Импорт выполняется в фоне. Для типичного репозитория с несколькими тысячами коммитов это занимает 2–5 минут. Крупные монорепозитории (100K+ коммитов) могут импортироваться до 30 минут.

Отслеживайте прогресс в Settings → Integrations → GitHub → Import Status.

Шаг 6: Сопоставьте пользователей GitHub с участниками команды

Для точных метрик PanDev нужно связать идентичности GitHub с профилями участников команды.

  1. Перейдите в Settings → Team Management
  2. PanDev покажет список обнаруженных имён пользователей GitHub из ваших репозиториев
  3. Для каждого пользователя:
    • Автоматическое сопоставление — PanDev попытается сопоставить по email
    • Ручное сопоставление — выберите нужного участника из выпадающего списка
    • Игнорировать — для ботов, сервисных аккаунтов или внешних контрибьюторов, которых не нужно отслеживать

Работа с несколькими идентичностями

Разработчики часто коммитят с разными email-адресами или именами:

Один и тот же человек, разные идентичности:
- GitHub user: @jsmith
- Commit email: john.smith@company.com
- Commit email: john@personal.email
- Git author: "John Smith"
- Git author: "jsmith"

В PanDev перейдите в профиль участника команды и добавьте все алиасы в раздел Identity Aliases. PanDev объединит активность со всех идентичностей в единый профиль.

Шаг 7: Настройте параметры отслеживания

Исключение шумных файлов

Предотвратите искажение метрик количества строк автогенерируемыми файлами:

# Settings → Projects → [Repo] → Excluded Paths
excluded_paths:
- "package-lock.json"
- "yarn.lock"
- "Gemfile.lock"
- "*.generated.*"
- "vendor/**"
- "node_modules/**"
- "dist/**"
- "__snapshots__/**"

Стратегия веток

Расскажите PanDev, как ваша команда использует ветки:

Settings → Projects → [Repo] → Branch Configuration

Default branch: main
Production branches: main, release/*
Feature branch pattern: feature/*, fix/*, chore/*
Ignored branches: dependabot/*, renovate/*, gh-pages

Это влияет на расчёт cycle time — PanDev измеряет время от первого коммита в feature-ветке до мержа в production-ветку.

Рабочие часы

Settings → Organization → Working Hours

Расписание: Понедельник–Пятница
Часы: 09:00–18:00
Часовой пояс: America/New_York (или для каждого пользователя)
Исключить праздники: ✅ (загрузите календарь праздников компании)

Шаг 8: Исследуйте ваш дашборд

С поступающими данными дашборд наполняется за считанные минуты. Вот на что стоит обратить внимание в первую очередь:

Метрики Pull Request

МетрикаЧто показывает
PR Cycle TimeОбщее время от открытия PR до мержа
Time to First ReviewКак долго PR ждёт первого ревью
Review TurnaroundВремя между запросом ревью и его предоставлением
PR SizeКоличество изменённых строк на PR (меньше — обычно лучше)
PR ThroughputКоличество смерженных PR в день/неделю/спринт

Метрики коммитов

МетрикаЧто показывает
Commit FrequencyКоммиты на разработчика в день
Active ContributorsУникальные контрибьюторы в неделю
Code ChurnСтроки, добавленные и затем изменённые в рамках одного спринта

Метрики DORA

Если вы включили события check run:

Метрика DORAИсточник
Deployment FrequencyСмерженные PR в production-ветки
Lead Time for ChangesПервый коммит → мерж в production
Mean Time to RecoveryВремя между сбоем и деплоем исправления
Change Failure RateСоотношение неудачных и общих деплоев

Управление GitHub App

Добавление новых репозиториев

  1. Перейдите в GitHub → Settings → Applications → PanDev Metrics → Configure
  2. В разделе "Repository access" добавьте новые репозитории
  3. PanDev автоматически обнаружит изменение и начнёт синхронизацию

Удаление репозиториев

Тот же путь — уберите галочки с репозиториев, которые больше не хотите отслеживать. Исторические данные сохраняются в PanDev 90 дней после отключения.

Удаление приложения

Для полного удаления интеграции:

  1. На стороне GitHub: Settings → Applications → PanDev Metrics → Uninstall
  2. На стороне PanDev: Settings → Integrations → GitHub → Disconnect

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

Нет данных после установки

  1. Проверьте доставку webhooks: GitHub → Repo → Settings → Webhooks → Recent Deliveries
  2. Убедитесь в корректности разрешений приложения: GitHub → Settings → Applications → PanDev Metrics → Permissions
  3. Убедитесь, что репозиторий включён в PanDev (не на паузе)

Ошибка "Insufficient permissions"

GitHub App должно быть установлено Organization Owner. Если вы рядовой участник, попросите владельца установить приложение, а затем авторизуйтесь своим аккаунтом через OAuth.

Rate limiting при импорте исторических данных

Для очень крупных организаций (1,000+ репозиториев) PanDev распределяет импорт, чтобы не превышать rate limits GitHub. Импорт может занять несколько часов. Прогресс отображается на странице статуса импорта.

GitHub Enterprise Server (self-hosted)

PanDev поддерживает GitHub Enterprise Server. При настройке выберите "GitHub Enterprise" и введите URL вашего инстанса:

GitHub Enterprise URL: https://github.yourcompany.com

Процесс установки GitHub App работает так же. Убедитесь, что ваш GitHub Enterprise инстанс может достигать webhook-эндпоинта PanDev, или разверните PanDev on-premise.

Следующие шаги

Ваша интеграция с GitHub работает. Рассмотрите следующие действия:

  • Подключите трекер задач — свяжите Jira или ClickUp для корреляции активности в коде с задачами
  • Установите IDE-плагины — добавьте плагины VS Code или JetBrains для данных о времени кодирования
  • Поделитесь дашбордами — пригласите тимлидов в PanDev и создайте представления по командам
  • Настройте алерты — получайте уведомления, когда cycle time превышает пороговое значение вашей команды

Подключите GitHub за 5 минут. Начните отслеживать инженерные метрики с PanDev Metrics — никаких токенов для ротации, никакой ручной настройки webhooks.

Попробуйте сами — бесплатно

Подключите IDE-плагин за 2 минуты и увидьте свои реальные метрики. Без карты, без обязательств.

Попробовать бесплатно