Создать задачу в проекте

POST /repos/{owner}/{repo}/issues

Описание

Метод POST создает новую задачу в указанном репозитории и, при необходимости, сразу помещает ее в колонку проекта с помощью полей project_id и project_status_id. В данной секции описаны только поля, связанные с проектами. Стандартные поля задачи (title, body, type, labels, assignees, due_date и другие) — см. раздел «Задачи».

Токен

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

Заголовки

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

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

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

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

Тело запроса

Помимо стандартных полей задачи, тело запроса поддерживает следующие поля, связанные с проектами:

ПараметрТипОбязательныйОписание
project_idintegerНетИдентификатор проекта, в который добавляется задача
project_status_idintegerНетИдентификатор колонки, в которую помещается задача. Это ID колонки проекта, в которую перемещается задача — ее «статус» на Kanban-доске

Info

project_status_id — это идентификатор колонки, в которую помещается задача. Это же поле используется при перемещении задачи между колонками.

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

{
  "title": "Добавить пагинацию в список проектов",
  "body": "Метод API для получения списка проектов возвращает не более 30 элементов. Добавить параметры `page` и `limit`.",
  "type": "task",
  "project_id": 42,
  "project_status_id": 8
}

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

Ниже приведен пример использования curl для создания задачи с одновременным помещением ее в колонку «In progress» (идентификатор 8) проекта 42.

curl -X POST "https://api.gitverse.ru/repos/myorg/backend-api/issues" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Accept: application/vnd.gitverse.object+json;version=latest" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Добавить пагинацию в список проектов",
    "body": "Метод API для получения списка проектов возвращает не более 30 элементов. Добавить параметры `page` и `limit`.",
    "type": "task",
    "project_id": 42,
    "project_status_id": 8
  }'

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

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

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

{
  "id": 163200,
  "number": 156,
  "title": "Добавить пагинацию в список проектов",
  "body": "Метод API для получения списка проектов возвращает не более 30 элементов. Добавить параметры `page` и `limit`.",
  "state": "open",
  "created_at": "2026-09-17T09:30:00Z",
  "updated_at": "2026-09-17T09:30:00Z",
  "html_url": "https://gitverse.ru/myorg/backend-api/issues/156"
}

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

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

Коды ответа

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

КодСтатусОписание
201CreatedЗадача успешно создана
400Bad RequestНекорректное тело запроса (некорректный JSON или отсутствует обязательное поле title)
401UnauthorizedНе передан или невалиден токен авторизации
403ForbiddenНет прав на создание задачи в репозитории
404Not FoundРепозиторий или проект не найдены
422Unprocessable EntityОшибка валидации: некорректные значения project_id/project_status_id (например, колонка не относится к указанному проекту) или стандартные поля задачи
500Internal Server ErrorВнутренняя ошибка сервера GitVerse

Особенности метода

  • если project_id не передан, задача создается без привязки к проекту. Добавить ее в проект позже можно методом PATCH /repos/{owner}/{repo}/issues/{index};
  • одновременно задача может принадлежать только одному проекту;
  • project_status_id должен указывать на колонку проекта, переданного в project_id. Колонка из другого проекта приводит к ошибке 422 Unprocessable Entity;
  • привязка задачи к проекту отражается в таймлайне задачи в виде событий с полями project_id/old_project_id.

Формат ответа и заголовки

Метод возвращает ответ в формате JSON. Заголовок Content-Type в ответе устанавливается в application/vnd.gitverse.object+json;version=latest.