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

Репозитории реестра

Функционал доступен в Enterprise и Atlas версиях.


Описание работы функционала репозиториев реестра доступно здесь.

Описание структуры JSON-объекта, описывающего репозиторий реестра
Поле Тип Описание
title String Название репозитория реестра
repositoryType String Тип репозитория реестра. Возможные значения: LOCAL, PROXY, LOCAL_CACHE, VIRTUAL, TRASH_CAN
repositoryUuid String UUID репозитория реестра
packageType String Тип пакетов репозитория реестра. Возможные значения: generic, maven, npm, pypi, nuget, composer, opm, debian, container, helm, cran, rpm
description String Описание репозитория реестра

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

Проекта: GET /registry/project/{ownerAlias}/{projectAlias}/repositories

Компании: GET /registry/company/{companyAlias}/repositories

Всего сервиса: GET /registry/instance/{projectAlias}/repositories

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

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

Responses

STATUS 200 - Список репозиториев реестра успешно возвращен:

Пример ответа
    
{
    "_embedded": {
        "shortRegistryRepositoryDtoList": [
            {
                "title": "generic-local",
                "repositoryType": "LOCAL",
                "repositoryUuid": "b24769db-aaaa-aaaa-aaaa-a3006f0271f6",
                "packageType": "generic",
                "description": "Локальный репозиторий generic реестра",
            },
            {
                "title": "maven-proxy",
                "repositoryType": "PROXY",
                "repositoryUuid": "ddc72f64-aaaa-aaaa-aaaa-e212e088bffc",
                "packageType": "maven",
                "description": "Проксирующий репозиторий maven реестра",
            },
            {
                "title": "maven-proxy-cache",
                "repositoryType": "LOCAL_CACHE",
                "repositoryUuid": "fa6d59b5-aaaa-aaaa-aaaa-cf1806aa929c",
                "packageType": "maven",
                "description": null,
            }
            {
                "title": "maven-virtual",
                "repositoryType": "VIRTUAL",
                "repositoryUuid": "3cd7ccd1-aaaa-aaaa-aaaa-a1bfd03f9801",
                "packageType": "maven",
                "description": "Виртуальный репозиторий maven реестра",
            },
            {
                "title": "trashCan",
                "repositoryType": "TRASH_CAN",
                "repositoryUuid": "e510b751-aaaa-aaaa-aaaa-737daa2e7210",
                "packageType": "generic",
                "description": null,
            },
        ]
    },
    "page": {
        "size": 10,
        "totalElements": 5,
        "totalPages": 1,
        "number": 0
    }
}
    
  

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

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


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

Проекта: GET /registry/project/{ownerAlias}/{projectAlias}/repositories/{registryRepositoryUuid}

Компании: GET /registry/company/{companyAlias}/repositories/{registryRepositoryUuid}

Всего сервиса: GET /registry/instance/{projectAlias}/repositories/{registryRepositoryUuid}

Запрос возвращает репозиторий реестра указанного владельца по указанному UUID.

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

Responses

STATUS 200 - Репозиторий реестра успешно возвращен:

Пример ответа
    
{
    "title": "generic-local",
    "repositoryType": "LOCAL",
    "repositoryUuid": "b24769db-aaaa-aaaa-aaaa-a3006f0271f6",
    "packageType": "generic",
    "description": "Локальный репозиторий generic реестра",
}
    
  

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

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


Метод создания репозитория реестра

Проекта: POST /registry/project/{ownerAlias}/{projectAlias}/repositories

Компании: POST /registry/company/{companyAlias}/repositories

Всего сервиса: POST /registry/instance/{projectAlias}/repositories

Запрос создает репозиторий реестра во владении указанной сущности и возвращает его UUID.

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

Request

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

В зависимости от набора полей, которые передаются в теле запроса, возможно создание локального, проксирующего или виртуального репозитория.

