Агенты
Описание структуры 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
- Данные по запросу не найдены.