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

13. GET /repos/{owner}/{repo}/issues — получить список задач (issues) репозитория

Возвращает отфильтрованный список задач (issues) и пул-реквестов (pull requests) репозитория.
Поддерживается пагинация и фильтрация по состоянию, меткам, вехам, автору и другим параметрам.

⚠️ Важно: На текущий момент метод возвращает только пул-реквесты. Поддержка обычных задач (issues) будет добавлена в будущих версиях API.

Параметры URL

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

Параметры запроса (query)

ПараметрТипОбязательныйОписаниеПо умолчанию
statestringНетФильтр по состоянию: open, closed, allopen
qstringНетКлючевое слово для поиска в заголовке и описании
labelsstringНетСписок меток через запятую (исключить — префикс -)
milestonesstringНетИмена или ID вех через запятую
created_bystringНетЛогин автора задачи/PR
assigned_bystringНетЛогин назначенного пользователя
mentioned_bystringНетЛогин упомянутого пользователя
typestringНетТип: issues, pull_requestsissues
sincestringНетТолько элементы, обновленные после даты (RFC3339)
beforestringНетТолько элементы, обновленные до даты (RFC3339)
pageintegerНетНомер страницы1
per_pageintegerНетЭлементов на странице (макс. 50)30

Тело запроса

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

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

curl -X GET "https://api.gitverse.ru/repos/gitverse-team/core-api/issues?state=open&type=pull_requests&labels=bug,enhancement&per_page=20" \
  -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 2.0.0",
    "state": "open",
    "html_url": "https://gitverse.ru/gitverse-team/core-api/pull/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"
    },
    "labels": [
      {
        "id": 101,
        "name": "enhancement",
        "color": "84b6eb"
      }
    ],
    "assignees": [],
    "milestone": null,
    "comments": 3,
    "pull_request": {
      "merged": false,
      "draft": false
    }
  }
]

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

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

Поля каждого элемента

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

Коды ответа

КодСтатусОписание
200OKСписок успешно получен
400Bad RequestНекорректные параметры запроса
401UnauthorizedТокен отсутствует или недействителен
403ForbiddenНет прав на чтение репозитория
404Not FoundРепозиторий не найден
422Unprocessable EntityОшибка валидации фильтров
500Internal Server ErrorВнутренняя ошибка сервера