Перейти к содержанию

Агенты


Описание структуры JSON-объекта, описывающего информацию о регистрации

Поле Тип Описание
id String ID модели для регистрации агента
registrationUrl String URL для регистрации агента
registrationToken String Token для регистрации агента
Описание структуры JSON-объекта, описывающего агент
Поле Тип Описание
id String ID агента
description String Описание агента
connectedAt Boolean Дата подключение агента в формате ISO
active String Активный агент true или нет false
name String Имя агента
platform String Платформа агента
architecture String Архитектура агента
ipAddress String IP-адрес, для которого зарегистрирован агент
tags Object Объект, содержащий список тегов. Агент будет работать только для указанных тегов
ownerType String Тип владельца агента. Возможные значения: PROJECT - уровень проекта, COMPANY - уровень компании, GLOBAL - уровень инстанса
ownerId Integer ID владельца агента
runUntagged Boolean Может ли этот агент выбирать задания без тегов true или нет false
locked Boolean Заблокирован агент true или нет false. Заблокированный агент нельзя привязать к другим проектам
maxTimeoutInSec Integer Максимальное время ожидания задания в секундах
protected Boolean Агент работает только на защищенных ветках true или нет 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 Статус задачи
pipelineLocalId Integer Локальный ID конвейера
erasedAt Depricated Устаревший параметр. По умолчанию возвращает null

Методы для агентов проекта

Метод получения информации для регистрации агента на уровне проекта

GET /project/{ownerAlias}/{projectAlias}/runners/registration-info

Запрос возвращает необходимую информацию для регистрации агента на уровне проекта - URL и токен.

Зарегистрировать агент на уровне проекта можно только в self-hosted версиях.

Переменная пути запроса Тип Описание
ownerAlias String Псевдоним владельца проекта
projectAlias String Псевдоним проекта

Responses

STATUS 200 - пример JSON:

Пример ответа
    
{
    "id": "1",
    "registrationUrl": "http://localhost:8080/-/runner/registration",
    "registrationToken": "12889f05-aaaa-aaaa-aaaa-d8089fa5ad75"
}
    
  

STATUS 403 - Нет прав для доступа.

STATUS 404 - Данные по запросу не найдены.


Метод получения списка агентов проекта

GET /project/{ownerAlias}/{projectAlias}/runners

Запрос возвращает список агентов указанного проекта, есть возможность настройки количества отображаемых объектов на странице

Переменная пути запроса Тип Описание
ownerAlias String Псевдоним владельца проекта
projectAlias String Псевдоним проекта

Responses

STATUS 200 - пример JSON:

Пример ответа
    
{
    "_embedded": {
        "restPipelineRunnerModelList": [
            {
                "id": "c5c48d5f-aaaa-aaaa-aaaa-01aa12228f2d",
                "description": "Описание агента",
                "connectedAt": "2024-06-17T09:06:37.966851",
                "active": true,
                "name": "The Lord of the Eagles",
                "platform": "Linux",
                "architecture": "amd64",
                "ipAddress": "127.0.0.1",
                "tags": [
                    "3.2.1",
                    "3.2.2",
                    "3.2.3"
                ],
                "ownerType": "PROJECT",
                "ownerId": 84,
                "runUntagged": false,
                "locked": false,
                "maxTimeoutInSec": 100,
                "protected": true
            }
        ]
    },
    "page": {
        "size": 10,
        "totalElements": 1,
        "totalPages": 1,
        "number": 0
    }
}
    
  

STATUS 403 - Нет прав для доступа.

STATUS 404 - Данные по запросу не найдены.


Метод получения агента проекта по его UUID

GET /project/{ownerAlias}/{projectAlias}/runners/{runnerUuid}

Запрос возвращает информацию об агенте с указанным UUID, зерегистрированным на проект

Переменная пути запроса Тип Описание
ownerAlias String Псевдоним владельца проекта
projectAlias String Псевдоним проекта
runnerUuid String UUID агента

Responses

STATUS 200 - пример JSON:

Пример ответа
    
