Прикрепить файл к комментарию

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».

На корневом уровне каждый элемент содержит:

ПолеТипОписание
idintegerИдентификатор вложения
namestringИмя файла
sizeintegerРазмер в байтах
created_atstring (date-time)Дата загрузки
uuidstringУникальный идентификатор файла
browser_download_urlstringПрямая ссылка на скачивание

Коды ответа

КодСтатусОписание
201CreatedФайл успешно загружен.
400Bad RequestОтсутствует поле attachment.
403ForbiddenНет прав на доступ к репозиторию (например, вложения отключены).
404Not FoundКомментарий или репозиторий не найдены.
422Unprocessable EntityНеверный тип файла или превышение допустимого размера.
500Internal 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.