Интеграции с CI/CD
Интеграция с CI/CD нужна, чтобы запускать автотесты из интерфейса DoQA: целым прогоном, выборочно из плеера прогона или по одному тесту. Отправлять результаты в DoQA можно и без нее — утилитой doqa-cli или через API, см. Автотесты.
В качестве CI/CD-системы поддерживается только GitLab.
GitLab подключается дважды
Раздел «Интеграции» состоит из двух блоков — «Интеграции с трекерами» и «Интеграции с CI/CD». Это две независимые интеграции с разными подключениями. Если GitLab уже подключен как трекер багов (см. GitLab), для запуска автотестов его всё равно нужно подключить отдельно — в блоке «Интеграции с CI/CD».
Подключение GitLab как CI/CD-системы
Доступ к разделу имеют пользователи с правами на создание или администрирование проектов.
- Перейдите в настройки администратора, раздел «Интеграции».
- В блоке «Интеграции с CI/CD» на карточке GitLab нажмите «Подключить».
- Заполните «URL-адрес GitLab» и «GitLab API токен». Токену нужны скоупы
apiиread_api. - Нажмите «Сохранить».

Если интеграция подключена, кнопка «Подключить» на карточке сменится на «Отключить».
Привязка проектов к пространству
Подключенная интеграция сама по себе ничего не открывает: нужно указать, какие проекты из GitLab доступны для запуска автотестов в конкретном пространстве.
- Перейдите в пространство и в левом боковом меню нажмите на иконку настроек.
- Откройте вкладку «Настройки CI/CD».
- Под подсказкой «Выберите проекты, к которым хотите сделать привязку:» отметьте чек-боксами нужные проекты. Чек-бокс «Имя проекта» в шапке списка выбирает и снимает все сразу.
- Нажмите «Сохранить». Кнопка неактивна, пока в списке ничего не изменилось.

Отмеченные проекты будут доступны для выбора при создании прогона через запуск автотестов и при запуске автотестов из плеера прогона.
Если проектов не видно
На вкладке «Настройки CI/CD» два пустых состояния, и означают они разное.
- «Интеграция CI/CD не настроена» и ссылка «Перейдите в раздел Интеграции» — GitLab не подключен в блоке «Интеграции с CI/CD». Подключите его, см. Подключение GitLab как CI/CD-системы.
- «Список доступных проектов из CI/CD пуст. Проверьте настройки интеграции и валидность токена.» — интеграция подключена, но DoQA не получила от GitLab ни одного проекта. Проверьте URL-адрес, срок действия токена и его скоупы (
api,read_api), а также то, что у владельца токена есть доступ к нужным проектам.
Что должен уметь ваш пайплайн
При старте пайплайна DoQA передает в него ровно одну переменную — DOQA_SPACE_ID с ID пространства. Списка тестов в переменных пайплайна нет.
Чтобы запускались именно те тесты, которые выбрал пользователь, пайплайн должен сам запросить тест-план и отфильтровать тесты по полученным Allure ID:
GET {DOQA_ENDPOINT}/api/integrations/ci/test-plan
?pipeline_id=$CI_PIPELINE_ID
&ci_project_id=$CI_PROJECT_ID
&space_id=$DOQA_SPACE_ID
&token=$DOQA_TOKEN
В ответ приходят список Allure ID (tests), ID прогона в DoQA (runId) и признак isNewRun. Если пропустить этот шаг, прогонятся все тесты проекта.
Полное описание контракта, формат ответа и примеры для .gitlab-ci.yml — Как пайплайн выбирает тесты для запуска.
Переменная DOQA_SPACE_ID
Заводить DOQA_SPACE_ID в настройках CI вручную нужно только для пайплайнов, которые стартуют сами — по коммиту или расписанию. При запуске из DoQA значение приходит в пайплайн автоматически и перекрывает заданное в настройках CI.