{
    "id": "c5c48d5f-aaaa-aaaa-aaaa-01aa12228f2d",
    "description": "Описание агента",
    "connectedAt": "2024-06-17T09:06:37.966851",
    "active": true,
    "name": "The Lord of the Eagles",
    "platform": "Linux",
    "architecture": "amd64",
    "ipAddress": "127.0.0.1",
    "tags": [
        "3.2.1",
        "3.2.2",
        "3.2.3"
    ],
    "ownerType": "PROJECT",
    "ownerId": 84,
    "runUntagged": false,
    "locked": false,
    "maxTimeoutInSec": 100,
    "protected": true
}
    
  

STATUS 403 - Нет прав для доступа.

STATUS 404 - Данные по запросу не найдены.


Метод получения задач всех агентов проекта

GET /project/{ownerAlias}/{projectAlias}/runners/all/jobs?jobStatus

Запрос возвращает информацию о задачах, которые выполнили все агенты данного проекта

Переменная пути запроса Тип Описание
ownerAlias String Псевдоним владельца проекта
projectAlias String Псевдоним проекта

Responses

STATUS 200 - пример JSON:

Пример ответа
    
{
    "_embedded": {
        "restPipelineJobModelList": [
            {
                "id": "c0f4ce7a-aaaa-aaaa-aaaa-f75d22415acc",
                "localId": 2,
                "finishedAt": "2024-06-21T11:38:15.229604Z",
                "startedAt": null,
                "name": "job 1",
                "stageName": "test",
                "tag": false,
                "ref": "master",
                "erasedAt": null,
                "artifactsExpireAt": null,
                "status": "SUCCESS",
                "pipelineLocalId": 2
            },
            {
                "id": "9bd6e1c7-aaaa-aaaa-aaaa-384e89f5e770",
                "localId": 205,
                "finishedAt": "2024-06-21T11:38:35.449307Z",
                "startedAt": null,
                "name": "job 2",
                "stageName": "build",
                "tag": false,
                "ref": "master",
                "erasedAt": null,
                "artifactsExpireAt": null,
                "status": "SUCCESS",
                "pipelineLocalId": 36
            }
        ]
    },
    "page": {
        "size": 2,
        "totalElements": 2,
        "totalPages": 1,
        "number": 0
    }
}
    
  

STATUS 403 - Нет прав для доступа.

STATUS 404 - Данные по запросу не найдены.


Метод получения задач агента проекта с указанным UUID

GET /project/{ownerAlias}/{projectAlias}/runners/{runnerUuid}/jobs?jobStatus

Запрос возвращает информацию о задачах, которые выполнил агент с указанным UUID в данном проекте

Переменная пути запроса Тип Описание
ownerAlias String Псевдоним владельца проекта
projectAlias String Псевдоним проекта
runnerUuid String UUID агента

Responses

STATUS 200 - пример JSON:

Пример ответа
    
{
    "_embedded": {
        "restPipelineJobModelList": [
            {
                "id": "c0f4ce7a-aaaa-aaaa-aaaa-f75d22415acc",
                "localId": 2,
                "finishedAt": "2024-06-21T11:38:15.229604Z",
                "startedAt": null,
                "name": "job 1",
                "stageName": "test",
                "tag": false,
                "ref": "master",
                "erasedAt": null,
                "artifactsExpireAt": null,
                "status": "SUCCESS",
                "pipelineLocalId": 2
            },
            {
                "id": "9bd6e1c7-aaaa-aaaa-aaaa-384e89f5e770",
                "localId": 205,
                "finishedAt": "2024-06-21T11:38:35.449307Z",
                "startedAt": null,
                "name": "job 2",
                "stageName": "build",
                "tag": false,
                "ref": "master",
                "erasedAt": null,
                "artifactsExpireAt": null,
                "status": "SUCCESS",
                "pipelineLocalId": 36
            }
        ]
    },
    "page": {
        "size": 2,
        "totalElements": 2,
        "totalPages": 1,
        "number": 0
    }
}
    
  

STATUS 403 - Нет прав для доступа.

STATUS 404 - Данные по запросу не найдены.


Метод для выключения агента проекта

POST /project/{ownerAlias}/{projectAlias}/runners/{runnerUuid}/shutdown

