Публичный APIРепозитории3. POST /user/repos — создать новый репозиторий

3. POST /user/repos — создать новый репозиторий

Beta

Описание

Создает новый репозиторий для аутентифицированного пользователя. Метод позволяет настроить множество параметров, таких как описание, приватность, лицензия и другие.

Тело запроса

Запрос должен содержать JSON-объект с параметрами создания репозитория.

{
  "name": "my-new-repo",
  "description": "Мой первый репозиторий",
  "private": false,
  "auto_init": true,
  "template": false,
  "gitignores": ["Go", "Docker"],
  "license": "MIT",
  "readme": "README.md",
  "default_branch": "main"
}

Поля тела запроса

ПолеТипОбязательныйОписание
namestringДаНазвание репозитория (должно быть уникальным для пользователя/организации)
descriptionstringНетОписание репозитория
privatebooleanНетПриватный или нет (true — приватный, false — публичный)
auto_initbooleanНетАвтоинициализация .git (создание пустого репозитория с README и .gitignore)
is_templatebooleanНетЯвляется ли репозиторий шаблоном
gitignoresarray of stringНетСписок игнорируемых файлов (например, ["Go", "Docker"])
licensestringНетЛицензия (например, "MIT", "Apache-2.0")
readmestringНетФайл README (например, "README.md")
default_branchstringНетВетка по умолчанию (по умолчанию: "main")

Пример запроса

curl -X POST "https://api.gitverse.ru/public/api/user/repos" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Accept: application/vnd.gitverse.object+json;version=1" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "my-new-repo",
    "description": "My new repo description",
    "private": false,
    "auto_init": true
  }'

Ответ (201 Created)

Пример успешного ответа:

{
  "id": 143,
  "name": "APInewTestRepo4.3",
  "full_name": "dlborun/APInewTestRepo4.3",
  "private": false,
  "description": "This is a test repository with all options",
  "default_branch": "main",
  "allow_merge_commit": true,
  "allow_squash_merge": true,
  "allow_rebase_merge": true,
  "owner": {
    "login": "dlborun",
    "id": 1
  }
}

Формат ответа

application/vnd.gitverse.object+json;version=1

Поля ответа

ПолеТипОписание
idintegerУникальный идентификатор репозитория
namestringНазвание репозитория
full_namestringПолное имя репозитория (<owner>/<name>)
privatebooleanПриватный или нет
descriptionstringОписание репозитория
default_branchstringВетка по умолчанию
allow_merge_commitbooleanРазрешено ли слияние с коммитом
allow_squash_mergebooleanРазрешено ли слияние с squash
allow_rebase_mergebooleanРазрешено ли слияние с rebase
ownerobjectИнформация о владельце репозитория
owner.loginstringЛогин владельца
owner.idintegerИдентификатор владельца

Коды ответа

КодСтатусОписание
201CreatedРепозиторий успешно создан
400Bad RequestОдин из параметров передан некорректно
401UnauthorizedНе передан или невалиден токен авторизации
403ForbiddenНет прав на создание репозитория
500Internal Server ErrorВнутренняя ошибка сервера