Создать команду в организации
POST /orgs/{org}/teams
Описание
Создает новую команду в указанной организации.
Выполнить запрос может владелец организации. После создания в команду можно добавить ответственных пользователей и предоставить ей доступ к репозиториям организации.
Заголовки
| Параметр | Обязательный | Описание |
|---|---|---|
GitVerse-API-Version | Да | Версия публичного API. Укажите 1 |
accept | Да | Тип содержимого ответа: application/vnd.gitverse.object+json;version=1 |
authorization | Да | Токен авторизации в формате Bearer YOUR_TOKEN |
content-type | Да | Тип содержимого запроса. Укажите application/json |
Параметры пути
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
org | string | Да | Название организации |
Название организации проверяется без учета регистра.
Параметры запроса
Данный метод не принимает параметров в строке запроса.
Тело запроса
| Поле | Тип | Обязательное | По умолчанию | Описание |
|---|---|---|---|---|
name | string | Да | — | Уникальное название команды. Допустимы буквы, цифры и символы -, _, .. На его основе GitVerse формирует slug |
description | string | Нет | "" | Описание команды |
privacy | string | Нет | secret | Видимость команды: secret или closed |
notification_setting | string | Нет | notifications_enabled | Настройка уведомлений: notifications_enabled или notifications_disabled |
permission | string | Нет | pull | Уровень доступа команды к репозиториям: pull, push или admin |
can_create_org_repo | boolean | Нет | false | Может ли команда создавать репозитории в организации |
maintainers | array[string] | Нет | [] | Логины пользователей, которых нужно добавить в команду как ответственных |
repo_names | array[string] | Нет | [] | Репозитории в формате org/repo, к которым нужно предоставить доступ команде |
Значение secret в поле privacy делает команду видимой только ее участникам и владельцам организации. Значение closed делает команду видимой всем участникам организации.
Если передано неизвестное значение privacy или notification_setting, GitVerse использует значение по умолчанию. Неизвестное значение permission приводит к ошибке 422 Unprocessable Entity.
Несуществующие пользователи из maintainers и репозитории из repo_names пропускаются. Это не прерывает создание команды.
Создатель команды не добавляется в нее автоматически. Поле members_count учитывает только пользователей из maintainers, которых удалось добавить.
Пример запроса
curl -X POST "https://api.gitverse.ru/orgs/my-organization/teams" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "GitVerse-API-Version: 1" \
-H "Accept: application/vnd.gitverse.object+json;version=1" \
-H "Content-Type: application/json" \
-d '{
"name": "Backend Platform",
"description": "Команда разработки платформы",
"privacy": "closed",
"notification_setting": "notifications_enabled",
"permission": "push",
"can_create_org_repo": true,
"maintainers": ["octocat"],
"repo_names": ["my-organization/platform-api"]
}'Ответ (201 Created)
{
"id": 25,
"name": "Backend Platform",
"slug": "backend-platform",
"description": "Команда разработки платформы",
"privacy": "closed",
"notification_setting": "notifications_enabled",
"permission": "push",
"html_url": "/my-organization?tab=teamsOrg&teamTab=backend-platform",
"members_url": "https://api.gitverse.ru/orgs/my-organization/teams/backend-platform/members",
"members_count": 1,
"repos_count": 1,
"organization": {
"login": "my-organization",
"id": 10
},
"includes_all_repositories": false,
"can_create_org_repo": true
}Формат ответа
application/vnd.gitverse.object+json;version=1
Поля ответа
| Поле | Тип | Описание |
|---|---|---|
id | integer | Уникальный идентификатор команды |
name | string | Название команды |
slug | string | Уникальное имя команды, сформированное из name |
description | string | Описание команды |
privacy | string | Видимость команды: secret или closed |
notification_setting | string | Настройка уведомлений команды |
permission | string | Уровень доступа: pull, push или admin |
html_url | string | Относительный URL страницы команды в веб-интерфейсе |
members_url | string | URL метода получения участников команды |
members_count | integer | Количество пользователей из maintainers, добавленных в команду |
repos_count | integer | Количество репозиториев, доступных команде |
organization | object | Информация об организации, в которой создана команда |
includes_all_repositories | boolean | Имеет ли команда доступ ко всем репозиториям организации |
can_create_org_repo | boolean | Может ли команда создавать репозитории в организации |
Коды ответа
| Код | Статус | Описание |
|---|---|---|
201 | Created | Команда успешно создана |
400 | Bad Request | Название содержит недопустимые символы |
401 | Unauthorized | Токен отсутствует или недействителен |
403 | Forbidden | Пользователь не является владельцем организации |
404 | Not Found | Организация не найдена |
422 | Unprocessable Entity | Не указано название, команда с таким именем уже существует или передано недопустимое значение permission |
500 | Internal Server Error | Внутренняя ошибка сервера |
Пример тела ошибки
При ответе 400 тело ответа имеет следующий вид:
{
"error": {
"code": "BAD_REQUEST",
"documentation_url": "https://gitverse.ru/docs/developers/public-api/",
"message": "The request format is invalid",
"status": 400
}
}Отличия от GitHub API
- поле
permissionподдерживает значениеadmin; html_urlвозвращается как относительный путь;members_urlне содержит шаблон{/member};- создатель команды не добавляется в нее автоматически;
- название команды может содержать только буквы, цифры и символы
-,_,.; - поля
url,repositories_url,node_idиparentне возвращаются.