Поля для создания локального репозитория
Параметр Тип Описание
type String Тип репозитория реестра. Для создания локального репозитория необходимо указать значение LOCAL
repositoryName String Название репозитория реестра
description String Не обязательный. Описание репозитория реестра
packageType String Тип пакетов репозитория реестра. Возможные значения: generic, maven, npm, pypi, nuget, composer, opm, debian, container, helm, cran, rpm
settings Object Объект с полями, описывающими настройки локального репозитория

Набор полей, описывающих настройки локального репозитория:

Параметр Тип Описание
hasAnonymousAccess Boolean Не обязательный. Анонимный доступ разрешен true или запрещен false (по умолчанию)
isDeletePackageAllowed Boolean Не обязательный. Удаление пакетов разрешено true или запрещено false (по умолчанию)
packageReuploadType String Не обязательный. Тип перезаписи пакетов. Возможные значения: NONE - запрет перезаписывания или OVERRIDE - перезапись файлов (по умолчанию)

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

{
  "type" : "LOCAL",
  "repositoryName": "generic-local",
  "description": "Локальный репозиторий generic реестра",
  "packageType": "generic",
  "settings": {
    "hasAnonymousAccess": true,
    "isDeletePackageAllowed": true,
    "packageReuploadType": "OVERRIDE"
  }
}
Responses

STATUS 201 - Локальный репозиторий реестра успешно создан:

Пример ответа
    
{
    "title": "generic-local",
    "repositoryType": "LOCAL",
    "repositoryUuid": "b24769db-aaaa-aaaa-aaaa-a3006f0271f6",
    "packageType": "generic",
    "description": "Локальный репозиторий generic реестра",
}
    
  

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

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

Поля для создания проксирующего репозитория
Параметр Тип Описание
type String Тип репозитория реестра. Для создания проксирующего репозитория необходимо указать значение PROXY
repositoryName String Название репозитория реестра
description String Не обязательный. Описание репозитория реестра
packageType String Тип пакетов репозитория реестра. Возможные значения: maven, npm, pypi, nuget, container
proxySettings Object Объект с полями, описывающими настройки проксирующего репозитория

Набор полей, описывающих настройки проксирующего репозитория:

Параметр Тип Описание
url String Ссылка на внешний реестр, куда будут проксироваться запросы
username String Не обязательный. Имя пользователя для авторизации во внешнем реестре
token String Не обязательный. Токен или пароль для авторизации во внешнем реестре
isCaching Boolean Не обязательный. Репозиторий будет сохранять кэшированные артефакты локально true или нет false (по умолчанию)
isOffline Boolean Не обязательный. Получение артефактов возможно только из локального кэша true или нет false (по умолчанию)
expireHours Integer Не обязательный. Время жизни неиспользуемых артефактов (в часах). При значении 0 (по умолчанию) указывает на отсутствие ограничения.
metadataRetrievalIntervalSeconds Integer Не обязательный. Период кэширования метаданных артефакта (в секундах). Значение 0 указывает на отсутствие кэширования. По умолчанию 7200.

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

{
  "type" : "PROXY",
  "repositoryName": "maven-proxy",
  "description": "Проксирующий репозиторий maven реестра",
  "packageType": "maven",
  "proxySettings": {
    "url": "https://repo.maven.apache.org/maven2/",
    "username": "username",
    "isCaching": true,
    "token": "qwerty123",
    "isOffline": false,
    "expireHours": 24,
    "metadataRetrievalIntervalSeconds": 7200
  }
}

Responses

STATUS 201 - Проксирующий репозиторий реестра успешно создан:

Пример ответа
    
{
    "title": "maven-proxy",
    "repositoryType": "PROXY",
    "repositoryUuid": "ddc72f64-aaaa-aaaa-aaaa-e212e088bffc",
    "packageType": "maven",
    "description": "Проксирующий репозиторий maven реестра",
}
    
  

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

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

