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

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


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

Поле Тип Описание
disableLdapAuth Boolean Регистрации новых аккаунтов через LDAP доступна false или нет true
disableSamlAuth Boolean Регистрации новых аккаунтов через SAML доступна false или нет true
disableMailAuth Boolean Регистрации новых аккаунтов через почту доступна false или нет true
fileDownloadIsEnabled Boolean Скачивания архива и файлов в проекте доступно true или нет false
pullRepoFromAnonUserIsEnabled Boolean Пулл публичных репозиториев анонимным пользователем доступен true или нет false
downloadReleaseFromAnonUserIsEnabled Boolean Скачивание релизов анонимным пользователям доступно true или нет false
enableEmailValidation Boolean Общая валидация email включена true или нет false
enableDomainValidation Boolean Валидация email по домену включена true или нет false
enableWhiteList Boolean Включена валидация по белому списку true или по черному false
whiteListDomains Set (String) Массив, содержащий домены в белом списке
blackListDomains Set (String) Массив, содержащий домены в черном списке
userAutoConfirm Boolean Новые пользователи автоматически регистрируются с подтвержденной почтой true или нет false
enableApiLimit Boolean Лимит на число запросов к API в част включен true или нет false
userApiCountLimit Integer Максимальное число запросов к API в час
enableCustomSshPort Boolean SSH порт отображается в remote url проектов для всех инстансов true или нет false
sshPort Integer SSH порт отображаемый в remote url проектов для всех инстансов
globalRegistryAnonymousAccess Boolean Анонимные пользователи способны просматривать загруженные пакеты в глобальный реестр пакетов true или нет false
publicRepositoryAutoPermission Boolean Все пользователи способны создавать публичные проекты true или нет false
projectUpdateLag Integer Доступная частота обновления проектов зеркал
sessionMaxInactiveIntervalMinutes Integer Максимальное время в минутах, в течение которого пользователь может оставаться неактивным, прежде чем сеанс будет автоматически завершен
pullMirrorUpdateIntervalMinutes Integer Интервал в минутах для обновления PULL зеркал
pushMirrorUpdateIntervalMinutes Integer Интервал в минутах для обновления PUSH зеркал
projectCreatePermission Boolean Создание проектов доступно всем пользователям true или настраивается отдельно false
teamCreatePermission Boolean Создание команд доступно всем пользователям true или настраивается отдельно false
companyCreatePermission Boolean Создание компаний доступно всем пользователям true или настраивается отдельно false
enableTwoFactor Boolean Двухфакторная аутентификации доступна для входа true или нет false
enableBasicAuth Boolean Базовая аутентификация для получения апи-токена доступна true или нет false
defaultLoginPage String Страница аутентификации по умолчанию. Возможные значения: BASIC, SAML и LDAP
enableBasicLoginPage Boolean Стандартная страница аутентификации доступна true или нет false
enableLdapLoginPage Boolean LDAP страница аутентификации доступна true или нет false
enableSamlLoginPage Boolean SAML страница аутентификации доступна true или нет false
enableOidcLoginPage Boolean OIDC страница аутентификации доступна true или нет false
enableReports Boolean Возможность подачи жалоб на проекты, команды и компании доступна true или нет false
lockUserAccountIfLoginAttemptsHasBeenExceeded Boolean Возможность блокировки входа в аккаунт, если количество попыток входа было превышено, доступна true или нет false
maxUserArchivedPasswords Integer Количество архивируемых паролей
timeToLockUser Integer Продолжительность блокировки после превышения попыток входа (в минутах)
timeToCountFailUserLoginAttempts Integer Время на подсчет количества неудачных попыток входа (в секундах)
archiveUserPasswordsIsEnabled Boolean Использование архивных паролей доступно true или нет false
maxAttemptsToLoginIntoAccount Integer Максимальное количество неудачных попыток ввода пароля, при достижении которого все последующие попытки будут отклонены

Методы для работы с 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 - Данные по запросу не найдены.


Методы для работы с настройками сервиса

Все методы в данном разделе, возвращают JSON-объект, который описывает настройки сервиса.

Изменение доступности регистрации в сервисе

POST /admin/settings/registration

Запрос изменяет возможность регистрации новых аккаунтов через LDAP, SAML или почту.

Request

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

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

Параметр Тип Описание
disableLdapAuth Boolean Доступна ли регистрации новых аккаунтов через LDAP (false) или отключена (true)
disableSamlAuth Boolean Доступна ли регистрации новых аккаунтов через SAML (false) или отключена (true)
disableMailAuth Boolean Доступна ли регистрации новых аккаунтов через почту (false) или отключена (true)

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

{
    "disableLdapAuth" : "false",
    "disableSamlAuth" : "false",
    "disableMailAuth" : "false"
}

Responses

STATUS 200 пример JSON:

Пример JSON тела
    
{
    "disableLdapAuth": false,
    "disableSamlAuth": false,
    "disableMailAuth": false,
    "fileDownloadIsEnabled": true,
    "pullRepoFromAnonUserIsEnabled": true,
    "downloadReleaseFromAnonUserIsEnabled": false,
    "enableEmailValidation": true,
    "enableDomainValidation": false,
    "enableWhiteList": true,
    "whiteListDomains": [
        "local.ru"
    ],
    "blackListDomains": [],
    "userAutoConfirm": false,
    "enableApiLimit": false,
    "userApiCountLimit": 400,
    "enableCustomSshPort": true,
    "sshPort": 1121,
    "globalRegistryAnonymousAccess": false,
    "publicRepositoryAutoPermission": false,
    "projectUpdateLag": 60,
    "sessionMaxInactiveIntervalMinutes": 60,
    "pullMirrorUpdateIntervalMinutes": 30,
    "pushMirrorUpdateIntervalMinutes": 30,
    "projectCreatePermission": true,
    "teamCreatePermission": true,
    "companyCreatePermission": true,
    "enableTwoFactor": true,
    "enableBasicAuth": true,
    "defaultLoginPage": "OIDC",
    "enableBasicLoginPage": true,
    "enableLdapLoginPage": false,
    "enableSamlLoginPage": false,
    "enableOidcLoginPage": true,
    "enableReports": true,
    "lockUserAccountIfLoginAttemptsHasBeenExceeded": false,
    "maxUserArchivedPasswords": 4,
    "timeToLockUser": 30,
    "timeToCountFailUserLoginAttempts": 10,
    "archiveUserPasswordsIsEnabled": true,
    "maxAttemptsToLoginIntoAccount": 6
}
    
  


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


