Руководство администратора

Настройка интеграции с Redmine

Синхронизация Сообщений о Проблеме и Запросов на Изменение из Redmine в СУТР Навигатор

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

Что необходимо

• СУТР Навигатор версии 0.15.0 или выше • Доступ к инстансу Redmine с включённым REST API • API-ключ Redmine (генерируется в профиле пользователя Redmine: Моя учётная запись → API-ключ доступа) • В Redmine настроены отдельные трекеры для Сообщений о Проблеме и Запросов на Изменение

Шаг 1. Миграция базы данных

Применить миграцию

При обновлении существующей установки примените миграцию: Напрямую: pnpm db:migrate deploy Docker: docker compose exec api npx prisma migrate deploy Миграция добавляет таблицы redmine_project_mappings и redmine_status_mappings, а также поля синхронизации в таблицы change_requests и problem_reports. Все операции аддитивные — существующие данные не затрагиваются.

Шаг 2. Переменные окружения

Конфигурация

Добавьте переменные окружения для API-сервера: • REDMINE_ENABLED (обязательная, по умолчанию: false) — установите "true" для включения модуля Redmine • REDMINE_URL (обязательная при включении) — базовый URL инстанса Redmine, например https://redmine.example.com • REDMINE_API_KEY (обязательная при включении) — API-ключ для доступа к Redmine REST API • REDMINE_POLL_INTERVAL_MINUTES (необязательная, по умолчанию: 5) — интервал опроса Redmine в минутах

Docker Compose

Добавьте переменные в секцию environment сервиса api в docker-compose.prod.yml: REDMINE_ENABLED: "true" REDMINE_URL: https://redmine.example.com REDMINE_API_KEY: ${REDMINE_API_KEY} REDMINE_POLL_INTERVAL_MINUTES: "5" Или добавьте их в файл .env.

Шаг 3. Перезапуск API-сервера

Перезапуск и проверка

Перезапустите API-сервер: Docker: docker compose restart api В логах API должно появиться: «Scheduled redmine-sync job: every 5 minutes»

Шаг 4. Настройка маппинга в UI

Узнать ID в Redmine

В Redmine: • ID проекта — откройте проект, посмотрите URL или Администрирование → Проекты • ID трекеров — Администрирование → Трекеры, ID указан в URL при редактировании (например /trackers/3/edit → ID = 3) Альтернативно, используйте Redmine REST API: curl -H "X-Redmine-API-Key: KEY" https://redmine.example.com/projects.json curl -H "X-Redmine-API-Key: KEY" https://redmine.example.com/trackers.json

Создать маппинг

1. Откройте Пространство → Настройки → Интеграции → Интеграция с Redmine 2. Заполните: ID проекта в Redmine, Название проекта, ID трекера СП, ID трекера ЗИ 3. Нажмите «Создать маппинг» 4. Настройте маппинг статусов — для каждого статуса Redmine укажите соответствующий статус СУТР Навигатор 5. Нажмите «Сохранить маппинг статусов» 6. Нажмите «Синхронизировать» для первого запуска

Шаг 5. Управление пользователями

Авто-созданные пользователи

При синхронизации пользователи из Redmine автоматически создаются в СУТР Навигатор по email. Эти пользователи не могут войти в систему, пока администратор не сбросит им пароль. Для предоставления доступа: 1. Откройте Пространство → Участники 2. Найдите пользователя 3. Нажмите «Сбросить пароль» → «Подтвердить» 4. Скопируйте сгенерированный пароль и передайте пользователю Важно: пароль показывается только один раз. После закрытия диалога его нельзя восстановить — только сгенерировать новый.

Устранение неполадок

Синхронизация не запускается

• Проверьте, что REDMINE_ENABLED=true в переменных окружения • Проверьте логи API: docker compose logs api | grep redmine • Убедитесь, что Redmine доступен с сервера: curl -I https://redmine.example.com

Статусы не маппятся

• Откройте настройки Redmine-интеграции в пространстве • Убедитесь, что все статусы Redmine имеют соответствие в таблице маппинга • Статусы без маппинга сохраняются как метаданные, а запись получает статус по умолчанию (OPEN для СП, DRAFT для ЗИ)