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"
}
Поля тела запроса
Поле | Тип | Обязательный | Описание |
---|---|---|---|
name | string | Да | Название репозитория (должно быть уникальным для пользователя/организации) |
description | string | Нет | Описание репозитория |
private | boolean | Нет | Приватный или нет (true — приватный, false — публичный) |
auto_init | boolean | Нет | Автоинициализация .git (создание пустого репозитория с README и .gitignore) |
is_template | boolean | Нет | Является ли репозиторий шаблоном |
gitignores | array of string | Нет | Список игнорируемых файлов (например, ["Go", "Docker"] ) |
license | string | Нет | Лицензия (например, "MIT" , "Apache-2.0" ) |
readme | string | Нет | Файл README (например, "README.md" ) |
default_branch | string | Нет | Ветка по умолчанию (по умолчанию: "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
Поля ответа
Поле | Тип | Описание |
---|---|---|
id | integer | Уникальный идентификатор репозитория |
name | string | Название репозитория |
full_name | string | Полное имя репозитория (<owner>/<name> ) |
private | boolean | Приватный или нет |
description | string | Описание репозитория |
default_branch | string | Ветка по умолчанию |
allow_merge_commit | boolean | Разрешено ли слияние с коммитом |
allow_squash_merge | boolean | Разрешено ли слияние с squash |
allow_rebase_merge | boolean | Разрешено ли слияние с rebase |
owner | object | Информация о владельце репозитория |
owner.login | string | Логин владельца |
owner.id | integer | Идентификатор владельца |
Коды ответа
Код | Статус | Описание |
---|---|---|
201 | Created | Репозиторий успешно создан |
400 | Bad Request | Один из параметров передан некорректно |
401 | Unauthorized | Не передан или невалиден токен авторизации |
403 | Forbidden | Нет прав на создание репозитория |
500 | Internal Server Error | Внутренняя ошибка сервера |