Изменение доступности скачивания архива и файлов в проекте

POST /admin/settings/download

Запрос изменяет доступность скачивания архива и файлов в проекте для всех пользователей.

Request

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

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

Параметр Тип Описание
fileDownload Boolean Доступно ли скачивания архива и файлов проектов (true) или нет (false)

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

{
    "fileDownload" : "true"
}

Responses

STATUS 200 пример JSON:

Пример JSON тела
    
{
    "disableLdapAuth": false,
    "disableSamlAuth": false,
    "disableMailAuth": false,
    "fileDownloadIsEnabled": true,
    "pullRepoFromAnonUserIsEnabled": true,
    "downloadReleaseFromAnonUserIsEnabled": false,
    "enableEmailValidation": true,
    "enableDomainValidation": false,
    "enableWhiteList": true,
    "whiteListDomains": [
        "local.ru"
    ],
    "blackListDomains": [],
    "userAutoConfirm": false,
    "enableApiLimit": false,
    "userApiCountLimit": 400,
    "enableCustomSshPort": true,
    "sshPort": 1121,
    "globalRegistryAnonymousAccess": false,
    "publicRepositoryAutoPermission": false,
    "projectUpdateLag": 60,
    "sessionMaxInactiveIntervalMinutes": 60,
    "pullMirrorUpdateIntervalMinutes": 30,
    "pushMirrorUpdateIntervalMinutes": 30,
    "projectCreatePermission": true,
    "teamCreatePermission": true,
    "companyCreatePermission": true,
    "enableTwoFactor": true,
    "enableBasicAuth": true,
    "defaultLoginPage": "OIDC",
    "enableBasicLoginPage": true,
    "enableLdapLoginPage": false,
    "enableSamlLoginPage": false,
    "enableOidcLoginPage": true,
    "enableReports": true,
    "lockUserAccountIfLoginAttemptsHasBeenExceeded": false,
    "maxUserArchivedPasswords": 4,
    "timeToLockUser": 30,
    "timeToCountFailUserLoginAttempts": 10,
    "archiveUserPasswordsIsEnabled": true,
    "maxAttemptsToLoginIntoAccount": 6
}
    
  


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


Изменение доступности пулла публичных репозиториев анонимным пользователям

POST /admin/settings/pull

Запрос изменяет доступность пулла публичных репозиториев анонимным пользователям.

Request

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

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

Параметр Тип Описание
pullRepoFromAnonUser Boolean Доступен ли пулл публичных репозиториев анонимным пользователям (true) или нет (false)

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

{
    "pullRepoFromAnonUser" : "true"
}

Responses

STATUS 200 пример JSON:

Пример JSON тела
    
{
    "disableLdapAuth": false,
    "disableSamlAuth": false,
    "disableMailAuth": false,
    "fileDownloadIsEnabled": true,
    "pullRepoFromAnonUserIsEnabled": true,
    "downloadReleaseFromAnonUserIsEnabled": false,
    "enableEmailValidation": true,
    "enableDomainValidation": false,
    "enableWhiteList": true,
    "whiteListDomains": [
        "local.ru"
    ],
    "blackListDomains": [],
    "userAutoConfirm": false,
    "enableApiLimit": false,
    "userApiCountLimit": 400,
    "enableCustomSshPort": true,
    "sshPort": 1121,
    "globalRegistryAnonymousAccess": false,
    "publicRepositoryAutoPermission": false,
    "projectUpdateLag": 60,
    "sessionMaxInactiveIntervalMinutes": 60,
    "pullMirrorUpdateIntervalMinutes": 30,
    "pushMirrorUpdateIntervalMinutes": 30,
    "projectCreatePermission": true,
    "teamCreatePermission": true,
    "companyCreatePermission": true,
    "enableTwoFactor": true,
    "enableBasicAuth": true,
    "defaultLoginPage": "OIDC",
    "enableBasicLoginPage": true,
    "enableLdapLoginPage": false,
    "enableSamlLoginPage": false,
    "enableOidcLoginPage": true,
    "enableReports": true,
    "lockUserAccountIfLoginAttemptsHasBeenExceeded": false,
    "maxUserArchivedPasswords": 4,
    "timeToLockUser": 30,
    "timeToCountFailUserLoginAttempts": 10,
    "archiveUserPasswordsIsEnabled": true,
    "maxAttemptsToLoginIntoAccount": 6
}
    
  


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


Изменение доступности скачивания файлов релиза анонимным пользователям

POST /admin/settings/download-release

Запрос изменяет доступность скачивания файлов релиза анонимным пользователям.

Request

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

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

Параметр Тип Описание
downloadFromAnonUserEnable Boolean Доступно ли скачивание файлов релиза анонимным пользователям (true) или нет (false)

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

{
    "downloadFromAnonUserEnable" : "false"
}

Responses

STATUS 200 пример JSON:

Пример JSON тела
    
{
    "disableLdapAuth": false,
    "disableSamlAuth": false,
    "disableMailAuth": false,
    "fileDownloadIsEnabled": true,
    "pullRepoFromAnonUserIsEnabled": true,
    "downloadReleaseFromAnonUserIsEnabled": false,
    "enableEmailValidation": true,
    "enableDomainValidation": false,
    "enableWhiteList": true,
    "whiteListDomains": [
        "local.ru"
    ],
    "blackListDomains": [],
    "userAutoConfirm": false,
    "enableApiLimit": false,
    "userApiCountLimit": 400,
    "enableCustomSshPort": true,
    "sshPort": 1121,
    "globalRegistryAnonymousAccess": false,
    "publicRepositoryAutoPermission": false,
    "projectUpdateLag": 60,
    "sessionMaxInactiveIntervalMinutes": 60,
    "pullMirrorUpdateIntervalMinutes": 30,
    "pushMirrorUpdateIntervalMinutes": 30,
    "projectCreatePermission": true,
    "teamCreatePermission": true,
    "companyCreatePermission": true,
    "enableTwoFactor": true,
    "enableBasicAuth": true,
    "defaultLoginPage": "OIDC",
    "enableBasicLoginPage": true,
    "enableLdapLoginPage": false,
    "enableSamlLoginPage": false,
    "enableOidcLoginPage": true,
    "enableReports": true,
    "lockUserAccountIfLoginAttemptsHasBeenExceeded": false,
    "maxUserArchivedPasswords": 4,
    "timeToLockUser": 30,
    "timeToCountFailUserLoginAttempts": 10,
    "archiveUserPasswordsIsEnabled": true,
    "maxAttemptsToLoginIntoAccount": 6
}
    
  


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