Запрос отключает агент с указанным UUID, зерегистрированным на проект

Переменная пути запроса Тип Описание
ownerAlias String Псевдоним владельца проекта
projectAlias String Псевдоним проекта
runnerUuid String UUID агента

Responses

STATUS 200 - Агент отключен.

STATUS 403 - Нет прав для доступа.

STATUS 404 - Данные по запросу не найдены.


Метод для редактирования агента проекта

POST /project/{ownerAlias}/{projectAlias}/runners/{runnerUuid}/edit

Запрос редактирует агент с указанным UUID, зерегистрированным на проект, и возвращает информацию о нем

Переменная пути запроса Тип Описание
ownerAlias String Псевдоним владельца проекта
projectAlias String Псевдоним проекта
runnerUuid String UUID агента

Request

Поддерживаемый формат JSON

Структура тела POST-запроса:

Передаваемые параметры Тип Описание
name String Имя агента
description String Описание агента
isActive Boolean Активный агент true или нет false
maxTimeoutInSec Integer Максимальное время ожидания задания в секундах
tags Object Объект, содержащий список тегов. Агент будет работать только для указанных тегов
runUntagged Boolean Может ли этот агент выбирать задания без тегов true или нет false
isLocked Boolean Заблокирован агент true или нет false. Заблокированный агент нельзя привязать к другим проектам
isProtected Boolean Агент работает только на защищенных ветках true или нет false

Пример JSON объекта

{
    "name": "The Lord of the Eagles",
    "description": "Описание агента",
    "isActive": true,
    "maxTimeoutInSec": 100,
    "ipAddress": "127.0.0.1",
    "tags": ["3.2.1","3.2.2", "3.2.3"],
    "runUntagged": false,
    "isLocked": false,
    "isProtected": true
}

Responses

STATUS 200 - пример JSON:

Пример ответа
    
{
    "id": "c5c48d5f-aaaa-aaaa-aaaa-01aa12228f2d",
    "description": "Описание агента",
    "connectedAt": "2024-06-17T09:06:37.966851",
    "active": true,
    "name": "The Lord of the Eagles",
    "platform": "Linux",
    "architecture": "amd64",
    "ipAddress": "127.0.0.1",
    "tags": [
        "3.2.1",
        "3.2.2",
        "3.2.3"
    ],
    "ownerType": "PROJECT",
    "ownerId": 84,
    "runUntagged": false,
    "locked": false,
    "maxTimeoutInSec": 100,
    "protected": true
}
    
  

STATUS 403 - Нет прав для доступа.

STATUS 404 - Данные по запросу не найдены.


Метод для удаления агента проекта по его UUID

DELETE /project/{ownerAlias}/{projectAlias}/runners/{runnerUuid}

Запрос удаляет агент с указанным UUID, зерегистрированным на проект

Переменная пути запроса Тип Описание
ownerAlias String Псевдоним владельца проекта
projectAlias String Псевдоним проекта
runnerUuid String UUID агента

Responses

STATUS 200 - Агент удален.

STATUS 403 - Нет прав для доступа.

STATUS 404 - Данные по запросу не найдены.


Методы для агентов компании

Метод получения информации для регистрации агента на уровне компании

GET /company/{companyAlias}/runners/registration-info

Запрос возвращает необходимую информацию для регистрации агента на уровне компании - URL и токен.

Переменная пути запроса Тип Описание
companyAlias String Псевдоним компании

Responses

STATUS 200 - пример JSON:

Пример ответа
    
{
    "id": "1",
    "registrationUrl": "http://localhost:8080/-/runner/registration",
    "registrationToken": "12889f05-aaaa-aaaa-aaaa-d8089fa5ad75"
}
    
  

STATUS 403 - Нет прав для доступа.

STATUS 404 - Данные по запросу не найдены.


Метод получения списка агентов компании

GET /company/{companyAlias}/runners

Запрос возвращает список агентов указанной компании, есть возможность настройки количества отображаемых объектов на странице

Переменная пути запроса Тип Описание
companyAlias String Псевдоним компании

Responses

STATUS 200 - пример JSON:

