Прикрепить файл к комментарию
POST /repos/{owner}/{repo}/issues/comments/{comment_id}/attachments
Описание
Метод POST загружает файл и прикрепляет его к комментарию текущего авторизованного пользователя. Поддерживаются комментарии к задачам и запросам на слияние.
Файл передается в теле запроса в формате multipart/form-data в обязательном поле attachment.
Метод применяется для иллюстрации комментариев скриншотами, логами, примерами файлов и другими вложениями.
Важно: добавить файл может только автор комментария.
Заголовки
| Параметр | Обязательный | Описание |
|---|---|---|
Accept | Нет | Тип содержимого ответа. Рекомендуется установить значение application/vnd.gitverse.object+json;version=1 |
Authorization | Да | Токен доступа. Формат: Bearer <YOUR-TOKEN> или token <YOUR-TOKEN> |
Content-Type | Да | Тип содержимого запроса: multipart/form-data |
Параметры
| Параметр | Где передать | Обязательный | Тип | Описание |
|---|---|---|---|---|
owner, repo, comment_id | путь | Да | строка, строка, целое | Репозиторий и ID комментария задачи. |
attachment | форма | Да | файл | Файл для загрузки. |
Тело запроса
Данный метод принимает файл в формате multipart/form-data. Параметры тела отсутствуют.
Пример запроса
curl -X POST "https://api.gitverse.ru/repos/user/my-repo/issues/comments/204/attachments" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Accept: application/vnd.gitverse.object+json;version=1" \
-H "Content-Type: multipart/form-data" \
-F "attachment=@/path/to/screenshot.png"
Замените YOUR_TOKEN на ваш личный токен доступа.
Пример ответа (201 Created)
При успешном выполнении сервер возвращает полный актуальный массив вложений комментария:
[
{
"id": 18653,
"name": "pic_01.png",
"size": 195241,
"created_at": "2026-09-10T13:02:58Z",
"uuid": "1f48078d-f6cc-47b0-bf76-81d7eac37537",
"browser_download_url": "https://gitverse.ru/api/attachments/1f48078d-f6cc-47b0-bf76-81d7eac37537"
}
]
Структура ответа
Ответ — массив объектов Attachment (вложения). Полная структура описана в графе объектов, раздел «Объект Attachment».
На корневом уровне каждый элемент содержит:
| Поле | Тип | Описание |
|---|---|---|
id | integer | Идентификатор вложения |
name | string | Имя файла |
size | integer | Размер в байтах |
created_at | string (date-time) | Дата загрузки |
uuid | string | Уникальный идентификатор файла |
browser_download_url | string | Прямая ссылка на скачивание |
Коды ответа
| Код | Статус | Описание |
|---|---|---|
201 | Created | Файл успешно загружен. |
400 | Bad Request | Отсутствует поле attachment. |
403 | Forbidden | Нет прав на доступ к репозиторию (например, вложения отключены). |
404 | Not Found | Комментарий или репозиторий не найдены. |
422 | Unprocessable Entity | Неверный тип файла или превышение допустимого размера. |
500 | Internal Server Error | Внутренняя ошибка сервера GitVerse. |
Пример тела ошибки
При ответе 400 тело ответа имеет следующий вид:
{
"error": {
"code": "BAD_REQUEST",
"documentation_url": "https://gitverse.ru/docs/developers/public-api/",
"message": "The request format is invalid",
"status": 400
}
}Примечания
- неверный тип или превышение размера возвращают
422; выключенные вложения —403; отсутствие поляattachment—400.