Методы для Администратора
Данные методы работают только при наличии прав администратора.
Методы для работы с SSH ключами
Добавление 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/user?email={email}&username={userAlias}
Запрос возвращает список пользователей, найденных по заданным параметрам, есть возможность настройки количества отображаемых объектов на странице
Переменная пути запроса | Тип | Описание |
---|---|---|
email |
string | Необязательный параметр. Email пользоваетля |
userAlias |
string | Необязательный параметр. Псевдоним пользователя |
Responses
STATUS 200
- пример JSON:
{
"_embedded": {
"restUserAdminModelList": [
{
"id": "2cd3dd9e-aaaa-aaaa-aaaa-9799ce223f67",
"username": "adminuser",
"email": adminuser@admin.local,
"name": "admin",
"surname": "user",
"fullName": "admin user",
"avatar": "https://gitflic.ru/upload/img/b0ea82d9-aaaa-aaaa-aaaa-d75b4da79a67.png",
"cover": "/upload/img/f7f442e1-aaaa-aaaa-aaaa-fb963ac02506.jpg",
"confirmed": true
},
{
"id": "4fd50abd-aaaa-aaaa-aaaa-87186e8a5b67",
"username": "us",
"email": user@test.ru,
"name": "Иван",
"surname": "Иванов",
"fullName": "Иван Иванов",
"avatar": "https://rccw.gitflic.tech/upload/img/20b2f481-aaaa-aaaa-aaaa-ccf26df448e8.png",
"cover": "/upload/img/ff3gv3e1-aaaa-aaaa-aaaa1-5u963ak0f506.jpg",
"confirmed": true
}
]
},
"page": {
"size": 10,
"totalElements": 2,
"totalPages": 1,
"number": 0
}
}
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/registration-info
Запрос возвращает необходимую информацию для регистрации агента на уровне сервиса - URL и токен.
Responses
STATUS 200
- Успешное получение информации.
{
"id":"1"
"registrationUrl":"http://localhost:8080/-/runner/registration"
"registrationToken":"0d949a3a-aaaa-bbbb-cccc-5fa8c3953e70"
}
STATUS 403
- Нет прав для доступа.
STATUS 404
- Данные по запросу не найдены.
Сброс токена для регистрации агента на уровне сервиса
POST /admin/runners/reset-registration-token
Запрос сбрасывает токен для регистрации агента на уровне сервиса.
Responses
STATUS 200
- Успешный сброс токен.
STATUS 403
- Нет прав для доступа.
STATUS 404
- Данные по запросу не найдены.
Метод получения списка агентов
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
- Данные по запросу не найдены.