Пример ответа
    
{
    "_embedded": {
        "restPipelineRunnerModelList": [
            {
                "id": "74af2044-aaaa-aaaa-aaaa-47d0ef20639a",
                "description": "Описание агента",
                "connectedAt": "2024-06-03T08:37:21.33104",
                "active": true,
                "name": "Gloin",
                "platform": "Linux",
                "architecture": "amd64",
                "ipAddress": "127.0.0.1",
                "tags": [
                    "4.4",
                    "4.5",
                    "4.6"
                ],
                "ownerType": "COMPANY",
                "ownerId": 4,
                "runUntagged": false,
                "locked": false,
                "maxTimeoutInSec": 100,
                "protected": true
            }
        ]
    },
    "page": {
        "size": 10,
        "totalElements": 1,
        "totalPages": 1,
        "number": 0
    }
}
    
  

STATUS 403 - Нет прав для доступа.

STATUS 404 - Данные по запросу не найдены.


Метод получения агента компании по его UUID

GET /company/{companyAlias}/runners/{runnerUuid}

Запрос возвращает информацию об агенте с указанным UUID, зерегистрированным на компанию

Переменная пути запроса Тип Описание
companyAlias String Псевдоним компании
runnerUuid String UUID агента

Responses

STATUS 200 - пример JSON:

Пример ответа
    
{
    "id": "74af2044-aaaa-aaaa-aaaa-47d0ef20639a",
    "description": "Описание агента",
    "connectedAt": "2024-06-03T08:37:21.33104",
    "active": true,
    "name": "Gloin",
    "platform": "Linux",
    "architecture": "amd64",
    "ipAddress": "127.0.0.1",
    "tags": [
        "4.4",
        "4.5",
        "4.6"
    ],
    "ownerType": "COMPANY",
    "ownerId": 4,
    "runUntagged": false,
    "locked": false,
    "maxTimeoutInSec": 100,
    "protected": true
}
    
  

STATUS 403 - Нет прав для доступа.

STATUS 404 - Данные по запросу не найдены.


Метод получения задач всех агентов компании

GET /company/{companyAlias}/runners/all/jobs?jobStatus

Запрос возвращает информацию о задачах, которые выполнили все агенты данной компании

Переменная пути запроса Тип Описание
companyAlias String Псевдоним компании

Responses

STATUS 200 - пример JSON:

Пример ответа
    
{
    "_embedded": {
        "restPipelineJobModelList": [
            {
                "id": "c0f4ce7a-aaaa-aaaa-aaaa-f75d22415acc",
                "localId": 2,
                "finishedAt": "2024-06-21T11:38:15.229604Z",
                "startedAt": null,
                "name": "job 1",
                "stageName": "test",
                "tag": false,
                "ref": "master",
                "erasedAt": null,
                "artifactsExpireAt": null,
                "status": "SUCCESS",
                "pipelineLocalId": 2
            },
            {
                "id": "9bd6e1c7-aaaa-aaaa-aaaa-384e89f5e770",
                "localId": 205,
                "finishedAt": "2024-06-21T11:38:35.449307Z",
                "startedAt": null,
                "name": "job 2",
                "stageName": "build",
                "tag": false,
                "ref": "master",
                "erasedAt": null,
                "artifactsExpireAt": null,
                "status": "SUCCESS",
                "pipelineLocalId": 36
            }
        ]
    },
    "page": {
        "size": 2,
        "totalElements": 2,
        "totalPages": 1,
        "number": 0
    }
}
    
  

STATUS 403 - Нет прав для доступа.

STATUS 404 - Данные по запросу не найдены.


Метод получения задач агента компании с указанным UUID

GET /company/{companyAlias}/runners/{runnerUuid}/jobs?jobStatus

Запрос возвращает информацию о задачах, которые выполнил агент с указанным UUID в данной компании

Переменная пути запроса Тип Описание
companyAlias String Псевдоним компании
runnerUuid String UUID агента

Responses

STATUS 200 - пример JSON:

Пример ответа
    
