Методы для Администратора

Данные методы работают только при наличии прав администратора.


Добавление SSH ключа пользователю

POST /admin/user/{userAlias}/key/create

Запрос добавляет SSH ключ пользователю

Переменная пути запроса Тип Описание
userAlias string Псевдоним пользователя

Request

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

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

Передаваемый параметр Тип Описание
publicKey string ssh ключ пользователя
title string Название для ssh ключа пользователя
expiresAt string Дата окончания действия ключа в формате ISO

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

{
    "publicKey" : "ssh-ed25519 AAAAC3NzaC1lZFHNRPTE5AAAAIDkxja/2VmTEsJDTtf3bI4XYDpb58fvKfSjy7/u8EZeI your_email@gitflic.ru",
    "title": "Название ключа",
    "expiresAt" : "2020-10-10"
}

Responses

STATUS 200 - Успешное добавление SSH ключа:

Пример ответа
    
        {
            "uuid":"089cdbe3-aaaa-aaaa-aaaa-b0edde8eda6d"
            "ublicKey":"ssh-ed25519 AAAAC3NzaC1lZFHNRPTE5AAAAIDkxja/2VmTEsJDTtf3bI4XYDpb58fvKfSjy7/u8EZeI your_email@gitflic.ru"
            "title":"Название ключа"
            "expiresAt": "2020-10-10"
            "userUuid":"f1a94466-aaaa-aaaa-aaaa-744ec3bbd60c"
        }
    
  


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

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

STATUS 422 - Данный ключ уже используется.


Получение списка SSH ключей пользователя

GET /admin/user/{userAlias}/key

Запрос возвращает список всех SSH ключей пользователя

Переменная пути запроса Тип Описание
userAlias string Псевдоним пользователя

Responses

STATUS 200 - Успешное получение информации.

Пример ответа
    
        {
            "_embedded": {
                "userPublicSshKeyModelList": [
                    {
                        "uuid": "b9c4e55a-aaaa-aaaa-aaaa-fb8dc25d9e3f",
                        "publicKey": "ssh-ed25519 AAAAB3NzaC1yc2EAAAADAQABAAABgQDB1AxIDFJr0mBl2MTeY2TOpUz0hDz7Fm5GzU= Михаил@DESKTOP-EPMR5HD\r\n",
                        "title": "Ключ1",
                        "expiresAt": null,
                        "userUuid": "8473a25a-aaaa-aaaa-aaaa-3e5c9e0a4b51"
                    },
                    {
                        "uuid": "05e9982b-aaaa-aaaa-aaaa-ddc9bb0ec3d7",
                        "publicKey": "ssh-ed25519 AAAAC3NzaC1lZVF1NTE5AAAAIDkxja/2VmTEsIMRtf3bI4XYDpb5f8vLfSjy7/u8EZeI your_email@gitflic.ru\r\n",
                        "title": "Ключ2",
                        "expiresAt": null,
                        "userUuid": "8473a25a-aaaa-aaaa-aaaa-3e5c9e0a4b51"
                    }
                ]
            },
            "page": {
                "size": 10,
                "totalElements": 2,
                "totalPages": 1,
                "number": 0
            }
        }
    
  


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

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


Получение SSH ключа пользователя

GET admin/user/{userAlias}/key/{keyUuid}

Запрос возвращает информацию о SSH ключе пользователя

Переменная пути запроса Тип Описание
userAlias string Псевдоним пользователя
keyUuid string ID ключа пользователя

Responses

STATUS 200 - Успешное получение информации.

Пример ответа
    
        {
            "uuid":"0dee836e-aaaa-aaaa-aaaa-65318059de1f"
            "publicKey":"ssh-ed25519 AAAAC3NzaC1lZFHNRPTE5AAAAIDkxja/2VmTEsJDTtf3bI4XYDpb58fvKfSjy7/u8EZeI your_email@gitflic.ru"
            "title":"Название ключа"
            "expiresAt":"2020-10-10T10-10-10Z"
            "userUuid":"f1a94466-aaaa-aaaa-aaaa-744ec3bbd60c"
        }
    
  


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

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


Удаление SSH ключа пользователя

DELETE admin/user/{userAlias}/key/delete/{keyUuid}

Запрос удаляет SSH ключ пользователя

