Руководство администратора
Настройка интеграции с 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 для ЗИ)