Изменение возможности для новых пользователей автоматически регистрироваться с подтвержденной почтой

POST /admin/settings/auto-confirm

Запрос изменяет возможность регистрации с подтвержденной почтой.

Request

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

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

Параметр Тип Описание
autoConfirm Boolean Новые пользователи автоматически регистрируются с подтвержденной почтой (true) или нет (false)

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

{
    "autoConfirm" : "false"
}

Responses

STATUS 200 пример JSON:

Пример JSON тела
    
{
    "disableLdapAuth": false,
    "disableSamlAuth": false,
    "disableMailAuth": false,
    "fileDownloadIsEnabled": true,
    "pullRepoFromAnonUserIsEnabled": true,
    "downloadReleaseFromAnonUserIsEnabled": false,
    "enableEmailValidation": true,
    "enableDomainValidation": false,
    "enableWhiteList": true,
    "whiteListDomains": [
        "local.ru"
    ],
    "blackListDomains": [],
    "userAutoConfirm": false,
    "enableApiLimit": false,
    "userApiCountLimit": 400,
    "enableCustomSshPort": true,
    "sshPort": 1121,
    "globalRegistryAnonymousAccess": false,
    "publicRepositoryAutoPermission": false,
    "projectUpdateLag": 60,
    "sessionMaxInactiveIntervalMinutes": 60,
    "pullMirrorUpdateIntervalMinutes": 30,
    "pushMirrorUpdateIntervalMinutes": 30,
    "projectCreatePermission": true,
    "teamCreatePermission": true,
    "companyCreatePermission": true,
    "enableTwoFactor": true,
    "enableBasicAuth": true,
    "defaultLoginPage": "OIDC",
    "enableBasicLoginPage": true,
    "enableLdapLoginPage": false,
    "enableSamlLoginPage": false,
    "enableOidcLoginPage": true,
    "enableReports": true,
    "lockUserAccountIfLoginAttemptsHasBeenExceeded": false,
    "maxUserArchivedPasswords": 4,
    "timeToLockUser": 30,
    "timeToCountFailUserLoginAttempts": 10,
    "archiveUserPasswordsIsEnabled": true,
    "maxAttemptsToLoginIntoAccount": 6
}
    
  


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


Изменение валидации email

POST /admin/settings/email-validation

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

Request

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

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

Параметр Тип Описание
enableEmailValidation Boolean Общая валидация email включена (true) или выключена (false)

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

{
    "enableEmailValidation" : "true"
}

Responses

STATUS 200 пример JSON:

Пример JSON тела
    
{
    "disableLdapAuth": false,
    "disableSamlAuth": false,
    "disableMailAuth": false,
    "fileDownloadIsEnabled": true,
    "pullRepoFromAnonUserIsEnabled": true,
    "downloadReleaseFromAnonUserIsEnabled": false,
    "enableEmailValidation": true,
    "enableDomainValidation": false,
    "enableWhiteList": true,
    "whiteListDomains": [
        "local.ru"
    ],
    "blackListDomains": [],
    "userAutoConfirm": false,
    "enableApiLimit": false,
    "userApiCountLimit": 400,
    "enableCustomSshPort": true,
    "sshPort": 1121,
    "globalRegistryAnonymousAccess": false,
    "publicRepositoryAutoPermission": false,
    "projectUpdateLag": 60,
    "sessionMaxInactiveIntervalMinutes": 60,
    "pullMirrorUpdateIntervalMinutes": 30,
    "pushMirrorUpdateIntervalMinutes": 30,
    "projectCreatePermission": true,
    "teamCreatePermission": true,
    "companyCreatePermission": true,
    "enableTwoFactor": true,
    "enableBasicAuth": true,
    "defaultLoginPage": "OIDC",
    "enableBasicLoginPage": true,
    "enableLdapLoginPage": false,
    "enableSamlLoginPage": false,
    "enableOidcLoginPage": true,
    "enableReports": true,
    "lockUserAccountIfLoginAttemptsHasBeenExceeded": false,
    "maxUserArchivedPasswords": 4,
    "timeToLockUser": 30,
    "timeToCountFailUserLoginAttempts": 10,
    "archiveUserPasswordsIsEnabled": true,
    "maxAttemptsToLoginIntoAccount": 6
}
    
  


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


Изменение валидации email по домену

POST /admin/settings/domain-validation

Запрос изменяет настройки валидации email по домену.

Request

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

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

Параметр Тип Описание
enableDomainValidation Boolean Включена ли валидация email по домену (true) или нет (false)
enableWhiteList Boolean Включена ли валидация по белому списку (true) или по черному (false)
blackListDomains Set (String) Массив, содержащий домены, которые попадут в черный список.
whiteListDomains Set (String) Массив, содержащий домены, которые попадут в белый список

Содержимое параметров blackListDomains и whiteListDomains перезаписывает все раннее сохраненные домены.

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

{
    "enableDomainValidation" : "false",
    "enableWhiteList" : "true",
    "blackListDomains" : [""],
    "whiteListDomains" : ["local.ru"]
}

Responses

STATUS 200 пример JSON:

Пример JSON тела
    
{
    "disableLdapAuth": false,
    "disableSamlAuth": false,
    "disableMailAuth": false,
    "fileDownloadIsEnabled": true,
    "pullRepoFromAnonUserIsEnabled": true,
    "downloadReleaseFromAnonUserIsEnabled": false,
    "enableEmailValidation": true,
    "enableDomainValidation": false,
    "enableWhiteList": true,
    "whiteListDomains": [
        "local.ru"
    ],
    "blackListDomains": [],
    "userAutoConfirm": false,
    "enableApiLimit": false,
    "userApiCountLimit": 400,
    "enableCustomSshPort": true,
    "sshPort": 1121,
    "globalRegistryAnonymousAccess": false,
    "publicRepositoryAutoPermission": false,
    "projectUpdateLag": 60,
    "sessionMaxInactiveIntervalMinutes": 60,
    "pullMirrorUpdateIntervalMinutes": 30,
    "pushMirrorUpdateIntervalMinutes": 30,
    "projectCreatePermission": true,
    "teamCreatePermission": true,
    "companyCreatePermission": true,
    "enableTwoFactor": true,
    "enableBasicAuth": true,
    "defaultLoginPage": "OIDC",
    "enableBasicLoginPage": true,
    "enableLdapLoginPage": false,
    "enableSamlLoginPage": false,
    "enableOidcLoginPage": true,
    "enableReports": true,
    "lockUserAccountIfLoginAttemptsHasBeenExceeded": false,
    "maxUserArchivedPasswords": 4,
    "timeToLockUser": 30,
    "timeToCountFailUserLoginAttempts": 10,
    "archiveUserPasswordsIsEnabled": true,
    "maxAttemptsToLoginIntoAccount": 6
}
    
  


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


