Создать задачу в проекте
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 запроса необходимо передать следующие идентификаторы ресурса:
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| owner | string | Да | Владелец репозитория (логин пользователя или имя организации) |
| repo | string | Да | Название репозитория (без расширения .git) |
Тело запроса
Помимо стандартных полей задачи, тело запроса поддерживает следующие поля, связанные с проектами:
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| project_id | integer | Нет | Идентификатор проекта, в который добавляется задача |
| project_status_id | integer | Нет | Идентификатор колонки, в которую помещается задача. Это 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-статусу:
| Код | Статус | Описание |
|---|---|---|
| 201 | Created | Задача успешно создана |
| 400 | Bad Request | Некорректное тело запроса (некорректный JSON или отсутствует обязательное поле title) |
| 401 | Unauthorized | Не передан или невалиден токен авторизации |
| 403 | Forbidden | Нет прав на создание задачи в репозитории |
| 404 | Not Found | Репозиторий или проект не найдены |
| 422 | Unprocessable Entity | Ошибка валидации: некорректные значения project_id/project_status_id (например, колонка не относится к указанному проекту) или стандартные поля задачи |
| 500 | Internal 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.