Поля для создания виртуального репозитория
Параметр Тип Описание
type String Тип репозитория реестра. Для создания виртуального репозитория необходимо указать значение VIRTUAL
repositoryName String Название репозитория реестра
description String Не обязательный. Описание репозитория реестра
packageType String Тип пакетов репозитория реестра. Возможные значения: generic, maven, npm, pypi, nuget, composer, opm, debian, container, helm, cran, rpm
virtualSettings Object Объект с полями, описывающими настройки виртуального репозитория

Настройки виртуального репозитория:

Параметр Тип Описание
includedRepositoryUuids Array Массив, содержащий UUID репозиториев реестра, которые будет включены в создаваемый виртуальный репозиторий
allowRemoteProxying Boolean Не обязательный. Запросы к проксирующим репозиториям могут извлекать проксируемые пакеты true или не могут false (по умолчанию)
deploymentRepositoryUuid String Не обязательный. UUID локального репозитория реестра, выбранного в качестве репозитория развертывания по умолчанию

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

{
  "type" : "VIRTUAL",
  "repositoryName": "maven-virtual",
  "description": "Виртуальный репозиторий maven реестра",
  "packageType": "maven",
  "virtualSettings": {
    "includedRepositoryUuids": [
      "ddc72f64-aaaa-aaaa-aaaa-e212e088bffc",
      "fa6d59b5-aaaa-aaaa-aaaa-cf1806aa929c"
    ]
    "allowRemoteProxying": true
    "deploymentRepositoryUuid": "fa6d59b5-aaaa-aaaa-aaaa-cf1806aa929c"
  }
}

Responses

STATUS 201 - Виртуальный репозиторий реестра успешно создан:

Пример ответа
    
{
    "title": "maven-virtual",
    "repositoryType": "VIRTUAL",
    "repositoryUuid": "3cd7ccd1-aaaa-aaaa-aaaa-a1bfd03f9801",
    "packageType": "maven",
    "description": "Виртуальный репозиторий maven реестра",
}
    
  

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

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


Метод изменения репозитория реестра

Проекта: PUT /registry/project/{ownerAlias}/{projectAlias}/repositories/{registryRepositoryUuid}

Компании: PUT /registry/company/{companyAlias}/repositories/{registryRepositoryUuid}

Всего сервиса: PUT /registry/instance/repositories/{registryRepositoryUuid}

Запрос изменяет указанный репозиторий реестра указанного владельца и возвращает его UUID.

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

Request

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

В зависимости от набора полей, которые передаются в теле запроса, возможно изменение локального, проксирующего или виртуального репозитория.

Поля для изменения локального репозитория
Параметр Тип Описание
type String Тип репозитория реестра. Для изменения локального репозитория необходимо указать значение LOCAL
description String Не обязательный. Описание репозитория реестра
settings Object Объект с полями, описывающими настройки локального репозитория

Набор полей, описывающих настройки локального репозитория:

Параметр Тип Описание
hasAnonymousAccess Boolean Не обязательный. Анонимный доступ разрешен true или запрещен false (по умолчанию)
isDeletePackageAllowed Boolean Не обязательный. Удаление пакетов разрешено true или запрещено false (по умолчанию)
packageReuploadType String Не обязательный. Тип перезаписи пакетов. Возможные значения: NONE - запрет перезаписывания или OVERRIDE - перезапись файлов

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

{
  "type" : "LOCAL",
  "description": "Локальный репозиторий generic реестра",
  "settings": {
    "hasAnonymousAccess": true,
    "isDeletePackageAllowed": true,
    "packageReuploadType": "OVERRIDE"
  }
}

Responses

STATUS 200 - Локальный репозиторий реестра успешно изменен:

Пример ответа
    
{
    "title": "generic-local",
    "repositoryType": "LOCAL",
    "repositoryUuid": "b24769db-aaaa-aaaa-aaaa-a3006f0271f6",
    "packageType": "generic",
    "description": "Локальный репозиторий generic реестра",
}
    
  

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

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

Поля для изменения проксирующего репозитория
Параметр Тип Описание
type String Тип репозитория реестра. Для изменения проксирующего репозитория необходимо указать значение PROXY
description String Не обязательный. Описание репозитория реестра
proxySettings Object Объект с полями, описывающими настройки проксирующего репозитория