Изменение ограничения по количеству запросов к API в час

POST /admin/settings/api-limit

Запрос изменяет ограничение по количеству запросов к API в час.

Request

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

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

Параметр Тип Описание
disableApiLimit Boolean Доступно ли ограничение по количеству запросов (false) или нет (true)
userApiCountLimit Long Количество запросов к API, которое можно отправить в час

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

{
    "disableApiLimit" : "true",
    "userApiCountLimit" : "400"
}

Responses

STATUS 200 пример JSON:

Пример JSON тела
    
{
    "disableLdapAuth": false,
    "disableSamlAuth": false,
    "disableMailAuth": false,
    "fileDownloadIsEnabled": true,
    "pullRepoFromAnonUserIsEnabled": true,
    "downloadReleaseFromAnonUserIsEnabled": false,
    "enableEmailValidation": true,
    "enableDomainValidation": false,
    "enableWhiteList": true,
    "whiteListDomains": [
        "local.ru"
    ],
    "blackListDomains": [],
    "userAutoConfirm": false,
    "enableApiLimit": false,
    "userApiCountLimit": 400,
    "enableCustomSshPort": true,
    "sshPort": 1121,
    "globalRegistryAnonymousAccess": false,
    "publicRepositoryAutoPermission": false,
    "projectUpdateLag": 60,
    "sessionMaxInactiveIntervalMinutes": 60,
    "pullMirrorUpdateIntervalMinutes": 30,
    "pushMirrorUpdateIntervalMinutes": 30,
    "projectCreatePermission": true,
    "teamCreatePermission": true,
    "companyCreatePermission": true,
    "enableTwoFactor": true,
    "enableBasicAuth": true,
    "defaultLoginPage": "OIDC",
    "enableBasicLoginPage": true,
    "enableLdapLoginPage": false,
    "enableSamlLoginPage": false,
    "enableOidcLoginPage": true,
    "enableReports": true,
    "lockUserAccountIfLoginAttemptsHasBeenExceeded": false,
    "maxUserArchivedPasswords": 4,
    "timeToLockUser": 30,
    "timeToCountFailUserLoginAttempts": 10,
    "archiveUserPasswordsIsEnabled": true,
    "maxAttemptsToLoginIntoAccount": 6
}
    
  


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


Изменение ssh порт в remote url проектов для всех инстансов

POST /admin/settings/ssh-port

Запрос включает или отключает отображение ssh порта в ссылке для клонирования проекта по ssh для всех инстансов. Кроме того в запросе можно указать отображаемый номер ssh порта.

Request

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

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

Параметр Тип Описание
enableCustomSshPort Boolean SSH порт отображается в remote url проектов (true) или нет (false)
sshPort Integer Номер ssh порта. Параметр можно передать если в параметре enableCustomSshPort передается значение true

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

{
    "enableCustomSshPort" : "true",
    "sshPort" : "1122"
}

Responses

STATUS 200 пример JSON:

Пример JSON тела
    
{
    "disableLdapAuth": false,
    "disableSamlAuth": false,
    "disableMailAuth": false,
    "fileDownloadIsEnabled": true,
    "pullRepoFromAnonUserIsEnabled": true,
    "downloadReleaseFromAnonUserIsEnabled": false,
    "enableEmailValidation": true,
    "enableDomainValidation": false,
    "enableWhiteList": true,
    "whiteListDomains": [
        "local.ru"
    ],
    "blackListDomains": [],
    "userAutoConfirm": false,
    "enableApiLimit": false,
    "userApiCountLimit": 400,
    "enableCustomSshPort": true,
    "sshPort": 1121,
    "globalRegistryAnonymousAccess": false,
    "publicRepositoryAutoPermission": false,
    "projectUpdateLag": 60,
    "sessionMaxInactiveIntervalMinutes": 60,
    "pullMirrorUpdateIntervalMinutes": 30,
    "pushMirrorUpdateIntervalMinutes": 30,
    "projectCreatePermission": true,
    "teamCreatePermission": true,
    "companyCreatePermission": true,
    "enableTwoFactor": true,
    "enableBasicAuth": true,
    "defaultLoginPage": "OIDC",
    "enableBasicLoginPage": true,
    "enableLdapLoginPage": false,
    "enableSamlLoginPage": false,
    "enableOidcLoginPage": true,
    "enableReports": true,
    "lockUserAccountIfLoginAttemptsHasBeenExceeded": false,
    "maxUserArchivedPasswords": 4,
    "timeToLockUser": 30,
    "timeToCountFailUserLoginAttempts": 10,
    "archiveUserPasswordsIsEnabled": true,
    "maxAttemptsToLoginIntoAccount": 6
}
    
  


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


Изменение возможности просмотра загруженных пакетов в глобальный реестр пакетов для анонимных пользователей

POST /admin/settings/anonymous-global-registry-access

Запрос изменяет возможность просмотра загруженных пакетов в глобальный реестр пакетов для анонимных пользователей

Request

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

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

Параметр Тип Описание
anonymousGlobalRegistryAccess Boolean Доступен ли просмотр пакетов в глобальном реестре для анонимных пользователей (true) или нет (false)

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

{
    "anonymousGlobalRegistryAccess" : "false"
}

Responses

STATUS 200 пример JSON:

Пример JSON тела
    
{
    "disableLdapAuth": false,
    "disableSamlAuth": false,
    "disableMailAuth": false,
    "fileDownloadIsEnabled": true,
    "pullRepoFromAnonUserIsEnabled": true,
    "downloadReleaseFromAnonUserIsEnabled": false,
    "enableEmailValidation": true,
    "enableDomainValidation": false,
    "enableWhiteList": true,
    "whiteListDomains": [
        "local.ru"
    ],
    "blackListDomains": [],
    "userAutoConfirm": false,
    "enableApiLimit": false,
    "userApiCountLimit": 400,
    "enableCustomSshPort": true,
    "sshPort": 1121,
    "globalRegistryAnonymousAccess": false,
    "publicRepositoryAutoPermission": false,
    "projectUpdateLag": 60,
    "sessionMaxInactiveIntervalMinutes": 60,
    "pullMirrorUpdateIntervalMinutes": 30,
    "pushMirrorUpdateIntervalMinutes": 30,
    "projectCreatePermission": true,
    "teamCreatePermission": true,
    "companyCreatePermission": true,
    "enableTwoFactor": true,
    "enableBasicAuth": true,
    "defaultLoginPage": "OIDC",
    "enableBasicLoginPage": true,
    "enableLdapLoginPage": false,
    "enableSamlLoginPage": false,
    "enableOidcLoginPage": true,
    "enableReports": true,
    "lockUserAccountIfLoginAttemptsHasBeenExceeded": false,
    "maxUserArchivedPasswords": 4,
    "timeToLockUser": 30,
    "timeToCountFailUserLoginAttempts": 10,
    "archiveUserPasswordsIsEnabled": true,
    "maxAttemptsToLoginIntoAccount": 6
}
    
  


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


