3. POST /user/repos
— создать новый репозиторий
Описание
Создает новый репозиторий для аутентифицированного пользователя.
Параметры URL
Данный метод не содержит параметров URL.
Тело запроса
Передается в формате JSON. Обязательное поле — name
.
{
"name": "my-new-repo",
"description": "Мой первый репозиторий",
"private": true,
"auto_init": true,
"gitignores": ["Node"],
"is_template": false
}
Поле | Тип | Обязательный | Описание |
---|---|---|---|
name | string | Да | Название репозитория |
description | string | Нет | Описание репозитория |
private | boolean | Нет | Приватный (true ) или публичный (false ) |
auto_init | boolean | Нет | Создать репозиторий с начальным README.md |
gitignores | array[string] | Нет | Список шаблонов .gitignore (например, ["Node", "Python"] ) |
is_template | boolean | Нет | Сделать репозиторий шаблоном |
⚠️ Все поля, кроме
name
, необязательные.
Поляlicense_template
,has_wiki
,has_issues
и др. не поддерживаются в этом API.
Пример запроса
curl -X POST "https://api.gitverse.ru/public/api/user/repos" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Accept: application/vnd.gitverse.object+json;version=latest" \
-d '{
"name": "hello-world",
"private": false,
"auto_init": true,
"gitignores": ["Node"]
}'
Ответ (201 Created)
Пример JSON-ответа:
{
"id": 67890,
"name": "hello-world",
"full_name": "current-user/hello-world",
"private": false,
"fork": false,
"owner": {
"login": "current-user",
"id": 55555,
"avatar_url": "https://gitverse.ru/avatars/current-user.png"
},
"html_url": "https://gitverse.ru/current-user/hello-world",
"description": null,
"created_at": "2025-04-05T11:20:00Z",
"default_branch": "main",
"permissions": {
"admin": true,
"push": true,
"pull": true
},
"clone_url": "https://gitverse.ru/current-user/hello-world.git",
"ssh_url": "git@gitverse.ru:current-user/hello-world.git",
"has_issues": true,
"has_wiki": true,
"language": null,
"stargazers_count": 0,
"watchers_count": 0,
"forks_count": 0,
"size": 0,
"pushed_at": "2025-04-05T11:20:00Z",
"updated_at": "2025-04-05T11:20:00Z",
"visibility": "public"
}
Формат ответа
application/vnd.gitverse.object+json;version=latest
Поля ответа
Поле | Тип | Описание |
---|---|---|
id | integer | Уникальный числовой идентификатор репозитория |
name | string | Название репозитория |
full_name | string | Полное имя репозитория (owner/repo ) |
private | boolean | Признак приватности: true — приватный, false — публичный |
fork | boolean | Является ли репозиторий форком |
owner | object | Информация о владельце: login (строка), id (целое число), avatar_url (строка) |
html_url | string | Ссылка на веб-страницу репозитория |
description | string или null | Описание репозитория |
created_at | string | Дата и время создания (ISO 8601) |
updated_at | string | Дата и время последнего обновления метаданных |
pushed_at | string | Дата и время последнего пуша |
default_branch | string | Имя основной ветки (например, main ) |
permissions | object | Права текущего пользователя: admin , push , pull (все — boolean) |
clone_url | string | Ссылка для клонирования по HTTPS |
ssh_url | string | Ссылка для клонирования по SSH |
has_issues | boolean | Включены ли задачи (issues) |
has_wiki | boolean | Включена ли вики |
language | string или null | Основной язык программирования |
stargazers_count | integer | Количество пользователей, поставивших «звезду» |
watchers_count | integer | Количество наблюдателей |
forks_count | integer | Количество форков |
size | integer | Размер репозитория в килобайтах |
visibility | string | Видимость: public , private или internal |
allow_merge_commit | boolean | Разрешено ли создание merge-коммитов |
allow_rebase_merge | boolean | Разрешено ли rebase-слияние |
allow_squash_merge | boolean | Разрешено ли squash-слияние |
archived | boolean | Архивирован ли репозиторий |
disabled | boolean | Отключен ли репозиторий |
forks | integer | Количество форков (устаревшее поле) |
forks_url | string | URL к списку форков |
is_template | boolean | Является ли репозиторий шаблоном |
open_issues | integer | Количество открытых задач и PR (устаревшее) |
open_issues_count | integer | Количество открытых задач и PR |
topics | array[string] | Список тем (тегов) репозитория |
url | string | API-ссылка на репозиторий |
watchers | integer | Количество наблюдателей (устаревшее) |
Коды ответа
Код | Статус | Описание |
---|---|---|
201 | Created | Репозиторий успешно создан |
400 | Bad Request | Некорректные данные: пустое имя, недопустимые символы |
401 | Unauthorized | Не передан или невалиден токен авторизации |
403 | Forbidden | Отсутствует право на создание репозитория |
500 | Internal Server Error | Внутренняя ошибка сервера |