Набор полей, описывающих настройки проксирующего репозитория:

Параметр Тип Описание
url String Не обязательный. Ссылка на внешний реестр, куда будут проксироваться запросы
username String Не обязательный. Имя пользователя для авторизации во внешнем реестре
token String Не обязательный. Токен или пароль для авторизации во внешнем реестре
isCaching Boolean Не обязательный. Репозиторий будет сохранять кэшированные артефакты локально true или нет false
isOffline Boolean Не обязательный. Получение артефактов возможно только из локального кэша true или нет false (по умолчанию)
expireHours Integer Не обязательный. Время жизни неиспользуемых артефактов (в часах)
metadataRetrievalIntervalSeconds Integer Не обязательный. Период кэширования метаданных артефакта (в секундах)

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

{
  "type" : "PROXY",
  "description": "Проксирующий репозиторий maven реестра",
  "proxySettings": {
    "url": "https://repo.maven.apache.org/maven2/",
    "username": "username",
    "isCaching": true,
    "token": "qwerty123",
    "isOffline": false,
    "expireHours": 24,
    "metadataRetrievalIntervalSeconds": 7200
  }
}

Responses

STATUS 200 - Проксирующий репозиторий реестра успешно изменен:

Пример ответа
    
{
    "title": "maven-proxy",
    "repositoryType": "PROXY",
    "repositoryUuid": "ddc72f64-aaaa-aaaa-aaaa-e212e088bffc",
    "packageType": "maven",
    "description": "Проксирующий репозиторий maven реестра",
}
    
  

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

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

Поля для изменения виртуального репозитория
Параметр Тип Описание
type String Тип репозитория реестра. Для изменения виртуального репозитория необходимо указать значение VIRTUAL
description String Не обязательный. Описание репозитория реестра
virtualSettings Object Объект с полями, описывающими настройки виртуального репозитория

Настройки виртуального репозитория:

Параметр Тип Описание
includedRepositoryUuids Array Не обязательный. Массив, содержащий UUID репозиториев реестра, которые будет включены в изменяемый виртуальный репозиторий
allowRemoteProxying Boolean Не обязательный. Запросы к проксирующим репозиториям могут извлекать проксируемые пакеты true или не могут false (по умолчанию)
deploymentRepositoryUuid String Не обязательный. UUID локального репозитория реестра, выбранного в качестве репозитория развертывания по умолчанию

При изменении одного из полей deploymentRepositoryUuid или includedRepositoryUuids необходимо передавать оба.

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

{
  "type" : "VIRTUAL",
  "description": "Виртуальный репозиторий maven реестра",
  "virtualSettings": {
    "includedRepositoryUuids": [
      "ddc72f64-aaaa-aaaa-aaaa-e212e088bffc",
      "fa6d59b5-aaaa-aaaa-aaaa-cf1806aa929c"
    ]
    "allowRemoteProxying": true
    "deploymentRepositoryUuid": "fa6d59b5-aaaa-aaaa-aaaa-cf1806aa929c"
  }
}

Responses

STATUS 200 - Виртуальный репозиторий реестра успешно изменен:

Пример ответа
    
{
    "title": "maven-virtual",
    "repositoryType": "VIRTUAL",
    "repositoryUuid": "3cd7ccd1-aaaa-aaaa-aaaa-a1bfd03f9801",
    "packageType": "maven",
    "description": "Виртуальный репозиторий maven реестра",
}
    
  

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

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


Метод удаления репозитория реестра

Проекта: DELETE /registry/project/{ownerAlias}/{projectAlias}/repositories/{registryRepositoryUuid}

Компании: DELETE /registry/company/{companyAlias}/repositories/{registryRepositoryUuid}

Всего сервиса: DELETE /registry/instance/repositories/{registryRepositoryUuid}

Запрос удаляет указанный репозиторий реестра проекта.

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

Responses

STATUS 204 - Репозиторий реестра успешно удален.

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

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