Изменение возможности всем пользователям создавать публичные проекты

Запрос изменяет возможность всем пользователям создавать публичные проекты

POST /admin/settings/public-repository-auto-permission

Request

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

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

Параметр Тип Описание
enabled Boolean Всем пользователям доступно создание публичных проектов (true) или нет (false)

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

{
    "enabled" : "true"
}

Responses

STATUS 200 пример JSON:

Пример JSON тела
    
{
    "disableLdapAuth": false,
    "disableSamlAuth": false,
    "disableMailAuth": false,
    "fileDownloadIsEnabled": true,
    "pullRepoFromAnonUserIsEnabled": true,
    "downloadReleaseFromAnonUserIsEnabled": false,
    "enableEmailValidation": true,
    "enableDomainValidation": false,
    "enableWhiteList": true,
    "whiteListDomains": [
        "local.ru"
    ],
    "blackListDomains": [],
    "userAutoConfirm": false,
    "enableApiLimit": false,
    "userApiCountLimit": 400,
    "enableCustomSshPort": true,
    "sshPort": 1121,
    "globalRegistryAnonymousAccess": false,
    "publicRepositoryAutoPermission": false,
    "projectUpdateLag": 60,
    "sessionMaxInactiveIntervalMinutes": 60,
    "pullMirrorUpdateIntervalMinutes": 30,
    "pushMirrorUpdateIntervalMinutes": 30,
    "projectCreatePermission": true,
    "teamCreatePermission": true,
    "companyCreatePermission": true,
    "enableTwoFactor": true,
    "enableBasicAuth": true,
    "defaultLoginPage": "OIDC",
    "enableBasicLoginPage": true,
    "enableLdapLoginPage": false,
    "enableSamlLoginPage": false,
    "enableOidcLoginPage": true,
    "enableReports": true,
    "lockUserAccountIfLoginAttemptsHasBeenExceeded": false,
    "maxUserArchivedPasswords": 4,
    "timeToLockUser": 30,
    "timeToCountFailUserLoginAttempts": 10,
    "archiveUserPasswordsIsEnabled": true,
    "maxAttemptsToLoginIntoAccount": 6
}
    
  


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


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

POST /admin/settings/mirror-update-lag

Запрос изменяет частоту обновления проекта зеркала пользователем. Время указывается в минутах.

Request

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

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

Параметр Тип Описание
projectUpdateLag Integer Временной интервал в минутах, один раз в который, пользователь может обновить проект-зеркало

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

{
    "projectUpdateLag" : "60"
}

Responses

STATUS 200 пример JSON:

Пример JSON тела
    
{
    "disableLdapAuth": false,
    "disableSamlAuth": false,
    "disableMailAuth": false,
    "fileDownloadIsEnabled": true,
    "pullRepoFromAnonUserIsEnabled": true,
    "downloadReleaseFromAnonUserIsEnabled": false,
    "enableEmailValidation": true,
    "enableDomainValidation": false,
    "enableWhiteList": true,
    "whiteListDomains": [
        "local.ru"
    ],
    "blackListDomains": [],
    "userAutoConfirm": false,
    "enableApiLimit": false,
    "userApiCountLimit": 400,
    "enableCustomSshPort": true,
    "sshPort": 1121,
    "globalRegistryAnonymousAccess": false,
    "publicRepositoryAutoPermission": false,
    "projectUpdateLag": 60,
    "sessionMaxInactiveIntervalMinutes": 60,
    "pullMirrorUpdateIntervalMinutes": 30,
    "pushMirrorUpdateIntervalMinutes": 30,
    "projectCreatePermission": true,
    "teamCreatePermission": true,
    "companyCreatePermission": true,
    "enableTwoFactor": true,
    "enableBasicAuth": true,
    "defaultLoginPage": "OIDC",
    "enableBasicLoginPage": true,
    "enableLdapLoginPage": false,
    "enableSamlLoginPage": false,
    "enableOidcLoginPage": true,
    "enableReports": true,
    "lockUserAccountIfLoginAttemptsHasBeenExceeded": false,
    "maxUserArchivedPasswords": 4,
    "timeToLockUser": 30,
    "timeToCountFailUserLoginAttempts": 10,
    "archiveUserPasswordsIsEnabled": true,
    "maxAttemptsToLoginIntoAccount": 6
}
    
  


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


Изменение продолжительности сеанса

POST /admin/settings/session-max-inactive-interval

Запрос изменяет максимальное время в минутах, в течение которого пользователь может оставаться неактивным, прежде чем сеанс будет автоматически завершен.

Request

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

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

Параметр Тип Описание
sessionMaxInactiveIntervalMinutes Integer Максимальное время сессия в минутах

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

{
    "sessionMaxInactiveIntervalMinutes" : "60"
}

Responses

STATUS 200 пример JSON:

Пример JSON тела
    
{
    "disableLdapAuth": false,
    "disableSamlAuth": false,
    "disableMailAuth": false,
    "fileDownloadIsEnabled": true,
    "pullRepoFromAnonUserIsEnabled": true,
    "downloadReleaseFromAnonUserIsEnabled": false,
    "enableEmailValidation": true,
    "enableDomainValidation": false,
    "enableWhiteList": true,
    "whiteListDomains": [
        "local.ru"
    ],
    "blackListDomains": [],
    "userAutoConfirm": false,
    "enableApiLimit": false,
    "userApiCountLimit": 400,
    "enableCustomSshPort": true,
    "sshPort": 1121,
    "globalRegistryAnonymousAccess": false,
    "publicRepositoryAutoPermission": false,
    "projectUpdateLag": 60,
    "sessionMaxInactiveIntervalMinutes": 60,
    "pullMirrorUpdateIntervalMinutes": 30,
    "pushMirrorUpdateIntervalMinutes": 30,
    "projectCreatePermission": true,
    "teamCreatePermission": true,
    "companyCreatePermission": true,
    "enableTwoFactor": true,
    "enableBasicAuth": true,
    "defaultLoginPage": "OIDC",
    "enableBasicLoginPage": true,
    "enableLdapLoginPage": false,
    "enableSamlLoginPage": false,
    "enableOidcLoginPage": true,
    "enableReports": true,
    "lockUserAccountIfLoginAttemptsHasBeenExceeded": false,
    "maxUserArchivedPasswords": 4,
    "timeToLockUser": 30,
    "timeToCountFailUserLoginAttempts": 10,
    "archiveUserPasswordsIsEnabled": true,
    "maxAttemptsToLoginIntoAccount": 6
}
    
  


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


