Репозитории Git / Пайплайны
Управление пайплайнами сборки репозиториев через REST API: список с пагинацией, повторная сборка, отмена, логи и умные ошибки с рекомендациями. Все методы требуют токен аутентификации.
GET /v1/repository/:repositoryId/pipelines
Возвращает список пайплайнов репозитория с пагинацией. Постраничный вывод задаётся параметрами pageIndex (по умолчанию 1) и pageSize (по умолчанию 30); помимо массива items ответ содержит общее количество элементов count. Каждый элемент включает счётчик counter, источник запуска trigger (например, changes), статус (например, passed), git-ревизию и временные метки.
Параметры:
| Параметр | Место | Тип | Обязательный | Описание |
|---|---|---|---|---|
repositoryId |
Path | UUID | Да | ID репозитория |
pageIndex |
Query | number | Нет | Номер страницы (по умолчанию 1) |
pageSize |
Query | number | Нет | Размер страницы (по умолчанию 30) |
Ответ:
{
"pageIndex": 1,
"pageSize": 30,
"count": 42,
"items": [
{
"id": "770e8400-e29b-41d4-a716-446655440002",
"counter": 5,
"trigger": "changes",
"status": "passed",
"revision": "abc123def456",
"startedAt": "2024-01-15T10:30:00+00:00",
"completedAt": "2024-01-15T10:35:00+00:00",
"createdAt": "2024-01-15T10:30:00+00:00",
"updatedAt": "2024-01-15T10:35:00+00:00"
}
]
}
Ошибки:
404 Not Found— Репозиторий не найден
GET /v1/repository/:repositoryId/pipeline/:pipelineId
Возвращает один пайплайн репозитория по его UUID. Ответ содержит метаданные запуска и выполнения: счётчик counter, источник запуска trigger, статус, git-ревизию revision и времена начала и завершения (startedAt, completedAt).
Параметры:
| Параметр | Место | Тип | Обязательный | Описание |
|---|---|---|---|---|
repositoryId |
Path | UUID | Да | ID репозитория |
pipelineId |
Path | UUID | Да | ID пайплайна |
Ответ:
{
"id": "770e8400-e29b-41d4-a716-446655440002",
"counter": 5,
"trigger": "changes",
"status": "passed",
"revision": "abc123def456",
"startedAt": "2024-01-15T10:30:00+00:00",
"completedAt": "2024-01-15T10:35:00+00:00",
"createdAt": "2024-01-15T10:30:00+00:00",
"updatedAt": "2024-01-15T10:35:00+00:00"
}
Ошибки:
404 Not Found— Репозиторий или пайплайн не найдены
POST /v1/repository/:repositoryId/pipeline/:pipelineId/build
Запускает повторную сборку по существующему пайплайну. Пайплайн переводится в статус building; в ответе возвращается объект Pipeline с обновлёнными startedAt и updatedAt. Повторная сборка доступна только для пайплайнов версии 2 и отклоняется, пока пайплайн находится в статусе waiting или building.
Параметры:
| Параметр | Место | Тип | Обязательный | Описание |
|---|---|---|---|---|
repositoryId |
Path | UUID | Да | ID репозитория |
pipelineId |
Path | UUID | Да | ID пайплайна |
Ответ:
{
"id": "770e8400-e29b-41d4-a716-446655440002",
"counter": 6,
"trigger": "admin",
"status": "building",
"revision": "abc123def456",
"startedAt": "2024-01-15T11:00:00+00:00",
"completedAt": null,
"createdAt": "2024-01-15T10:30:00+00:00",
"updatedAt": "2024-01-15T11:00:00+00:00"
}
Ошибки:
404 Not Found— Репозиторий или пайплайн не найдены400 Bad Request— Пайплайн уже в статусеwaitingилиbuilding
POST /v1/repository/:repositoryId/pipeline/:pipelineId/cancel
Отменяет выполняющийся пайплайн. После отмены пайплайн переходит в статус canceled, а в ответе фиксируются время завершения completedAt и обновлённый updatedAt. Отмена доступна только для пайплайнов версии 2 и только в статусе waiting или building.
Параметры:
| Параметр | Место | Тип | Обязательный | Описание |
|---|---|---|---|---|
repositoryId |
Path | UUID | Да | ID репозитория |
pipelineId |
Path | UUID | Да | ID пайплайна |
Ответ:
{
"id": "770e8400-e29b-41d4-a716-446655440002",
"counter": 6,
"trigger": "changes",
"status": "canceled",
"revision": "abc123def456",
"startedAt": "2024-01-15T11:00:00+00:00",
"completedAt": "2024-01-15T11:02:30+00:00",
"createdAt": "2024-01-15T10:30:00+00:00",
"updatedAt": "2024-01-15T11:02:30+00:00"
}
Ошибки:
404 Not Found— Репозиторий или пайплайн не найдены400 Bad Request— Пайплайн не в статусеwaitingилиbuilding
GET /v1/repository/:repositoryId/pipeline/:pipelineId/output
Возвращает логи выполнения пайплайна из базы данных. Ответ — массив записей, каждая из которых привязана к этапу выполнения (init, git, build, deploy), содержит дату записи и текст сообщения. Логи позволяют проследить ход сборки от инициализации до деплоя.
Параметры:
| Параметр | Место | Тип | Обязательный | Описание |
|---|---|---|---|---|
repositoryId |
Path | UUID | Да | ID репозитория |
pipelineId |
Path | UUID | Да | ID пайплайна |
Ответ:
[
{
"id": "22dc8d59-b5a4-41c4-918e-0d44047a370d",
"task": "init",
"date": "2026-07-07T17:57:04.828Z",
"message": "[>] $CI_PIPELINE_ID=bc098737-1d79-4a1b-b64a-e090afd2c506"
},
{
"id": "eeed5a2a-f3f6-46b0-ba94-2016354c67dc",
"task": "git",
"date": "2026-07-07T17:57:04.829Z",
"message": "[>] Preparing build container for exec task scripts"
},
{
"id": "a7f83336-78e7-4f94-b17f-831fa6744494",
"task": "build",
"date": "2026-07-07T17:57:23.173Z",
"message": "[>] Build image"
}
]
Ошибки:
404 Not Found— Репозиторий или пайплайн не найдены
GET /v1/repository/:repositoryId/pipeline/:pipelineId/errors
Возвращает ошибки, обнаруженные при выполнении пайплайна. Каждая ошибка содержит уровень (ERROR или CRITICAL), описание, рекомендацию по устранению и оригинальную строку лога, что позволяет диагностировать неудавшуюся сборку без разбора сырых логов.
Параметры:
| Параметр | Место | Тип | Обязательный | Описание |
|---|---|---|---|---|
repositoryId |
Path | UUID | Да | ID репозитория |
pipelineId |
Path | UUID | Да | ID пайплайна |
Ответ:
[
{
"level": "ERROR",
"description": "При выполнении команды apk add в Dockerfile (строка 15) не удалось выбрать пакеты: ca-certificates, curl, nodejs — пакеты отсутствуют в репозитории.",
"solution": "Проверьте доступность репозитория пакетов и правильность имён пакетов; при необходимости выполните apk update перед установкой.",
"log": "[build] #5 0.079 ERROR: unable to select packages: ca-certificates (no such package)"
}
]
Ошибки:
404 Not Found— Репозиторий или пайплайн не найдены