Переменная пути запроса Тип Описание
userAlias string Псевдоним пользователя
keyUuid string ID ключа пользователя

Responses

STATUS 200 - Успешное удаление ключа.

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

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


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

GET /admin/runners/registration-info

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

Responses

STATUS 200 - Успешное получение информации.

Пример ответа
    
      {
        "id":"1"
        "registrationUrl":"http://localhost:8080/-/runner/registration"
        "registrationToken":"0d949a3a-aаaa-аааа-aааа-5fa8c3953e70"
      }
    
  


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

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


Сброс токена для регистрации агента на уровне инстанса

POST /admin/runners/reset-registration-token

Запрос сбрасывает токен для регистрации агента на уровне инстанса.

Responses

STATUS 200 - Успешный сброс токен.

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

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


Создание пользователя

POST /user

Запрос возвращает информацию о созданном пользователе.

Request

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

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

Параметр Описание
email E-mail создаваемого пользователя
password Пароль создаваемого пользователя
alias Псевдоним создаваемого пользователя

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

{
    "email": "email@local.ru",
    "password": "password",
    "alias": "alias"
}

Responses

STATUS 200 - пример JSON:

Пример ответа
    
{
    "id":"f3657c3c-aaaa-aaaa-aaaa-917acb676944"
    "username":"alias"
    "name":null
    "surname":null
    "fullName":null
    "avatar":"http://localhost:8080/upload/img/5c10b16d-aaaa-aaaa-aaaa-76443bc44055.png"
    "cover":null
}
    
  


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

STATUS 422 - Пользователь с такими данными уже существует или введены некорректные данные.


Изменение почты пользователя

PUT /admin/user/{userAlias}/change-email

Запрос изменяет почту пользователя

Переменная пути запроса Тип Описание
userAlias string Псевдоним пользователя

Request

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

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

Параметр Описание
email Новый e-mail пользователя

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

{
    "email": "email@local.ru"
}

Responses

STATUS 200 - успешное изменение почты пользователя.

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

STATUS 422 - Пользователь с такими данными уже существует или введены некорректные данные.


Изменение псевдонима пользователя

PUT /admin/user/{userAlias}/change-username

Запрос изменяет псевдоним пользователя

Переменная пути запроса Тип Описание
userAlias string Псевдоним пользователя

Request

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

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

Параметр Описание
username Новыей псевдоним пользователя

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

{
    "username": "adminuser"
}

Responses

STATUS 200 - Успешное изменение псевдонима пользователя.

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

STATUS 422 - Пользователь с такими данными уже существует или введены некорректные данные.


Изменение пароля пользователя

PUT /admin/user/{userAlias}/change-password

Переменная пути запроса Тип Описание
userAlias string Псевдоним пользователя

Запрос изменяет пароль пользователя.

Request

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

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

Параметр Описание
password Новый пароль пользователя
passwordConfirm Подтверждение пароля

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

{
    "password": "qwerty123",
    "passwordConfirm" : "qwerty123"
}

Responses

STATUS 200 - Успешное изменение пароля пользователя.

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

STATUS 422 - Пользователь с такими данными уже существует или введены некорректные данные.


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

GET /admin/runners

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

Responses

STATUS 200 - пример JSON:

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


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

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


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

GET /admin/runners/{runnerUuid}

Запрос возвращает информацию об агенте

Переменная пути запроса Тип Описание
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 /admin/runners/project/{ownerAlias}/{projectAlias}

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

Переменная пути запроса Тип Описание
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 - Данные по запросу не найдены.


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

GET /admin/runners/company/{companyAlias}

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

Переменная пути запроса Тип Описание
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 - Данные по запросу не найдены.


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

GET /admin/runners/all/jobs?jobStatus

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

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 /admin/runners/{runnerUuid}/jobs?jobStatus

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

Переменная пути запроса Тип Описание
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 - Данные по запросу не найдены.


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

POST /admin/runners/{runnerUuid}/shutdown

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

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

Responses

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

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

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


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

POST /admin/runners/{runnerUuid}/edit

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

Переменная пути запроса Тип Описание
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": "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 - Данные по запросу не найдены.


Метод для удаления агента

DELETE /admin/runners/{runnerUuid}

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

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

Responses

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

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

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