Help:Public API/management/containers
Управление контейнерами (проектами, ветками, группами проектов)
В данном разделе содержится описание REST API управления контейнерами и их содержимым.
Для выполнения операций получения списка контейнеров, их создания, изменения и удаления существует http-ресурс
POST /api/public/admin/server/containers
Для операций управления составом групп проектов существует http-ресурс
POST /api/public/admin/server/project-groups
Для использования ресурсов необходимо использовать http-запросы с токеном пользователя имеющего соответствующие права
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"
Поле | Описание |
---|---|
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"
Поле | Описание |
---|---|
action
|
add
|
id
|
Не используется |
type
|
Тип нового контейнера. Обязательное. Допустимые значения: project , branch , project-group
|
name
|
Название нового контейнера. Обязательное |
parent
|
Название или идентификатор проекта, в котором будет создана новая ветка
Если тип нового контейнера НЕ |
review_with_comment
|
Значение настройки проекта "Обязательный комментарий при разметке"
Если тип нового контейнера НЕ |
Изменение контейнера: "action": "update"
Поле | Описание |
---|---|
action
|
update
|
id
|
Идентификатор изменяемого контейнера. Обязательное |
type
|
Тип изменяемого контейнера. Используется для поиска контейнера вместе с id. Изменить тип контейнера нельзя. Необязательное. Допустимые значения: project , branch , project-group
|
name
|
Новое название контейнера. Обязательное |
parent
|
Не используется. Изменить проект в котором создана ветка нельзя |
review_with_comment
|
Новое значение настройки проекта "Обязательный комментарий при разметке" |
Удаление контейнера: "action": "remove"
Поле | Описание |
---|---|
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"
Поле | Описание |
---|---|
action
|
get
|
project_group_name_or_id
|
Название или идентификатор запрашиваемой группы проектов. Поддержка названия добавлена ПОСЛЕ версии 9.0.2
|
project_name_or_id
|
Не используется |
Добавление проекта в группу проектов: "action": "add-project-to-group"
Поле | Описание |
---|---|
action
|
add-project-to-group
|
project_group_name_or_id
|
Название или идентификатор изменяемой группы проектов |
project_name_or_id
|
Название или идентификатор добавляемого проекта |
Исключение проекта из группы проектов: "action": "remove-project-from-group"
Поле | Описание |
---|---|
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"}