{
    "_embedded": {
        "restPipelineJobModelList": [
            {
                "id": "c0f4ce7a-aaaa-aaaa-aaaa-f75d22415acc",
                "localId": 2,
                "finishedAt": "2024-06-21T11:38:15.229604Z",
                "startedAt": null,
                "name": "job 1",
                "stageName": "test",
                "tag": false,
                "ref": "master",
                "erasedAt": null,
                "artifactsExpireAt": null,
                "status": "SUCCESS",
                "pipelineLocalId": 2
            },
            {
                "id": "9bd6e1c7-aaaa-aaaa-aaaa-384e89f5e770",
                "localId": 205,
                "finishedAt": "2024-06-21T11:38:35.449307Z",
                "startedAt": null,
                "name": "job 2",
                "stageName": "build",
                "tag": false,
                "ref": "master",
                "erasedAt": null,
                "artifactsExpireAt": null,
                "status": "SUCCESS",
                "pipelineLocalId": 36
            }
        ]
    },
    "page": {
        "size": 2,
        "totalElements": 2,
        "totalPages": 1,
        "number": 0
    }
}
    
  

STATUS 403 - Нет прав для доступа.

STATUS 404 - Данные по запросу не найдены.


Метод для выключения агента компании

POST /company/{companyAlias}/runners/{runnerUuid}/shutdown

Запрос отключает агент с указанным UUID, зерегистрированным на компанию

Переменная пути запроса Тип Описание
companyAlias String Псевдоним компании
runnerUuid String UUID агента

Responses

STATUS 200 - Агент отключен.

STATUS 403 - Нет прав для доступа.

STATUS 404 - Данные по запросу не найдены.


Метод для редактирования агента компании

POST /company/{companyAlias}/runners/{runnerUuid}/edit

Запрос редактирует агент с указанным UUID, зерегистрированным на компанию, и возвращает информацию о нем

Переменная пути запроса Тип Описание
companyAlias String Псевдоним компании
runnerUuid String UUID агента

Request

Поддерживаемый формат JSON

Структура тела POST-запроса:

Передаваемые параметры Тип Описание
name String Имя агента
description String Описание агента
isActive Boolean Активный агент true или нет false
maxTimeoutInSec Integer Максимальное время ожидания задания в секундах
ipAddress String IP-адрес, для которого зарегистрирован агент
tags Object Объект, содержащий список тегов. Агент будет работать только для указанных тегов
runUntagged Boolean Может ли этот агент выбирать задания без тегов true или нет false
isLocked Boolean Заблокирован агент true или нет false. Заблокированный агент нельзя привязать к другим проектам
isProtected Boolean Агент работает только на защищенных ветках true или нет false

Пример JSON объекта

{
    "name": "Gloin",
    "description": "Описание агента",
    "isActive": true,
    "maxTimeoutInSec": 100,
    "ipAddress": "127.0.0.1",
    "tags": ["4.4","4.5", "4.6"],
    "runUntagged": false,
    "isLocked": false,
    "isProtected": true
}

Responses

STATUS 200 - пример JSON:

Пример ответа
    
{
    "id": "74af2044-aaaa-aaaa-aaaa-47d0ef20639a",
    "description": "Описание агента",
    "connectedAt": "2024-06-03T08:37:21.33104",
    "active": true,
    "name": "Gloin",
    "platform": "Linux",
    "architecture": "amd64",
    "ipAddress": "127.0.0.1",
    "tags": [
        "4.4",
        "4.5",
        "4.6"
    ],
    "ownerType": "COMPANY",
    "ownerId": 4,
    "runUntagged": false,
    "locked": false,
    "maxTimeoutInSec": 100,
    "protected": true
}
    
  

STATUS 403 - Нет прав для доступа.

STATUS 404 - Данные по запросу не найдены.


Метод для удаления агента компании по его UUID

DELETE /company/{companyAlias}/runners/{runnerUuid}

Запрос удаляет агент с указанным UUID, зерегистрированным на компанию

Переменная пути запроса Тип Описание
companyAlias String Псевдоним компании
runnerUuid String UUID агента

Responses

STATUS 200 - Агент удален.

STATUS 403 - Нет прав для доступа.

STATUS 404 - Данные по запросу не найдены.