Help:Public API/management/containers: Difference between revisions
m (mostly minor markup changes) |
m (replace brackets with dash in headings) |
||
Line 70: | Line 70: | ||
|} | |} | ||
=== Получение списка контейнеров | === Получение списка контейнеров — "action": "list" === | ||
{| class="wikitable" | {| class="wikitable" | ||
Line 118: | Line 118: | ||
</pre> | </pre> | ||
=== Создание контейнера | === Создание контейнера — "action": "add" === | ||
{| class="wikitable" | {| class="wikitable" | ||
Line 143: | Line 143: | ||
|} | |} | ||
=== Изменение контейнера | === Изменение контейнера — "action": "update" === | ||
{| class="wikitable" | {| class="wikitable" | ||
Line 166: | Line 166: | ||
|} | |} | ||
=== Удаление контейнера | === Удаление контейнера — "action": "remove" === | ||
{| class="wikitable" | {| class="wikitable" | ||
Line 231: | Line 231: | ||
|} | |} | ||
=== Получение экземпляра группы проектов | === Получение экземпляра группы проектов — "action": "get" === | ||
{| class="wikitable" | {| class="wikitable" | ||
Line 246: | Line 246: | ||
|} | |} | ||
=== Добавление проекта в группу проектов | === Добавление проекта в группу проектов — "action": "add-project-to-group" === | ||
{| class="wikitable" | {| class="wikitable" | ||
Line 260: | Line 260: | ||
|} | |} | ||
=== Исключение проекта из группы проектов | === Исключение проекта из группы проектов — "action": "remove-project-from-group" === | ||
{| class="wikitable" | {| class="wikitable" |
Latest revision as of 18:59, 28 October 2024
Управление контейнерами (проектами, ветками, группами проектов)
В данном разделе содержится описание REST API управления контейнерами и их содержимым.
Для выполнения операций получения списка контейнеров, их создания, изменения и удаления существует http-ресурс
POST /api/public/admin/server/containers
Для операций управления составом групп проектов существует http-ресурс
POST /api/public/admin/server/project-groups
Для операции переименования снимков существует http-ресурс
PUT /api/public/snapshots/{snapshot_id}/update
POST /api/public/admin/server/containers
— управление набором проектов, веток, групп проектов
Формат запроса:
{ "action": "string", "id": "string", "type": "string", "name": "string", "parent": "string", "review_with_comment": true }
Формат ответа:
{ "Containers": [ { "action": "string", "id": "string", "name": "string", "parent": "string", "review_with_comment": true, "type": "string" } ] }
Назначение полей запроса и установка значений полей ответа зависит от типа операции и определяется значением поля запроса action.
Значение | Тип операции |
---|---|
list | Получение списка контейнеров |
add | Создание контейнера |
update | Изменение контейнера |
remove | Удаление контейнера |
Получение списка контейнеров — "action": "list"
Поле | Описание |
---|---|
id | Если не пустое: идентификатор контейнера, для которого будут загружены "связанные" контейнеры:
|
type | Допустимые значения: project, branch, project-group
Если не пустое: отфильтровывает список контейнеров по типу Если пустое:
|
name | Если не пустое:
|
parent | Не используется |
review_with_comment | Не используется |
Примеры запросов с "action": "list"
$ curl --data '{"action": "list"}' -X POST http://localhost:8080/api/public/admin/server/containers {"Containers":[{"id":"0f7da122-9c86-4384-b7bc-356bfb3b7f28","name":"projectGroupA","type":"project-group"},{"id":"20706313-6986-4c9d-9a4e-5e4908a11499","name":"projectGroupB","type":"project-group"},{"id":"a7e22042-96e5-4659-b21a-0615d434bed7","name":"bash","type":"project"},{"id":"a8e0352c-0408-417c-8fd0-4fbe03f38980","name":"iptables","type":"project"},{"id":"d53b0b92-d0fb-429a-8f86-c8fe6ee50c0c","name":"proftpd","type":"project"}]} $ curl --data '{"action": "list", "type": "project-group"}' -X POST http://localhost:8080/api/public/admin/server/containers {"Containers":[{"id":"0f7da122-9c86-4384-b7bc-356bfb3b7f28","name":"projectGroupA","type":"project-group"},{"id":"20706313-6986-4c9d-9a4e-5e4908a11499","name":"projectGroupB","type":"project-group"}]} $ curl --data '{"action": "list", "name": "bas"}' -X POST http://localhost:8080/api/public/admin/server/containers {"Containers":[{"id":"a7e22042-96e5-4659-b21a-0615d434bed7","name":"bash","type":"project"}]} $ curl --data '{"action": "list", "id":"a7e22042-96e5-4659-b21a-0615d434bed7"}' -X POST http://localhost:8080/api/public/admin/server/containers {"Containers":[{"id":"0f7da122-9c86-4384-b7bc-356bfb3b7f28","name":"projectGroupA","type":"project-group"},{"id":"ef9210db-180b-4351-8a2f-7e8ceaa42ec6","name":"master","type":"branch","parent":"a7e22042-96e5-4659-b21a-0615d434bed7"}]}
Создание контейнера — "action": "add"
Поле | Описание |
---|---|
id | Не используется |
type | Тип нового контейнера. Обязательное. Допустимые значения: project, branch, project-group |
name | Название нового контейнера. Обязательное |
parent | Название или идентификатор проекта, в котором будет создана новая ветка
Если тип нового контейнера не branch, не используется |
review_with_comment | Значение настройки проекта "Обязательный комментарий при разметке"
Если тип нового контейнера не project, не используется |
Изменение контейнера — "action": "update"
Поле | Описание |
---|---|
id | Идентификатор изменяемого контейнера. Обязательное |
type | Тип изменяемого контейнера. Используется для поиска контейнера вместе с id. Изменить тип контейнера нельзя. Необязательное. Допустимые значения: project, branch, project-group |
name | Новое название контейнера. Обязательное |
parent | Не используется. Изменить проект в котором создана ветка нельзя |
review_with_comment | Новое значение настройки проекта "Обязательный комментарий при разметке" |
Удаление контейнера — "action": "remove"
Поле | Описание |
---|---|
id | Идентификатор удаляемого контейнера. Обязательное |
type | Тип удаляемого контейнера. Используется для поиска контейнера вместе с id. Необязательное. Допустимые значения: project, branch, project-group |
name | Не используется |
parent | Не используется |
review_with_comment | Не используется |
POST /api/public/admin/server/project-groups
— управление составом групп проектов
Формат запроса:
{ "action": "string", "project_group_name_or_id": "string", "project_name_or_id": "string" }
Формат ответа:
{ "action": "string", "project_group_id": "string", "project_group_name": "string", "project_id": "string", "project_name": "string" }
Назначение полей запроса и ответа зависит от типа операции и определяется значением поля action.
Значение | Тип операции |
---|---|
get | Получение экземпляра группы проектов |
add-project-to-group | Добавление проекта в группу проектов |
remove-project-from-group | Исключение проекта из группы проектов |
Получение экземпляра группы проектов — "action": "get"
Поле | Описание |
---|---|
project_group_name_or_id | Название или идентификатор запрашиваемой группы проектов
Поддержка названия добавлена после версии 9.0.2
|
project_name_or_id | Не используется |
Добавление проекта в группу проектов — "action": "add-project-to-group"
Поле | Описание |
---|---|
project_group_name_or_id | Название или идентификатор изменяемой группы проектов |
project_name_or_id | Название или идентификатор добавляемого проекта |
Исключение проекта из группы проектов — "action": "remove-project-from-group"
Поле | Описание |
---|---|
project_group_name_or_id | Название или идентификатор изменяемой группы проектов |
project_name_or_id | Название или идентификатор исключаемого проекта |
Примеры запросов управления составом групп
$ curl --data '{"action": "get", "project_group_name_or_id": "0f7da122-9c86-4384-b7bc-356bfb3b7f28"}' -X POST http://localhost:8080/api/public/admin/server/project-groups {"action":"get","project_group_id":"0f7da122-9c86-4384-b7bc-356bfb3b7f28","project_group_name":"projectGroupA"} $ curl --data '{"action": "get", "project_group_name_or_id": "projectGroupA"}' -X POST http://localhost:8080/api/public/admin/server/project-groups {"action":"get","project_group_id":"0f7da122-9c86-4384-b7bc-356bfb3b7f28","project_group_name":"projectGroupA"} $ curl --data '{"action": "add-project-to-group", "project_name_or_id": "iptables", "project_group_name_or_id": "projectGroupA"}' -X POST http://localhost:8080/api/public/admin/server/project-groups {"action":"add-project-to-group","project_group_id":"0f7da122-9c86-4384-b7bc-356bfb3b7f28","project_group_name":"projectGroupA","project_id":"a8e0352c-0408-417c-8fd0-4fbe03f38980","project_name":"iptables"} $ curl --data '{"action": "remove-project-from-group", "project_name_or_id": "iptables", "project_group_name_or_id": "projectGroupA"}' -X POST http://localhost:8080/api/public/admin/server/project-groups {"action":"remove-project-from-group","project_group_id":"0f7da122-9c86-4384-b7bc-356bfb3b7f28","project_group_name":"projectGroupA","project_id":"a8e0352c-0408-417c-8fd0-4fbe03f38980","project_name":"iptables"}