CI/CD
Описание структуры JSON-объекта, описывающего конвейер
Поле | Тип | Описание |
---|---|---|
id |
String | ID конвейера |
status |
String | Статус конвейера. Возможные значения: CREATED , PENDING , WAITING_FOR_RESOURCE , RUNNING , SUCCESS , FAILED , CANCELED , SKIPPED , MANUAL , WARNING |
duration |
String | Время продолжительности выполнения контейнера в секундах |
localId |
String | Локальный ID конвейера |
commitId |
String | Хэш коммита, для которого создан конвейер |
projectId |
String | ID проекта, в котором запущен конвейер |
userId |
String | ID пользователя, который запустил конвейер |
beforeCommitId |
String | Устаревший параметр. По умолчанию возвращает null |
ref |
String | Указывает ref для которого запускался конвейер - ветка или тег |
source |
String | Источника, который инициировал конвейер. Возможные значения: PUSH , TRIGGER , SCHEDULE , WEB , API , PARENT_PIPELINE , MERGE_REQUEST_EVENT |
configSource |
String | Устаревший параметр. По умолчанию возвращает null |
failureReason |
String | Причина, по которой конвейер завершился со статусом FAILED |
startedAt |
String | Время, в которое конвейер приступил к выполнению |
finishedAt |
String | Время, в которое был завершен конвейер |
createdAt |
String | Время, в которое был создан конвейер |
tag |
String | Устаревший параметр. По умолчанию возвращает false |
Описание структуры JSON-объекта, описывающего задачу
Поле | Тип | Описание |
---|---|---|
id |
String | ID задачи |
localId |
Integer | Локальный ID задачи |
finishedAt |
Date | Время окончания выполнения |
startedAt |
Date | Время начала выполнения |
name |
String | Имя задачи |
stageName |
String | Имя стадии, к которой прикреплена задача |
tag |
Boolean | Прикреплена ли задача к тегу true или нет false |
ref |
String | Указывает ref для которого запускался конвейер - ветка или тег |
artifactsExpireAt |
Date | Дата, когда артефакт пропадет |
status |
String | Статус задачи. Возможные значения: CREATED , PENDING , WAITING_FOR_RESOURCE , RUNNING , SUCCESS , FAILED , CANCELED , SKIPPED , MANUAL , WARNING |
pipelineLocalId |
Integer | Локальный ID конвейера |
erasedAt |
Depricated | Устаревший параметр. По умолчанию возвращает null |
Описание структуры JSON-объекта, описывающего артефакт
Поле | Тип | Описание |
---|---|---|
id |
String | ID артефакта |
fileType |
Integer | Тип файла |
size |
String | Размер в байтах |
expireAt |
Date | Дата, когда артефакт пропадет |
fileName |
String | Имя файла |
downloadUrl |
String | Путь для скачивания артефакта |
jobLocalId |
Integer | Локальный ID задачи |
Описание структуры JSON-объекта, описывающего настройки времени существования конвейеров
Ознакомиться с настройкой времени существования конвейеров возможно здесь
Поле | Тип | Описание |
---|---|---|
lifetime |
Integer | Срок существования конвейера до автоматического удаления (в днях) |
ownerType |
String | Тип владельца настроек. Возможные значения: COMPANY , TEAM |
uuid |
String | UUID настройки времени существования конвейеров |
enabled |
Boolean | Автоматическое удаление конвейеров включено true или выключено false |
Методы для конвейеров
Метод для получения списка конвейеров проекта
GET /project/{ownerrAlias}/{projectAlias}/cicd/pipeline
Запрос возвращает список конвейеров проекта, есть возможность настройки количества отображаемых объектов на странице
Переменная пути запроса | Тип | Описание |
---|---|---|
ownerAlias |
String | Псевдоним владельца проекта |
projectAlias |
String | Псевдоним проекта |
Responses
STATUS 200
- Список конвейеров успешно возвращен.
Пример ответа
{
"_embedded": {
"restPipelineModelList": [
{
"id": "d4b27a95-aaaa-aaaa-aaaa-97632f700b27",
"status": "SUCCESS",
"duration": 3,
"localId": 2,
"commitId": "86d949be6ec074aaaaaaaaaaaad98acef85341f7",
"projectId": "f980649d-aaaa-aaaa-aaaa-40102294aa2d",
"userId": "02d57aff-aaaa-aaaa-aaaa-9edc50257a42",
"beforeCommitId": null,
"ref": "master",
"source": "WEB",
"configSource": null,
"failureReason": null,
"startedAt": null,
"finishedAt": "2024-09-19T15:08:11.026116",
"createdAt": "2024-09-19T15:08:06.97725",
"tag": false
},
{
"id": "19975dcd-aaaa-aaaa-aaaa-bbd6494c5bc0",
"status": "SUCCESS",
"duration": 3,
"localId": 1,
"commitId": "6d8b6e82f18c5eaaaaaaaaaaaa21e1e1e3a16f2b",
"projectId": "f980649d-aaaa-aaaa-aaaa-40102294aa2d",
"userId": "02d57aff-aaaa-aaaa-aaaa-9edc50257a42",
"beforeCommitId": null,
"ref": "master",
"source": "PUSH",
"configSource": null,
"failureReason": null,
"startedAt": null,
"finishedAt": "2024-09-19T15:07:50.840049",
"createdAt": "2024-09-19T15:06:11.109839",
"tag": false
}
]
},
"page": {
"size": 10,
"totalElements": 2,
"totalPages": 1,
"number": 0
}
}
STATUS 403
- Нет прав для доступа.
STATUS 404
- Данные по запросу не найдены.
Метод для получения информации о задачах
GET /project/{ownerAlias}/{projectAlias}/cicd/pipeline/{localId}/jobs
Запрос возвращает список задач конвейера, есть возможность настройки количества отображаемых объектов на странице
Переменная пути запроса | Тип | Описание |
---|---|---|
ownerAlias |
String | Псевдоним владельца проекта |
projectAlias |
String | Псевдоним проекта |
localId |
String | Номер конвейера |
Responses
STATUS 200
- Список задач указанного конвейера успешно возвращен.
Пример ответа
{
"_embedded": {
"restPipelineJobModelList": [
{
"id": "a550da80-aaaa-aaaa-aaaa-1698bac3e8e9",
"localId": 1,
"finishedAt": "2023-01-01T00:00:00.00000Z",
"startedAt": null,
"name": "job 1",
"stageName": "build",
"tag": false,
"ref": "master",
"erasedAt": null,
"artifactsExpireAt": null,
"status": "SUCCESS",
"pipelineLocalId": 1
}
]
},
"page": {
"size": 10,
"totalElements": 1,
"totalPages": 1,
"number": 0
}
}
STATUS 403
- Нет прав для доступа.
STATUS 404
- Данные по запросу не найдены.
Метод для получения информации об артефактах
GET /project/{ownerAlias}/{projectAlias}/cicd/pipeline/{localId}/artifacts
Запрос возвращает список артефактов конвейера, есть возможность настройки количества отображаемых объектов на странице
Переменная пути запроса | Тип | Описание |
---|---|---|
ownerAlias |
String | Псевдоним владельца проекта |
projectAlias |
String | Псевдоним проекта |
localId |
String | Номер конвейера |
Responses
STATUS 200
- Список артефактов указанного конвейера успешно возвращен.
Пример ответа
{
"_embedded": {
"restPipelineJobArtifactModelList": [
{
"id": "g4i6tfl6-aaaa-aaaa-aaaa-i4t0707fl194",
"fileType": "metadata",
"size": 125667,
"expireAt": "2023-06-13T15:40:26.145095Z",
"fileName": "d00c197c-aaaa-aaaa-aaaa-a902b51f230f.log",
"downloadUrl": "api.gitflic.ru/project/username/projectname/cicd/job/1/artifact/g4i6tfl6-aaaa-aaaa-aaaa-i4t0707fl194/download",
"jobLocalId": 1
}
]
},
"page": {
"size": 1,
"totalElements": 1,
"totalPages": 1,
"number": 0
}
}
STATUS 403
- Нет прав для доступа.
STATUS 404
- Данные по запросу не найдены.
Метод для скачивания артефактов
GET /project/{ownerAlias}/{projectAlias}/cicd/pipeline/{localId}/artifacts-download
Запрос скачивает артефакт конвейера
Переменная пути запроса | Тип | Описание |
---|---|---|
ownerAlias |
String | Псевдоним владельца проекта |
projectAlias |
String | Псевдоним проекта |
localId |
String | Номер конвейера |
Responses
STATUS 200
- Начинается процесс скачивания файла.
STATUS 403
- Нет прав для доступа.
STATUS 404
- Данные по запросу не найдены.
Метод для запуска конвейера
POST /project/{ownerAlias}/{projectAlias}/cicd/pipeline/start
Запрос запускает новый конвейер для стандартной ветки проекта
Переменная пути запроса | Тип | Описание |
---|---|---|
ownerAlias |
String | Псевдоним владельца проекта |
projectAlias |
String | Псевдоним проекта |
Request
Поддерживаемый формат: application/json
Структура тела POST-запроса:
Поле | Тип | Описание |
---|---|---|
refName |
String | Необязательный параметр. Название ветки или тега, на котором необходимо запустить конвейер |
isTag |
Boolean | Обязательный параметр, если указан параметр refName . Значение параметр refName указывает на тег true или на ветку false |
variables |
Object |
Необязательный параметр. Объект, содержащий в себе названия и значения переменных, которые будут существовать только для данного конвейера |
Пример JSON объекта
{
"refName": "master",
"isTag": "false",
"variables": [
{
"key": "pass",
"value" : "123"
},
{
"key": "name",
"value" : "adminuser"
}
]
}
Responses
STATUS 200
- Начало выполнения нового конвейера.
STATUS 403
- Нет прав для доступа.
STATUS 404
- Данные по запросу не найдены.
Метод для перезапуска конвейера
POST /project/{ownerAlias}/{projectAlias}/cicd/pipeline/{localId}/restart
Запрос перезапускает конвейер
Переменная пути запроса | Тип | Описание |
---|---|---|
ownerAlias |
String | Псевдоним владельца проекта |
projectAlias |
String | Псевдоним проекта |
localId |
String | Номер конвейера |
Responses
STATUS 200
- Перезапуск конвейера
STATUS 403
- Нет прав для доступа.
STATUS 404
- Данные по запросу не найдены.
Метод для отмены выполнения конвейера
POST /project/{ownerAlias}/{projectAlias}/cicd/pipeline/{localId}/cancel
Запрос отменяет выполнение конвейера
Переменная пути запроса | Тип | Описание |
---|---|---|
ownerAlias |
String | Псевдоним владельца проекта |
projectAlias |
String | Псевдоним проекта |
localId |
String | Номер конвейера |
Responses
STATUS 200
- Прекращение выполнения конвейера.
STATUS 403
- Нет прав для доступа.
STATUS 404
- Данные по запросу не найдены.
Метод удаления конвейера
DELETE /project/{ownerAlias}/{projectAlias}/cicd/pipeline/{localId}/delete
Запрос удаляет конвейер
Переменная пути запроса | Тип | Описание |
---|---|---|
ownerAlias |
String | Псевдоним владельца проекта |
projectAlias |
String | Псевдоним проекта |
localId |
String | Номер конвейера |
Responses
STATUS 200
- Удаление конвейера.
STATUS 403
- Нет прав для доступа.
STATUS 404
- Данные по запросу не найдены.
Методы для задач
Метод получения информации о задаче по id
GET /project/{ownerAlias}/{projectAlias}/cicd/job/{localId}
Запрос возвращает информацию о задаче
Переменная пути запроса | Тип | Описание |
---|---|---|
ownerAlias |
String | Псевдоним владельца проекта |
projectAlias |
String | Псевдоним проекта |
localId |
String | Номер задачи |
Responses
STATUS 200
- Задача успешно возвращена.
Пример ответа
{
"id": "g00i197t-aaaa-aaaa-aaaa-4902i51t230f",
"localId": 1,
"finishedAt": "2023-01-01T00:00:00.00000Z",
"startedAt": null,
"name": "job 1",
"stageName": "stage",
"tag": false,
"ref": "master",
"erasedAt": null,
"artifactsExpireAt": null,
"status": "FAILED",
"pipelineLocalId": 1
}
STATUS 403
- Нет прав для доступа.
STATUS 404
- Данные по запросу не найдены.
Метод получения информации об артефактах задачи
GET /project/{ownerAlias}/{projectAlias}/cicd/job/{localId}/artifacts
Запрос возвращает информацию об артефактах задачи, есть возможность настройки количества отображаемых объектов на странице
Переменная пути запроса | Тип | Описание |
---|---|---|
ownerAlias |
String | Псевдоним владельца проекта |
projectAlias |
String | Псевдоним проекта |
localId |
String | Номер задачи |
Responses
STATUS 200
- Список артефактов задачи успешно возвращен.
Пример ответа
{
"_embedded": {
"restPipelineJobArtifactModelList": [
{
"id": "g4i6tfl6-aaaa-aaaa-aaaa-i4t0707fl194",
"fileType": "metadata",
"size": 125667,
"expireAt": "2023-01-01T00:00:0.00000Z",
"fileName": "g4i6tfl6-aaaa-aaaa-aaaa-i4t0707fl194.log",
"downloadUrl": "api.gitflic.ru/project/username/projectname/cicd/job/1/artifact/g4i6tfl6-aaaa-aaaa-aaaa-i4t0707fl194/download",
"jobLocalId": 1
}
]
},
"page": {
"size": 1,
"totalElements": 1,
"totalPages": 1,
"number": 0
}
}
STATUS 403
- Нет прав для доступа.
STATUS 404
- Данные по запросу не найдены.
Метод блокировки артефактов задачи
POST /project/{ownerAlias}/{projectAlias}/cicd/job/{localId}/{artifactUuid}/lock
Запрос блокирует артефакт задачи
Переменная пути запроса | Тип | Описание |
---|---|---|
ownerAlias |
String | Псевдоним владельца проекта |
projectAlias |
String | Псевдоним проекта |
localId |
String | Номер задачи |
artifactUuid |
String | UUID артефакта |
Responses
STATUS 200
- Артефакт заблокирован.
STATUS 403
- Нет прав для доступа.
STATUS 404
- Данные по запросу не найдены.
Метод разблокировки артефактов задачи
POST /project/{ownerAlias}/{projectAlias}/cicd/job/{localId}/{artifactUuid}/unlock
Запрос разблокирует артефакт задачи
Переменная пути запроса | Тип | Описание |
---|---|---|
ownerAlias |
String | Псевдоним владельца проекта |
projectAlias |
String | Псевдоним проекта |
localId |
String | Номер задачи |
artifactUuid |
String | UUID артефакта |
Responses
STATUS 200
- Артефакт разблокирован.
STATUS 403
- Нет прав для доступа.
STATUS 404
- Данные по запросу не найдены.
Метод скачивания артефактов задачи
GET /project/{ownerAlias}/{projectAlias}/cicd/job/{localId}/artifacts-download
Запрос начинает процесс скачивания артефактов задачи
Переменная пути запроса | Тип | Описание |
---|---|---|
ownerAlias |
String | Псевдоним владельца проекта |
projectAlias |
String | Псевдоним проекта |
localId |
String | Номер задачи |
Responses
STATUS 200
- Скачивание артефактов.
STATUS 403
- Нет прав для доступа.
STATUS 404
- Данные по запросу не найдены.
Метод скачивания артефакта по uuid
GET /project/{ownerAlias}/{projectAlias}/cicd/job/{localId}/artifact/{artifactUuid}/download
Запрос начинает процесс скачивания артефакта
Переменная пути запроса | Тип | Описание |
---|---|---|
ownerAlias |
String | Псевдоним владельца проекта |
projectAlias |
String | Псевдоним проекта |
localId |
String | Номер задачи |
artifactUuid |
String | UUID артефакта |
Responses
STATUS 200
- Скачивание артефактов.
STATUS 403
- Нет прав для доступа.
STATUS 404
- Данные по запросу не найдены.
Метод перезапуска задачи
POST /project/{ownerAlias}/{projectAlias}/cicd/job/{localId}/restart
Запрос перезапускает задачу
Переменная пути запроса | Тип | Описание |
---|---|---|
ownerAlias |
String | Псевдоним владельца проекта |
projectAlias |
String | Псевдоним проекта |
localId |
String | Номер задачи |
Responses
STATUS 200
- Перезапуск задачи.
STATUS 403
- Нет прав для доступа.
STATUS 404
- Данные по запросу не найдены.
Метод отмены выполнения задачи
POST /project/{ownerAlias}/{projectAlias}/cicd/job/{localId}/cancel
Запрос отменяет выполнение задачи. Отменить можно задачи, которые находятся НЕ в статусе Успех
, Отмена
или Ошибка
Переменная пути запроса | Тип | Описание |
---|---|---|
ownerAlias |
String | Псевдоним владельца проекта |
projectAlias |
String | Псевдоним проекта |
localId |
String | Номер задачи |
Responses
STATUS 200
- Отмена выполнения задачи.
STATUS 400
- Ошибка при попытке отменить задачу в статусе Успех
, Ошибка
или Отменен
STATUS 403
- Нет прав для доступа.
STATUS 404
- Данные по запросу не найдены.
Метод удаления артефакта
DELETE /project/{ownerAlias}/{projectAlias}/cicd/job/{localId}/artifact/{artifactUuid}/delete
Запрос удаляет артефакт
Переменная пути запроса | Тип | Описание |
---|---|---|
ownerAlias |
String | Псевдоним владельца проекта |
projectAlias |
String | Псевдоним проекта |
localId |
String | Номер задачи |
artifactUuid |
String | UUID артефакта |
Responses
STATUS 200
- Удаление артефакта.
STATUS 403
- Нет прав для доступа.
STATUS 404
- Данные по запросу не найдены.
Методы для настроек CI/CD
Метод для получения настроек существования конвейеров
Компании: GET /company/{companyAlias}/cicd/pipeline-lifetime
Команды: GET /team/{teamAlias}/cicd/pipeline-lifetime
Запрос возвращает настройки времени существования конвейеров указанной сущности с данным псевдонимом.
Переменная пути запроса | Тип | Описание |
---|---|---|
companyAlias |
String | Псевдоним компании |
teamAlias |
String | Псевдоним команды |
Responses
STATUS 200
- Настройки времени существования конвейеров возвращены:
Пример ответа
{
"lifetime": 90,
"ownerType": "COMPANY",
"uuid": "986313a5-aaaa-aaaa-aaaa-56f719abb3a0",
"enabled": true
}
STATUS 403
- Нет прав для доступа.
STATUS 404
- Данные по запросу не найдены.
Метод для изменения настроек существования конвейеров
Компании: PATCH /company/{companyAlias}/cicd/pipeline-lifetime/edit
Команды: PATCH /team/{teamAlias}/cicd/pipeline-lifetime/edit
Запрос изменяет и возвращает настройки времени существования конвейеров указанной сущности с данным псевдонимом.
Переменная пути запроса | Тип | Описание |
---|---|---|
companyAlias |
String | Псевдоним компании |
teamAlias |
String | Псевдоним команды |
Request
Поддерживаемый формат JSON
Структура тела PATCH-запроса:
Поле | Тип | Описание |
---|---|---|
enabled |
Boolean | Автоматическое удаление конвейеров включено true или выключено false |
lifetime |
Integer | Срок существования конвейера до автоматического удаления (в днях) |
Пример JSON объекта
{
"enabled": true
"lifetime": 90,
}
Responses
STATUS 200
- Настройки времени существования конвейеров изменены:
Пример ответа
{
"lifetime": 90,
"ownerType": "COMPANY",
"uuid": "986313a5-aaaa-aaaa-aaaa-56f719abb3a0",
"enabled": true
}
STATUS 403
- Нет прав для доступа.
STATUS 404
- Данные по запросу не найдены.
STATUS 422
- В теле запроса не указано обязательно поле.
Метод для применения настроек существования конвейеров к проектам
Компании: POST /company/{companyAlias}/cicd/apply-settings-to-projects
Команды: POST /team/{teamAlias}/cicd/apply-settings-to-projects
Запрос применяет настройки времени существования конвейеров ко всем проектам указанной сущности с данным псевдонимом.
Переменная пути запроса | Тип | Описание |
---|---|---|
companyAlias |
String | Псевдоним компании |
teamAlias |
String | Псевдоним команды |
Responses
STATUS 204
- Настройки времени существования конвейеров применены ко всем дочерним проектам.
STATUS 403
- Нет прав для доступа.
STATUS 404
- Данные по запросу не найдены.