Описание проблемы
Ошибка 400 Bad Request возникает при запуске пайплайнов из ТестОпс или при взаимодействии с интеграцией GitLab CI/CD. Эта ошибка указывает на проблему в передаваемых запросах, параметрах или логике правил в пайплайне.
Основные причины ошибки 400:
-
Некорректные правила в .gitlab-ci.yml:
Логические операторы и условия в workflow rules написаны неверно.
Триггеры для запуска пайплайнов не разрешают выполнение jobs.
-
Проблемы с токенами и авторизацией:
Токен доступа GitLab Personal Access Token отсутствует, истек или имеет недостаточные права.
-
Ошибки в конфигурации интеграции ТестОпс:
Неверный URL GitLab или идентификатор проекта.
Сбой при сохранении токена.
-
Ограничения на стороне сети и VPN:
ТестОпс не может достучаться до GitLab из-за firewall, VPN или отсутствия статического IP.
Пошаговое решение
1. Проверьте правила в .gitlab-ci.yml
Откройте конфигурацию пайплайна и добавьте корректные workflow rules:
workflow: rules: - if: '$CI_PIPELINE_SOURCE == "api"' when: never - if: '$CI_PIPELINE_SOURCE == "web" || $CI_PIPELINE_SOURCE == "schedule" || $CI_PIPELINE_SOURCE == "trigger"' when: always
Убедитесь, что операторы || корректно разделяют условия.
Если используете trigger с API, включите соответствующие правила.
Пример исправленного пайплайна:
stages: - test run_tests: stage: test script: - echo "Running tests..." rules: - if: '$CI_PIPELINE_SOURCE == "web"' when: always - if: '$CI_PIPELINE_SOURCE == "api"' when: never
2. Проверьте токен доступа GitLab
Зайдите в GitLab → Settings → Access Tokens.
Убедитесь, что токен:
Имеет права: api и read_repository.
Создан на уровне группы, если репозиторий в группе.
Вставьте токен в ТестОпс:
Администрирование → Интеграции → GitLab → Token.
Сохраните и проверьте соединение.
Важно: После проверки соединения токен не отобразится в интерфейсе — это нормальное поведение системы.
3. Проверьте настройки сети и VPN
Если GitLab доступен только через VPN, настройте whitelist на стороне вашей сети:
Статический IP адрес инстанса ТестОпс должен быть добавлен в разрешенные.
Для SaaS-версии уточните статический IP у технической поддержки.
Проверьте файрволы и сетевые политики на блокировку исходящих соединений.
4. Удалите и пересоздайте Джобу в ТестОпс
Если ошибка сохраняется:
Удалите проблемную джобу из интерфейса ТестОпс.
Запустите пайплайн вручную из GitLab CI/CD:
Проверьте, что ТестОпс автоматически создал джобу с корректными настройками.
5. Проверка логов
Если ошибка 400 не устраняется, выполните следующее:
Проверьте логи ТестОпс на наличие детализированных сообщений:
logger_name: "io.qameta.allure.testops.integration.api.retrofit.RetrofitUtils" message: "Pipeline will not run for the selected trigger..."
Убедитесь, что конфигурация pipeline соответствует документации.
Заключение
Ошибка 400 Bad Request при запуске пайплайнов часто связана с неверной настройкой правил в .gitlab-ci.yml или проблемами с авторизацией. Следуя описанным шагам:
Проверьте workflow rules.
Обновите токен доступа.
Убедитесь в правильных сетевых настройках и отсутствии блокировок.
Если проблема сохраняется, обратитесь в техническую поддержку, приложив:
Конфигурацию пайплайна.
Скриншоты настроек интеграции.
Логи системы.
Эти шаги помогут быстро локализовать и устранить ошибку 400 Bad Request при работе с ТестОпс и GitLab CI/CD.