Публичный APIРепозитории15. GET /repos/{owner}/{repo}/issues/{index} — получить задачу или запрос на слияние

15. GET /repos/{owner}/{repo}/issues/{index} — получить задачу или запрос на слияние

Описание

Возвращает подробную информацию о задаче (issue) или пул-реквесте (pull request) по его индексу в репозитории.
Метод работает как для обычных задач, так и для пул-реквестов — различие определяется автоматически.

Используется для отображения деталей обсуждения, получения метаданных (автор, метки, вехи, комментарии и т.д.) и интеграции с внешними системами управления задачами.

На текущий момент метод возвращает данные только для запросов на слияние (pr). Поддержка задач (issues) будет реализована позже.

Параметры URL

ПараметрОбязательныйОписание
ownerДаВладелец репозитория (пользователь или организация)
repoДаНазвание репозитория (без расширения .git)
indexДаИндекс задачи или пул-реквеста в репозитории (целое число)

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

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

Тело запроса

Данный метод не требует тела запроса.

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

curl -X GET "https://api.gitverse.ru/public/api/repos/gitverse-team/core-api/issues/42" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Accept: application/vnd.gitverse.object+json;version=1"

Ответ (200 OK)

Пример JSON-ответа:

{
  "id": 12345,
  "number": 42,
  "title": "Добавить поддержку версионирования API",
  "body": "Необходимо реализовать версионирование согласно SemVer.",
  "state": "open",
  "html_url": "https://gitverse.ru/gitverse-team/core-api/issues/42",
  "created_at": "2025-09-15T10:00:00Z",
  "updated_at": "2025-10-01T14:30:00Z",
  "closed_at": null,
  "user": {
    "login": "developer1",
    "id": 789,
    "avatar_url": "https://gitverse.ru/avatars/789.png",
    "html_url": "https://gitverse.ru/developer1"
  },
  "labels": [
    {
      "id": 101,
      "name": "enhancement",
      "color": "84b6eb"
    }
  ],
  "assignees": [],
  "milestone": null,
  "comments": 3,
  "pull_request": null
}

💡 Если объект является пул-реквестом, поле pull_request будет содержать метаданные (например, {"merged": false, "draft": false}).

Формат ответа

application/vnd.gitverse.object+json;version=1

Поля ответа

ПолеТипОписание
idintegerВнутренний ID задачи
numberintegerПубличный индекс задачи/PR в репозитории
titlestringЗаголовок
bodystringОписание
statestringСостояние: open, closed
html_urlstringСсылка на задачу в веб-интерфейсе
created_atstringДата создания (ISO 8601)
updated_atstringДата последнего изменения
closed_atstring | nullДата закрытия (если закрыта)
userobjectАвтор задачи
labelsarrayСписок меток
assigneesarrayСписок назначенных пользователей
milestoneobject | nullВеха (milestone)
commentsintegerКоличество комментариев
pull_requestobject | nullПрисутствует только для пул-реквестов

Коды ответа

КодСтатусОписание
200OKЗадача или пул-реквест успешно найден и возвращен
401UnauthorizedНе передан или недействителен токен авторизации
403ForbiddenНет прав на чтение репозитория
404Not FoundРепозиторий или задача с указанным индексом не найдены
500Internal Server ErrorВнутренняя ошибка сервера