Skip to content

CI/CD и дефекты ​

Эндпоинты /api/pipelines входят в модуль ci (тариф Pro). Как отправлять результаты тестов из пайплайна — в разделе Отправка результатов из CI и в описании импорта отчёта.

Пайплайны ​

  • GET /api/pipelines — история пайплайнов.
  • GET /api/changelogs — журнал изменений содержимого (?testCaseId= — журнал одного кейса).
  • GET /api/pipelines/branches — ветки настроенного репозитория; если их нельзя получить, возвращается только настроенная ветка с пояснением.
  • GET /api/pipelines/:pipelineId/plan?branch=&workflowFile= — тест-план, для которого Kvalli запустил этот пайплайн ({ planKey }, или 404, если не для плана). pipelineId — id пайплайна GitLab или workflow run GitHub. Читается и ключом CI с runs:import; так спрашивает kvalli testplan без KVALLI_PLAN. Run GitHub, который Kvalli ещё не связал со своим запуском, подбирается по ветке и файлу workflow за последние 15 минут и получает этот id; если таких запусков два — 409.
  • POST /api/pipelines/trigger { branch, workflowFile?, workflowName? } — нужно право pipelines:trigger (администратор, лид, редактор; не runs:write). Создаёт пайплайн в настроенном проекте GitLab или запускает воркфлоу GitHub на ветке branch, которая должна быть веткой по умолчанию репозитория или веткой под autotest/ (иначе 400). Файл воркфлоу GitHub — простое имя *.yml/*.yaml, и если в настройках репозитория задан ciWorkflowFiles, — одно из перечисленных там. То, что вернул провайдер, записывается: id, url, коммит и статус. Если репозиторий и токен не настроены, запрос отклоняется и ничего не записывается.

Дефекты ​

POST /api/defects/push — отправить дефект в настроенный трекер (Jira, YouTrack).

  • Тело: { "title": "string", "description": "string" }
  • Ответ: { "success": true, "provider": "jira", "issueId": "PROJ-123", "issueUrl": "..." }, плюс isSimulated: true при пробном запуске.
  • Если трекер не настроен, запрос отклоняется, если только он не просит симуляцию через ?dryRun=true (или dryRun: true в теле); ключ задачи никогда не выдумывается. Пробный запуск никогда не обращается к трекеру, настроен он или нет, и его ответ содержит isSimulated: true.
  • Заголовок Idempotency-Key делает повтор безопасным: тот же ключ от того же вызывающего в течение десяти минут возвращает первую задачу, а не заводит ещё одну (Idempotent-Replayed: true). POST /api/agents/approve-cases (cases:write, { cases: [...] }) учитывает этот заголовок так же.

Дефект по результату прогона заводится через POST /api/runs/:id/items/:itemId/defect, по заметке исследовательской сессии — через POST /api/sessions/:key/notes/:noteId/defect; см. Прогоны.

Документация описывает последний выпуск Kvalli.