Изменение интервала обновления зеркал

POST /admin/settings/mirror-update-interval

Запрос изменяет интервала обновления PUSH и PULL зеркал.

Request

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

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

Параметр Тип Описание
pushMirrorUpdateIntervalMinutes Integer Интервал обновления PUSH зеркала в минутах
pullMirrorUpdateIntervalMinutes Integer Интервал обновления PULL зеркала в минутах

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

{
    "pushMirrorUpdateIntervalMinutes": 30,
    "pullMirrorUpdateIntervalMinutes": 30
}

Responses

STATUS 200 пример JSON:

Пример JSON тела
    
{
    "disableLdapAuth": false,
    "disableSamlAuth": false,
    "disableMailAuth": false,
    "fileDownloadIsEnabled": true,
    "pullRepoFromAnonUserIsEnabled": true,
    "downloadReleaseFromAnonUserIsEnabled": false,
    "enableEmailValidation": true,
    "enableDomainValidation": false,
    "enableWhiteList": true,
    "whiteListDomains": [
        "local.ru"
    ],
    "blackListDomains": [],
    "userAutoConfirm": false,
    "enableApiLimit": false,
    "userApiCountLimit": 400,
    "enableCustomSshPort": true,
    "sshPort": 1121,
    "globalRegistryAnonymousAccess": false,
    "publicRepositoryAutoPermission": false,
    "projectUpdateLag": 60,
    "sessionMaxInactiveIntervalMinutes": 60,
    "pullMirrorUpdateIntervalMinutes": 30,
    "pushMirrorUpdateIntervalMinutes": 30,
    "projectCreatePermission": true,
    "teamCreatePermission": true,
    "companyCreatePermission": true,
    "enableTwoFactor": true,
    "enableBasicAuth": true,
    "defaultLoginPage": "OIDC",
    "enableBasicLoginPage": true,
    "enableLdapLoginPage": false,
    "enableSamlLoginPage": false,
    "enableOidcLoginPage": true,
    "enableReports": true,
    "lockUserAccountIfLoginAttemptsHasBeenExceeded": false,
    "maxUserArchivedPasswords": 4,
    "timeToLockUser": 30,
    "timeToCountFailUserLoginAttempts": 10,
    "archiveUserPasswordsIsEnabled": true,
    "maxAttemptsToLoginIntoAccount": 6
}
    
  


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


Изменение возможности создания проектов, компаний и команд

POST /admin/settings/create-permissions

Запрос изменяет возможность создания проектов, компаний или команд для всех пользователей сервиса.

Request

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

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

Параметр Тип Описание
enableCreateProject Boolean Доступно ли создание проектов (true) или нет (false)
enableCreateTeam Boolean Доступно ли создание команд (true) или нет (false)
enableCreateCompany Boolean Доступно ли создание компаний (true) или нет (false)

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

{
    "enableCreateProject" : "true",
    "enableCreateTeam" : "true",
    "enableCreateCompany" : "true"
}

Responses

STATUS 200 пример JSON:

Пример JSON тела
    
{
    "disableLdapAuth": false,
    "disableSamlAuth": false,
    "disableMailAuth": false,
    "fileDownloadIsEnabled": true,
    "pullRepoFromAnonUserIsEnabled": true,
    "downloadReleaseFromAnonUserIsEnabled": false,
    "enableEmailValidation": true,
    "enableDomainValidation": false,
    "enableWhiteList": true,
    "whiteListDomains": [
        "local.ru"
    ],
    "blackListDomains": [],
    "userAutoConfirm": false,
    "enableApiLimit": false,
    "userApiCountLimit": 400,
    "enableCustomSshPort": true,
    "sshPort": 1121,
    "globalRegistryAnonymousAccess": false,
    "publicRepositoryAutoPermission": false,
    "projectUpdateLag": 60,
    "sessionMaxInactiveIntervalMinutes": 60,
    "pullMirrorUpdateIntervalMinutes": 30,
    "pushMirrorUpdateIntervalMinutes": 30,
    "projectCreatePermission": true,
    "teamCreatePermission": true,
    "companyCreatePermission": true,
    "enableTwoFactor": true,
    "enableBasicAuth": true,
    "defaultLoginPage": "OIDC",
    "enableBasicLoginPage": true,
    "enableLdapLoginPage": false,
    "enableSamlLoginPage": false,
    "enableOidcLoginPage": true,
    "enableReports": true,
    "lockUserAccountIfLoginAttemptsHasBeenExceeded": false,
    "maxUserArchivedPasswords": 4,
    "timeToLockUser": 30,
    "timeToCountFailUserLoginAttempts": 10,
    "archiveUserPasswordsIsEnabled": true,
    "maxAttemptsToLoginIntoAccount": 6
}
    
  


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


Изменение возможности включения двухфакторной аутентификации

POST rest-api/admin/settings/2factor

Запрос изменяет возможность включения двухфакторной аутентификации для входа в аккаунт.

Request

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

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

Параметр Тип Описание
enableTwoFactor Boolean Доступно ли использование двухфакторной аутентификации для входа в аккаунт (true) или нет (false)

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

{
    "enableTwoFactor" : "true"
}

Responses

STATUS 200 пример JSON:

Пример JSON тела
    
