Добавить связь с дочерней задачей

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

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

Метод POST позволяет добавить связь с дочерней задачей.

⚠️ Предупреждение: должна учитываться ролевая модель добавления связи с дочерней задачей (т.е. добавления задачи со связью «Состоит из»).

Токен

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

Заголовки запроса

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

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

ПараметрОбязательныйТипОписание
ownerДаstringИмя владельца репозитория (пользователя или организации)
repoДаstringНазвание репозитория
issue_numberДаintegerНомер задачи, к которой добавляют связанную дочернюю

Параметры запроса

Данный метод не поддерживает параметры запроса.

Тело запроса

Тело запроса должно содержать следующие параметры:

ПараметрОбязательныйТипОписание
sub_issue_idДаintegerНомер привязываемой дочерней задачи в репозитории
replace_parentНетbooleanПризнак того, что нужно заменить родительскую задачу у привязываемой (если она есть). По умолчанию false.

Логика работы параметра replace_parent:

  • если true, и у привязываемой задачи есть родительская задача, то связь с ней удаляется, и вместо нее создается связь с родительской задачей из этого запроса;
  • если false, и у привязываемой задачи есть родительская задача, то возвращается ошибка 422.

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

curl -X POST "https://api.gitverse.ru/repos/user123/repo123/issues/42/sub_issues" \
  -H "Authorization: Bearer <YOUR-TOKEN>" \
  -H "Accept: application/vnd.gitverse.object+json;version=1" \
  -H "Content-Type: application/json" \
  -d '{
    "sub_issue_id": 43,
    "replace_parent": false
  }'

Пример ответа (201 Created)

Возвращается объект родительской Issue задачи:

{
  "id": 163211,
  "node_id": null,
  "url": "https://api.gitverse.ru/repos/user_42/neo2/issues/10",
  "repository_url": "https://api.gitverse.ru/repos/user_42/neo2",
  "labels_url": "https://api.gitverse.ru/repos/user_42/neo2/issues/10/labels{/name}",
  "comments_url": "https://api.gitverse.ru/repos/user_42/neo2/issues/10/comments",
  "events_url": null,
  "html_url": "https://gitverse.ru/user_42/neo2/issues/10",
  "number": 10,
  "user": {
    "id": 65012,
    "name": "Ivan Petrov",
    "login": "user_17",
    "type": "User",
    "bio": "",
    "email": "user_17@mail.org",
    "avatar_url": "https://gitverse.ru/avatars/5e884898da28047151d0e56f8dc6292773603d0d6aabbdd62a11ef721d1542d8",
    "html_url": "https://gitverse.ru/user_17",
    "url": "https://api.gitverse.ru/users/user_17",
    "followers_url": "https://api.gitverse.ru/users/user_17/followers",
    "following_url": "https://api.gitverse.ru/users/user_17/following{/other_user}",
    "repos_url": "https://api.gitverse.ru/users/user_17/repos",
    "organizations_url": "https://api.gitverse.ru/users/user_17/orgs",
    "site_admin": false,
    "location": null,
    "is_verified": false,
    "followers": 0,
    "following": 2,
    "public_repos": 0,
    "stars_count": 0,
    "created_at": "2024-10-22T06:08:57Z",
    "updated_at": "2026-07-07T08:26:11Z"
  },
  "original_author": "",
  "original_author_id": 0,
  "title": "Дочерняя задача 2",
  "body": "",
  "ref": "",
  "assets": [],
  "labels": [],
  "milestone": null,
  "assignee": null,
  "assignees": null,
  "type": {
    "id": 1,
    "code": "task",
    "name": "Задача",
    "color": "#DBF0FF"
  },
  "state": "open",
  "locked": false,
  "comments": 0,
  "created_at": "2026-09-10T11:20:09Z",
  "updated_at": "2026-09-10T11:26:07Z",
  "closed_at": null,
  "due_date": null,
  "timeline_url": "https://api.gitverse.ru/repos/user_42/neo2/issues/10/timeline",
  "pull_request": null,
  "repository": {
    "id": 309057,
    "name": "neo2",
    "owner": "user_42",
    "full_name": "user_42/neo2"
  },
  "development": {
    "pulls": [],
    "branches": []
  },
  "parent_issue_url": "https://api.gitverse.ru/repos/user_42/neo2/issues/8"
}

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

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

На корневом уровне в примере ответа присутствуют основные поля задачи:

ПолеТипОписание
idintegerИдентификатор родительской задачи
numberintegerНомер задачи в репозитории
titlestringЗаголовок
statestringСостояние
sub_issues_summaryobjectСводка по подзадачам (см. SubIssuesSummary)

Коды ответа

КодСтатусОписание
201CreatedСвязь создана
400Bad RequestНекорректные параметры запроса
404Not FoundРесурс не найден либо нет доступа к нему
422Unprocessable EntityОшибка валидации (например, replace_parent: false при наличии у дочерней задачи другого родителя)
500Internal Server ErrorВнутренняя ошибка сервера