3. GET /repos/{owner}/{repo}/issues/{issue_number}/comments — получить комментарии задачи
Описание метода
Метод GET возвращает список всех комментариев к задаче (issue) или запросу на слияние (pull request). Поддерживается пагинация для получения большого количества комментариев.
Метод применяется для:
- получения истории обсуждений по задаче;
- интеграции с внешними системами (аналитика, экспорт данных);
- автоматизации рабочих процессов (поиск упоминаний, анализ обсуждений);
- построения отчетов по активности в задачах.
Базовый URL:
https://api.gitverse.ru/repos/{owner}/{repo}/issues/{issue_number}/comments
Заголовки запроса
| Заголовок | Тип | Обязательный | Описание |
|---|---|---|---|
Accept | string | Рекомендуется | Тип представления. Значение: application/vnd.gitverse.object+json;version=1 |
Authorization | string | Для приватных репозиториев | Личный токен доступа (personal access token). Формат: Bearer <YOUR_TOKEN> или token <YOUR_TOKEN>. Для публичных репозиториев заголовок не обязателен, но повышает лимиты скорости |
Path-параметры URL
В URL запроса необходимо передать следующие идентификаторы ресурса:
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
owner | string | Да | Владелец репозитория (пользователь или организация) |
repo | string | Да | Название репозитория (без расширения .git) |
issue_number | integer | Да | Порядковый номер задачи или запроса на слияние |
Query-параметры
Для пагинации результатов можно использовать следующие параметры:
| Параметр | Тип | Обязательный | Описание | По умолчанию |
|---|---|---|---|---|
page | integer | Нет | Номер страницы пагинации (начиная с 1) | 1 |
per_page | integer | Нет | Количество результатов на странице (макс. 100) | 30 |
since | string | Нет | Только комментарии, обновленные после указанной даты (формат ISO 8601) | — |
Пример запроса с пагинацией
curl -X GET "https://api.gitverse.ru/repos/user123/repo123/issues/18/comments?page=2&per_page=50" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Accept: application/vnd.gitverse.object+json;version=1"Тело запроса
Данный метод не требует тела запроса.
Пример запроса
Ниже приведен пример использования curl для получения комментариев задачи с номером 18 в репозитории repo123.
curl -X GET "https://api.gitverse.ru/repos/user123/repo123/issues/18/comments" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Accept: application/vnd.gitverse.object+json;version=1"Замените YOUR_TOKEN на ваш личный токен доступа.
Ответ при успешном получении (200 OK)
Если задача найдена и у токена есть права на чтение репозитория, сервер вернет ответ с кодом 200 OK и телом в формате JSON, содержащим массив объектов комментариев.
Пример ответа
[
{
"id": 456,
"node_id": null,
"url": "https://api.gitverse.ru/repos/user123/repo123/issues/comments/456",
"html_url": "https://gitverse.ru/user123/repo123/issues/18#issuecomment-456",
"body": "Проблема воспроизводится на версии 2.1.0. Логи во вложении.",
"user": {
"id": 101,
"login": "user123",
"avatar_url": "https://gitverse.ru/avatars/user123.png",
"html_url": "https://gitverse.ru/user123"
},
"created_at": "2026-06-30T14:23:45.123456Z",
"updated_at": "2026-06-30T14:23:45.123456Z",
"issue_url": "https://api.gitverse.ru/repos/user123/repo123/issues/18"
},
{
"id": 457,
"node_id": null,
"url": "https://api.gitverse.ru/repos/user123/repo123/issues/comments/457",
"html_url": "https://gitverse.ru/user123/repo123/issues/18#issuecomment-457",
"body": "Спасибо за информацию! Посмотрю логи.",
"user": {
"id": 202,
"login": "developer42",
"avatar_url": "https://gitverse.ru/avatars/developer42.png",
"html_url": "https://gitverse.ru/developer42"
},
"created_at": "2026-06-30T15:10:22.654321Z",
"updated_at": "2026-06-30T15:10:22.654321Z",
"issue_url": "https://api.gitverse.ru/repos/user123/repo123/issues/18"
}
]Структура объекта комментария
Каждый элемент массива в ответе содержит следующие поля:
| Поле | Тип | Описание |
|---|---|---|
id | integer | Уникальный идентификатор комментария |
node_id | string / null | Глобальный ID узла GraphQL. Всегда null |
url | string | Полный URL к API для получения комментария. Пример: https://api.gitverse.ru/repos/user123/repo123/issues/comments/456 |
html_url | string | URL для просмотра комментария в веб-интерфейсе GitVerse. Пример: https://gitverse.ru/user123/repo123/issues/18#issuecomment-456 |
body | string | Текст комментария |
user | object | Объект с информацией об авторе комментария (см. раздел «Объект User») |
created_at | string | Временная метка создания в формате ISO 8601 |
updated_at | string | Временная метка последнего обновления в формате ISO 8601 |
issue_url | string | URL задачи, к которой принадлежит комментарий |
Коды HTTP-ответов
Результат выполнения запроса определяется по HTTP-статусу:
| Код | Статус | Описание |
|---|---|---|
200 | OK | Список комментариев успешно получен |
400 | Bad Request | Некорректные параметры запроса |
401 | Unauthorized | Не передан или невалиден токен авторизации |
403 | Forbidden | Нет прав на доступ к репозиторию |
404 | Not Found | Задача не найдена либо нет доступа к ней |
422 | Unprocessable Entity | Ошибка валидации параметров |
429 | Too Many Requests | Превышен лимит запросов |
500 | Internal Server Error | Внутренняя ошибка сервера |
Примеры ответов с разными кодами
200 OK — список комментариев получен
[
{
"id": 456,
"body": "Проблема воспроизводится на версии 2.1.0.",
"user": {
"id": 101,
"login": "user123"
},
"created_at": "2026-06-30T14:23:45.123456Z"
}
]200 OK — комментариев нет (пустой массив)
[]401 Unauthorized — токен не передан или невалиден
{
"message": "Requires authentication",
"documentation_url": "https://gitverse.ru/docs/public-api/errors"
}403 Forbidden — нет прав на доступ к репозиторию
{
"message": "Forbidden: you do not have access to this repository",
"documentation_url": "https://gitverse.ru/docs/public-api/errors"
}404 Not Found — задача не существует
{
"message": "Issue not found",
"documentation_url": "https://gitverse.ru/docs/public-api/errors"
}429 Too Many Requests — превышен лимит запросов
{
"message": "API rate limit exceeded",
"documentation_url": "https://gitverse.ru/docs/public-api/rate-limit"
}Формат ответа и заголовки
Метод возвращает ответ в формате JSON. Заголовок Content-Type в ответе устанавливается в application/vnd.gitverse.object+json;version=1.