Создать проект репозитория

POST /repos/{owner}/{repo}/projects

Описание

Метод POST создает новый проект в указанном репозитории. В теле запроса передаются название, описание, настройки приватности и опциональный тип шаблона. Если передать template_type=1, будут автоматически созданы стандартные колонки Kanban-доски; если параметр не указан, проект создается без колонок. Метод применяется для инициации новых рабочих процессов, планирования релизов и интеграции с внешними системами управления задачами.

Токен

Требуется токен с правами на Запись для Репозитория.

Заголовки

ПараметрОбязательныйОписание
AcceptНетТип содержимого ответа. Рекомендуется установить значение application/vnd.gitverse.object+json;version=latest
AuthorizationДаТокен доступа. Формат: Bearer <YOUR-TOKEN> или token <YOUR-TOKEN>
Content-TypeДаТип содержимого запроса: application/json

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

В URL запроса необходимо передать следующие идентификаторы ресурса:

ПараметрТипОбязательныйОписание
ownerstringДаВладелец репозитория (логин пользователя или имя организации)
repostringДаНазвание репозитория (без расширения .git)

Тело запроса

ПараметрТипОбязательныйОписание
titlestringДаНазвание проекта
descriptionstringНетОписание проекта
privatebooleanНетФлаг приватности проекта (true — приватный, false — публичный)
template_typeintegerНетТип шаблона. Значение 1 создает стандартные колонки Kanban-доски. Если параметр не указан, проект создается без колонок

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

{
  "title": "Release planning",
  "description": "Tasks for the next release",
  "private": true,
  "template_type": 1
}

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

Ниже приведен пример использования curl для создания приватного проекта с канбан-колонками.

curl -X POST "https://api.gitverse.ru/repos/myorg/backend-api/projects" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Accept: application/vnd.gitverse.object+json;version=latest" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Release planning",
    "description": "Tasks for the next release",
    "private": true,
    "template_type": 1
  }'

Замените YOUR_TOKEN на ваш личный токен доступа.

Ответ при успешном выполнении (201 Created)

При успешном создании проекта сервер вернет ответ с кодом 201 Created и телом в формате JSON, содержащим объект созданного проекта:

{
  "id": 42,
  "title": "Release planning",
  "description": "Tasks for the next release",
  "private": true,
  "state": "open",
  "created_at": "2026-09-14T10:00:00Z",
  "updated_at": "2026-09-14T10:00:00Z",
  "closed_at": null,
  "columns": [
    {
      "id": 7,
      "title": "To Do",
      "color": "#0969DA",
      "default": true,
      "sorting": 1,
      "created_at": "2026-09-14T10:00:00Z",
      "updated_at": "2026-09-14T10:00:00Z"
    }
  ]
}

Структура ответа

Ответ — объект Project (созданный проект). Полная структура описана в графе объектов, раздел «Объект Project».

На корневом уровне объект содержит:

ПолеТипОписание
idintegerУникальный идентификатор проекта
title, descriptionstringНазвание и описание проекта
privatebooleanФлаг приватности проекта (true — приватный, false — публичный)
statestringСостояние проекта (open, closed)
created_at, updated_atstring (date-time)Даты создания и последнего обновления
closed_atstring (date-time) / nullДата закрытия проекта (если открыт — null)
columnsarrayСписок колонок проекта (см. ProjectColumn); заполнен, если был указан template_type=1

Вложенные объекты описаны в графе объектов.

Коды ответа

Результат выполнения запроса определяется по HTTP-статусу:

КодСтатусОписание
201CreatedПроект успешно создан
400Bad RequestНекорректные параметры запроса (например, неверный формат template_type)
401UnauthorizedНе передан или невалиден токен авторизации
403ForbiddenНет прав на запись в репозиторий
404Not FoundРепозиторий не найден
500Internal Server ErrorВнутренняя ошибка сервера GitVerse