{
    "disableLdapAuth": false,
    "disableSamlAuth": false,
    "disableMailAuth": false,
    "fileDownloadIsEnabled": true,
    "pullRepoFromAnonUserIsEnabled": true,
    "downloadReleaseFromAnonUserIsEnabled": false,
    "enableEmailValidation": true,
    "enableDomainValidation": false,
    "enableWhiteList": true,
    "whiteListDomains": [
        "local.ru"
    ],
    "blackListDomains": [],
    "userAutoConfirm": false,
    "enableApiLimit": false,
    "userApiCountLimit": 400,
    "enableCustomSshPort": true,
    "sshPort": 1121,
    "globalRegistryAnonymousAccess": false,
    "publicRepositoryAutoPermission": false,
    "projectUpdateLag": 60,
    "sessionMaxInactiveIntervalMinutes": 60,
    "pullMirrorUpdateIntervalMinutes": 30,
    "pushMirrorUpdateIntervalMinutes": 30,
    "projectCreatePermission": true,
    "teamCreatePermission": true,
    "companyCreatePermission": true,
    "enableTwoFactor": true,
    "enableBasicAuth": true,
    "defaultLoginPage": "OIDC",
    "enableBasicLoginPage": true,
    "enableLdapLoginPage": false,
    "enableSamlLoginPage": false,
    "enableOidcLoginPage": true,
    "enableReports": true,
    "lockUserAccountIfLoginAttemptsHasBeenExceeded": false,
    "maxUserArchivedPasswords": 4,
    "timeToLockUser": 30,
    "timeToCountFailUserLoginAttempts": 10,
    "archiveUserPasswordsIsEnabled": true,
    "maxAttemptsToLoginIntoAccount": 6
}
    
  


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


Изменение возможности включения базовой аутентификация для получения апи-токена

POST rest-api/admin/settings/basic-auth

Запрос изменяет возможность включения базовой аутентификация для получения апи-токена.

Request

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

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

Параметр Тип Описание
enableBasicAuth Boolean Доступно ли использование базовой аутентификация для получения апи-токена (true) или нет (false)

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

{
    "enableBasicAuth" : "true"
}

Responses

STATUS 200 пример JSON:

Пример JSON тела
    
{
    "disableLdapAuth": false,
    "disableSamlAuth": false,
    "disableMailAuth": false,
    "fileDownloadIsEnabled": true,
    "pullRepoFromAnonUserIsEnabled": true,
    "downloadReleaseFromAnonUserIsEnabled": false,
    "enableEmailValidation": true,
    "enableDomainValidation": false,
    "enableWhiteList": true,
    "whiteListDomains": [
        "local.ru"
    ],
    "blackListDomains": [],
    "userAutoConfirm": false,
    "enableApiLimit": false,
    "userApiCountLimit": 400,
    "enableCustomSshPort": true,
    "sshPort": 1121,
    "globalRegistryAnonymousAccess": false,
    "publicRepositoryAutoPermission": false,
    "projectUpdateLag": 60,
    "sessionMaxInactiveIntervalMinutes": 60,
    "pullMirrorUpdateIntervalMinutes": 30,
    "pushMirrorUpdateIntervalMinutes": 30,
    "projectCreatePermission": true,
    "teamCreatePermission": true,
    "companyCreatePermission": true,
    "enableTwoFactor": true,
    "enableBasicAuth": true,
    "defaultLoginPage": "OIDC",
    "enableBasicLoginPage": true,
    "enableLdapLoginPage": false,
    "enableSamlLoginPage": false,
    "enableOidcLoginPage": true,
    "enableReports": true,
    "lockUserAccountIfLoginAttemptsHasBeenExceeded": false,
    "maxUserArchivedPasswords": 4,
    "timeToLockUser": 30,
    "timeToCountFailUserLoginAttempts": 10,
    "archiveUserPasswordsIsEnabled": true,
    "maxAttemptsToLoginIntoAccount": 6
}
    
  


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


Изменение страницы авторизации по умолчанию

POST /admin/settings/login-page

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

Request

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

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

Параметр Тип Описание
loginPageUrl String Страница аутентификации по умолчанию. Принимает следующие значения: BASIC, SAML, LDAP и OIDC
isEnableBasic Boolean Доступна ли стандартная страница аутентификации (true) или нет (false)
isEnableLdap Boolean Доступна ли LDAP страница аутентификации (true) или нет (false)
isEnableSaml Boolean Доступна ли SAML страница аутентификации (true) или нет (false)
isEnableOidc Boolean Доступна ли OIDC страница аутентификации (true) или нет (false)

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

{
    "loginPageUrl" : "OIDC",
    "isEnableBasic" : "true",
    "isEnableLdap" : "false",
    "isEnableSaml" : "false",
    "isEnableOIDC" : "true"
}

Responses

STATUS 200 пример JSON:

Пример JSON тела
    
{
    "disableLdapAuth": false,
    "disableSamlAuth": false,
    "disableMailAuth": false,
    "fileDownloadIsEnabled": true,
    "pullRepoFromAnonUserIsEnabled": true,
    "downloadReleaseFromAnonUserIsEnabled": false,
    "enableEmailValidation": true,
    "enableDomainValidation": false,
    "enableWhiteList": true,
    "whiteListDomains": [
        "local.ru"
    ],
    "blackListDomains": [],
    "userAutoConfirm": false,
    "enableApiLimit": false,
    "userApiCountLimit": 400,
    "enableCustomSshPort": true,
    "sshPort": 1121,
    "globalRegistryAnonymousAccess": false,
    "publicRepositoryAutoPermission": false,
    "projectUpdateLag": 60,
    "sessionMaxInactiveIntervalMinutes": 60,
    "pullMirrorUpdateIntervalMinutes": 30,
    "pushMirrorUpdateIntervalMinutes": 30,
    "projectCreatePermission": true,
    "teamCreatePermission": true,
    "companyCreatePermission": true,
    "enableTwoFactor": true,
    "enableBasicAuth": true,
    "defaultLoginPage": "OIDC",
    "enableBasicLoginPage": true,
    "enableLdapLoginPage": false,
    "enableSamlLoginPage": false,
    "enableOidcLoginPage": true,
    "enableReports": true,
    "lockUserAccountIfLoginAttemptsHasBeenExceeded": false,
    "maxUserArchivedPasswords": 4,
    "timeToLockUser": 30,
    "timeToCountFailUserLoginAttempts": 10,
    "archiveUserPasswordsIsEnabled": true,
    "maxAttemptsToLoginIntoAccount": 6
}
    
  


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


Изменение возможности подавать жалобы

POST rest-api/admin/settings/project-report

Запрос изменяет возможность подавать жалобы на проекты, команды или компаниями.

Request

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

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

Параметр Тип Описание
enableReport Boolean Доступна ли возможность подавать жалобы (true) или нет (false)

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

{
    "enableReport" : "true"
}

Responses

STATUS 200 пример JSON:

Пример JSON тела
    
