Создать команду в организации

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

Параметры пути

ПараметрТипОбязательныйОписание
orgstringДаНазвание организации

Название организации проверяется без учета регистра.

Параметры запроса

Данный метод не принимает параметров в строке запроса.

Тело запроса

ПолеТипОбязательноеПо умолчаниюОписание
namestringДа—Уникальное название команды. Допустимы буквы, цифры и символы -, _, .. На его основе GitVerse формирует slug
descriptionstringНет""Описание команды
privacystringНетsecretВидимость команды: secret или closed
notification_settingstringНетnotifications_enabledНастройка уведомлений: notifications_enabled или notifications_disabled
permissionstringНетpullУровень доступа команды к репозиториям: pull, push или admin
can_create_org_repobooleanНетfalseМожет ли команда создавать репозитории в организации
maintainersarray[string]Нет[]Логины пользователей, которых нужно добавить в команду как ответственных
repo_namesarray[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

Поля ответа

ПолеТипОписание
idintegerУникальный идентификатор команды
namestringНазвание команды
slugstringУникальное имя команды, сформированное из name
descriptionstringОписание команды
privacystringВидимость команды: secret или closed
notification_settingstringНастройка уведомлений команды
permissionstringУровень доступа: pull, push или admin
html_urlstringОтносительный URL страницы команды в веб-интерфейсе
members_urlstringURL метода получения участников команды
members_countintegerКоличество пользователей из maintainers, добавленных в команду
repos_countintegerКоличество репозиториев, доступных команде
organizationobjectИнформация об организации, в которой создана команда
includes_all_repositoriesbooleanИмеет ли команда доступ ко всем репозиториям организации
can_create_org_repobooleanМожет ли команда создавать репозитории в организации

Коды ответа

КодСтатусОписание
201CreatedКоманда успешно создана
400Bad RequestНазвание содержит недопустимые символы
401UnauthorizedТокен отсутствует или недействителен
403ForbiddenПользователь не является владельцем организации
404Not FoundОрганизация не найдена
422Unprocessable EntityНе указано название, команда с таким именем уже существует или передано недопустимое значение permission
500Internal 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 не возвращаются.