Интеграция с GitLab — это дополнительный модуль, который можно добавить к любому из трёх тарифных планов INOUT Проект.
Цель плагина — агрегировать важные данные из GitLab в INOUT Проект для улучшения отчётности, оценки и представления деятельности по разработке, поддерживая тем самым процесс принятия решений для заинтересованных сторон, вовлечённых в проекты и процессы разработки программного обеспечения компании.
Возможности включают очень простое начальное подключение к вашей инстанции GitLab (как в облачной, так и в самохостящейся версии). После установления подключения INOUT Проект отобразит важнейшие элементы из GitLab в настраиваемых и фильтруемых списках (аналогично спискам задач). Это:
включая их наиболее важные атрибуты.
Ключевой момент: INOUT Проект не копирует репозитории физически — код остаётся в GitLab.
Сначала необходимо получить токен доступа пользователя GitLab с нужными правами.
Выберите пользователя, от имени которого INOUT Проект будет обращаться к GitLab. Это может быть специальный пользователь, например er_integrator.
Отредактируйте профиль этого пользователя.
Перейдите в раздел Access tokens, выберите все разрешения и создайте персональный токен доступа.
Скопируйте этот токен.
Теперь вы можете перейти в INOUT Проект и ввести необходимые данные:
Администрирование >> Интеграция с GitLab >> Найти доступные интеграции >> Настроить
Укажите имя подключения, URL и ранее сгенерированный токен доступа.
Примечание: если используется облачная версия, например, https://gitlab.com/my-little-gitlab, введите просто https://gitlab.com/. Видны будут только те проекты, к которым есть доступ у пользователя с токеном.
Сохраните.
Готово! Подключение установлено.
Остальная часть выполняется автоматически в фоновом режиме:
Если вы не видите репозитории, можно импортировать их вручную:
Администрирование >> Интеграция с GitLab >> Настроенные интеграции >> [Имя подключения]
В боковом меню выберите Импорт
Выберите нужную группу, после чего появится список найденных проектов/репозиториев.
Выделите все и нажмите Импорт.
Данные передаются через webhooks, создаваемые в GitLab. Обычно они создаются автоматически. Проверьте:
Проект GitLab >> Настройки >> Webhooks
Если webhook отсутствует:
Администрирование >> Интеграция с GitLab >> Настроенные интеграции >> [Имя]
Боковое меню >> Репозитории >> [Имя репозитория] >> Зарегистрировать все интеграции
Это вручную создаст webhook.
После настройки подключения вы можете использовать данные из GitLab в INOUT Проект. Чтобы использовать интеграцию на максимум, настройте ключевые слова ссылок:
Они позволяют связывать коммиты и merge-запросы с задачами и даже логировать время напрямую из GitLab.
Пример: refs #1234 или closes #1234.
Перейдите в:
Меню “Дополнительно” >> Интеграция с GitLab >> Ссылки
Создайте или отредактируйте ссылку. Подсказки помогут вам.
Основные правила:
Так как это интеграция двух систем, пользователи в них разные. Все действия (автор коммита, рецензент merge-запроса и т.д.) и лог времени должны быть сопоставлены с пользователями в INOUT Проект.
Сопоставление осуществляется по электронной почте. Убедитесь, что у разработчиков одинаковые email в GitLab и INOUT Проект.
Если это невозможно — добавьте дополнительный email в профиль пользователя INOUT Проект.
Откройте главное окно GitLab-интеграции в:
Меню “Дополнительно” >> Раздел “Дополнения” >> Интеграция с GitLab
На странице доступны:
Функционально простейший, но необходимый список. Есть полезный фильтр “Сервис” — если подключено несколько инстанций GitLab.
Merge request — термин GitLab. В других системах это может быть Pull request. В системе используется общий термин “Запрос кода”.
Список коммитов тоже позволяет строить отчёты. Содержит информацию о тестах.
Примечание: у коммита нет отдельной карточки в INOUT Проект — переход по ссылке ведёт в GitLab.
Тесты упоминались выше. У них есть отдельный список для отчётов.
Обычно используются для мониторинга критичных репозиториев (релиз-кандидаты). Нет карточки — переход ведёт в GitLab.
Как всё отображается в задаче:
Кнопка доступна в:
Детали задачи >> Меню “Дополнительно”
Выберите репозиторий, имя ветки (предзаполнено ID и темой задачи), исходная ветка — по умолчанию master.
Созданная ветка отображается как тег в блоке GitLab-интеграции в задаче.
Доступны два уровня прав:
Глобальная настройка доступна только администратору INOUT Проект.