{
    "disableLdapAuth": false,
    "disableSamlAuth": false,
    "disableMailAuth": false,
    "fileDownloadIsEnabled": true,
    "pullRepoFromAnonUserIsEnabled": true,
    "downloadReleaseFromAnonUserIsEnabled": false,
    "enableEmailValidation": true,
    "enableDomainValidation": false,
    "enableWhiteList": true,
    "whiteListDomains": [
        "local.ru"
    ],
    "blackListDomains": [],
    "userAutoConfirm": false,
    "enableApiLimit": false,
    "userApiCountLimit": 400,
    "enableCustomSshPort": true,
    "sshPort": 1121,
    "globalRegistryAnonymousAccess": false,
    "publicRepositoryAutoPermission": false,
    "projectUpdateLag": 60,
    "sessionMaxInactiveIntervalMinutes": 60,
    "pullMirrorUpdateIntervalMinutes": 30,
    "pushMirrorUpdateIntervalMinutes": 30,
    "projectCreatePermission": true,
    "teamCreatePermission": true,
    "companyCreatePermission": true,
    "enableTwoFactor": true,
    "enableBasicAuth": true,
    "defaultLoginPage": "OIDC",
    "enableBasicLoginPage": true,
    "enableLdapLoginPage": false,
    "enableSamlLoginPage": false,
    "enableOidcLoginPage": true,
    "enableReports": true,
    "lockUserAccountIfLoginAttemptsHasBeenExceeded": false,
    "maxUserArchivedPasswords": 4,
    "timeToLockUser": 30,
    "timeToCountFailUserLoginAttempts": 10,
    "archiveUserPasswordsIsEnabled": true,
    "maxAttemptsToLoginIntoAccount": 6
}
    
  


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


Изменение возможности блокировки входа в аккаунт, если количество попыток входа было превышено

POST /admin/settings/lock-account

Запрос изменяет настройки правила блокировки входа в аккаунт, если количество попыток входа было превышено.

Request

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

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

Параметр Тип Описание
lockUser Boolean Ограничено ли количество попыток входа (true) или нет (false)
maxAttempts Integer Максимальное количество неудачных попыток ввода пароля, при достижении которого все последующие попытки будут отклонены
timeToLockUser Integer Продолжительность блокировки после превышения попыток входа (в минутах)
timeToCountFailUserLoginAttempts Integer Время на подсчет количества неудачных попыток входа (в секундах)

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

{
    "lockUser" : "false",
    "maxAttempts" : "6",
    "timeToLockUser" : "30",
    "timeToCountFailUserLoginAttempts" : "10"
}

Responses

STATUS 200 пример JSON:

Пример JSON тела
    
{
    "disableLdapAuth": false,
    "disableSamlAuth": false,
    "disableMailAuth": false,
    "fileDownloadIsEnabled": true,
    "pullRepoFromAnonUserIsEnabled": true,
    "downloadReleaseFromAnonUserIsEnabled": false,
    "enableEmailValidation": true,
    "enableDomainValidation": false,
    "enableWhiteList": true,
    "whiteListDomains": [
        "local.ru"
    ],
    "blackListDomains": [],
    "userAutoConfirm": false,
    "enableApiLimit": false,
    "userApiCountLimit": 400,
    "enableCustomSshPort": true,
    "sshPort": 1121,
    "globalRegistryAnonymousAccess": false,
    "publicRepositoryAutoPermission": false,
    "projectUpdateLag": 60,
    "sessionMaxInactiveIntervalMinutes": 60,
    "pullMirrorUpdateIntervalMinutes": 30,
    "pushMirrorUpdateIntervalMinutes": 30,
    "projectCreatePermission": true,
    "teamCreatePermission": true,
    "companyCreatePermission": true,
    "enableTwoFactor": true,
    "enableBasicAuth": true,
    "defaultLoginPage": "OIDC",
    "enableBasicLoginPage": true,
    "enableLdapLoginPage": false,
    "enableSamlLoginPage": false,
    "enableOidcLoginPage": true,
    "enableReports": true,
    "lockUserAccountIfLoginAttemptsHasBeenExceeded": false,
    "maxUserArchivedPasswords": 4,
    "timeToLockUser": 30,
    "timeToCountFailUserLoginAttempts": 10,
    "archiveUserPasswordsIsEnabled": true,
    "maxAttemptsToLoginIntoAccount": 6
}
    
  


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


Изменение возможности использование архивированного пароль при его изменении

POST /admin/settings/archive-password

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

Request

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

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

Параметр Тип Описание
enableArchiveUserPasswords Boolean Запрещено ли использование архивных паролей (true) или нет (false)
maxUserArchivedPasswords Integer Количество архивируемых паролей

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

{
    "enableArchiveUserPasswords" : "true",
    "maxUserArchivedPasswords" : "4"
}

Responses

STATUS 200 пример JSON:

Пример JSON тела
    
{
    "disableLdapAuth": false,
    "disableSamlAuth": false,
    "disableMailAuth": false,
    "fileDownloadIsEnabled": true,
    "pullRepoFromAnonUserIsEnabled": true,
    "downloadReleaseFromAnonUserIsEnabled": false,
    "enableEmailValidation": true,
    "enableDomainValidation": false,
    "enableWhiteList": true,
    "whiteListDomains": [
        "local.ru"
    ],
    "blackListDomains": [],
    "userAutoConfirm": false,
    "enableApiLimit": false,
    "userApiCountLimit": 400,
    "enableCustomSshPort": true,
    "sshPort": 1121,
    "globalRegistryAnonymousAccess": false,
    "publicRepositoryAutoPermission": false,
    "projectUpdateLag": 60,
    "sessionMaxInactiveIntervalMinutes": 60,
    "pullMirrorUpdateIntervalMinutes": 30,
    "pushMirrorUpdateIntervalMinutes": 30,
    "projectCreatePermission": true,
    "teamCreatePermission": true,
    "companyCreatePermission": true,
    "enableTwoFactor": true,
    "enableBasicAuth": true,
    "defaultLoginPage": "OIDC",
    "enableBasicLoginPage": true,
    "enableLdapLoginPage": false,
    "enableSamlLoginPage": false,
    "enableOidcLoginPage": true,
    "enableReports": true,
    "lockUserAccountIfLoginAttemptsHasBeenExceeded": false,
    "maxUserArchivedPasswords": 4,
    "timeToLockUser": 30,
    "timeToCountFailUserLoginAttempts": 10,
    "archiveUserPasswordsIsEnabled": true,
    "maxAttemptsToLoginIntoAccount": 6
}
    
  


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