Создать комментарий
POST /repos/{owner}/{repo}/issues/{issue_number}/comments
Описание метода
Метод создает новый комментарий в задаче или запросе на слияние.
При создании комментария должна учитываться ролевая модель:
- для задачи: ролевая модель создания комментария к своей задаче и к чужой задаче;
- для запроса на слияние: ролевая модель комментирования запроса (обсуждение).
Базовый URL:
https://api.gitverse.ru/repos/{owner}/{repo}/issues/{issue_number}/comments
Заголовки запроса
| Заголовок | Тип | Обязательный | Описание |
|---|---|---|---|
Accept | string | Рекомендуется | Тип представления. Значение: application/vnd.gitverse.object+json;version=1 |
Authorization | string | Да | Для аутентификации используется токен доступа. Формат: Bearer <YOUR-TOKEN> или token <YOUR-TOKEN>. |
Content-Type | string | Да | Тип содержимого запроса: application/json. |
Параметры пути
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
owner | string | Да | Имя владельца репозитория (пользователя или организации). |
repo | string | Да | Название репозитория. |
issue_number | integer | Да | Номер задачи или запроса. |
Тело запроса
| Поле | Тип | Обязательное | Описание |
|---|---|---|---|
body | string | Да | Тело комментария. |
is_review | boolean | Нет | Является ли комментарий ревью к запросу. По умолчанию false.Предупреждение: не может быть true, если is_thread = true. |
is_thread | boolean | Нет | Является ли комментарий тредом. По умолчанию false.Предупреждение: не может быть true, если is_review = true. |
reply_to | integer | Нет | Принимает ID комментария, если создается ответ на него. |
thread_id | integer | Нет | Принимает ID треда, если создается ответ в треде. |
Пример тела запроса
{
"body": "Это пример комментария.\n\nОн включает **markdown**",
"is_review": false,
"is_thread": false
}Пример запроса
curl -X POST "https://api.gitverse.ru/repos/owner/repo/issues/13/comments" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Accept: application/vnd.gitverse.object+json;version=1" \
-H "Content-Type: application/json" \
-d '{
"body": "Это пример комментария.\n\nОн включает **markdown**"
}'Коды ответа
| Код | Статус | Описание |
|---|---|---|
201 | Created | Комментарий успешно создан |
400 | Bad Request | Некорректные параметры запроса |
404 | Not Found | Ресурс не найден либо нет доступа к нему |
422 | Unprocessable Entity | Ошибка валидации |
500 | Internal Server Error | Внутренняя ошибка сервера |
Структура ответа
Ответ — объект IssueComment (созданный комментарий). Полная структура описана в графе объектов, раздел «Объект IssueComment».
На корневом уровне объект содержит:
| Поле | Тип | Описание |
|---|---|---|
id, node_id | integer / string | Идентификатор и глобальный ID узла (всегда null) |
body, body_text, body_html | string | Текст комментария (raw/plain/HTML) |
user | object / null | Автор (см. User) |
attachments | array | Вложения (см. Attachment) |
created_at, updated_at | string (date-time) | Даты создания и обновления |
url, html_url, issue_url | string | Ссылки |
Вложенные объекты (User, Attachment) описаны в графе объектов.
Примеры ответов
201 Created — комментарий успешно создан
{
"id": 863439,
"node_id": null,
"url": "https://api.gitverse.ru/repos/user_42/neo2/issues/comments/863439",
"html_url": "https://gitverse.ru/user_42/neo2/issues/1#comment-863439",
"body": "Это пример комментария.\n\nОн включает **markdown**",
"body_text": "Это пример комментария.\n\nОн включает **markdown**",
"body_html": "Это пример комментария.\n\nОн включает **markdown**",
"user": {
"login": "user_42",
"id": 516,
"avatar_url": "https://gitverse.ru/avatars/e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"url": "https://api.gitverse.ru/users/user_42",
"html_url": "https://gitverse.ru/user_42",
"followers_url": "https://api.gitverse.ru/users/user_42/followers",
"following_url": "https://api.gitverse.ru/users/user_42/following{/other_user}",
"organizations_url": "https://api.gitverse.ru/users/user_42/orgs",
"repos_url": "https://api.gitverse.ru/users/user_42/repos",
"type": "User",
"user_view_type": "public",
"site_admin": false
},
"attachments": [],
"created_at": "2026-09-10T08:05:59Z",
"updated_at": "2026-09-10T08:05:59Z",
"issue_url": "https://api.gitverse.ru/repos/user_42/neo2/issues/1"
}400 Bad Request — некорректные параметры
{
"message": "Bad Request",
"documentation_url": "https://gitverse.ru/docs/developers/public-api/errors"
}404 Not Found — ресурс не найден или нет доступа
{
"message": "Not Found",
"documentation_url": "https://gitverse.ru/docs/developers/public-api/errors"
}422 Unprocessable Entity — ошибка валидации
{
"message": "Validation failed",
"errors": [
{
"resource": "Comment",
"field": "body",
"code": "missing_field"
}
],
"documentation_url": "https://gitverse.ru/docs/developers/public-api/errors"
}500 Internal Server Error — внутренняя ошибка сервера
{
"message": "Internal Server Error",
"documentation_url": "https://gitverse.ru/docs/developers/public-api/errors"
}Формат ответа
Метод возвращает ответ в формате JSON. Заголовок Content-Type в ответе устанавливается в application/vnd.gitverse.object+json;version=1.