Получить список вех репозитория

GET /repos/{owner}/{repo}/milestones

Описание

Метод GET возвращает список вех в указанном репозитории. Поддерживается пагинация, фильтрация по состоянию, поиск по названию/описанию и сортировка. Метод применяется для получения списка вех, интеграции с внешними системами управления задачами (task trackers) и автоматизации рабочих процессов.

Токен

Требуется токен с правами на Чтение для Репозитория.

Заголовки

ПараметрОбязательныйОписание
AcceptНетТип содержимого ответа. Рекомендуется установить значение application/vnd.gitverse.object+json;version=latest
AuthorizationДаТокен доступа. Формат: Bearer <YOUR-TOKEN> или token <YOUR-TOKEN>

Параметры пути

В URL запроса необходимо передать следующие идентификаторы ресурса:

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

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

ПараметрТипОбязательныйОписание
qstringНетТекстовый запрос: поиск по названию и описанию вехи
statestringНетСостояние вехи. Допустимые значения: open (открытые, по умолчанию), closed (закрытые)
pageintegerНетНомер страницы для пагинации результатов (с 1)
limitintegerНетКоличество вех на странице (по умолчанию — 10)
sortstringНетПорядок сортировки. Допустимые значения: closestduedate (ближайший контрольный срок, по умолчанию), furthestduedate (дальнейший контрольный срок), leastcomplete (наименьший процент выполнения), mostcomplete (наибольший процент выполнения), mostissues (больше задач), leastissues (меньше задач), newest (от новых к старым), oldest (от старых к новым), recentupdate (недавно обновленные), leastupdate (давно обновленные)

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

Ниже приведен пример использования curl для получения списка открытых вех, отсортированных по ближайшему контрольному сроку.

curl -X GET "https://api.gitverse.ru/repos/myorg/backend-api/milestones?state=open&sort=closestduedate&page=1&limit=10" \
  -H "Authorization: Bearer <YOUR-TOKEN>" \
  -H "Accept: application/vnd.gitverse.object+json;version=latest"

Замените YOUR_TOKEN на ваш личный токен доступа.

Ответ при успешном выполнении (200 OK)

Если вехи найдены, сервер вернет ответ с кодом 200 OK и телом в формате JSON, содержащим массив объектов вех:

[
  {
    "id": 1,
    "title": "Версия 1.0",
    "description": "Выпуск первой стабильной версии",
    "state": "open",
    "open_issues": 5,
    "closed_issues": 3,
    "due_on": "2026-12-01T00:00:00Z",
    "created_at": "2026-10-01T09:00:00Z",
    "updated_at": "2026-10-20T14:30:00Z",
    "closed_at": null
  },
  {
    "id": 2,
    "title": "Версия 2.0",
    "description": "Крупное обновление",
    "state": "closed",
    "open_issues": 0,
    "closed_issues": 12,
    "due_on": "2026-11-15T00:00:00Z",
    "created_at": "2026-07-01T09:00:00Z",
    "updated_at": "2026-11-15T16:00:00Z",
    "closed_at": "2026-11-15T16:00:00Z"
  }
]

Пагинация

Список вех разбит на страницы: номер страницы задается параметром page, количество вех на странице — параметром limit. Если подходящих вех нет, сервер вернет ответ с кодом 200 OK и пустым массивом [].

Структура ответа

Ответ — массив объектов Milestone (веха). Полная структура описана в графе объектов, раздел «Объект Milestone».

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

ПолеТипОписание
idintegerУникальный идентификатор вехи
title, descriptionstring / nullНазвание и описание вехи
statestringСостояние вехи (open, closed)
open_issues, closed_issuesintegerКоличество открытых и закрытых задач в вехе
due_onstring (date-time) / nullСрок выполнения
created_at, updated_atstring (date-time)Даты создания и последнего обновления
closed_atstring (date-time) / nullДата закрытия вехи (если открыта — null)

Коды ответа

Результат выполнения запроса определяется по HTTP-статусу:

КодСтатусОписание
200OKСписок вех успешно получен
400Bad RequestНекорректные параметры запроса (например, неверный формат пагинации или недопустимое значение state/sort)
401UnauthorizedНе передан или невалиден токен авторизации
403ForbiddenНет прав на чтение репозитория
404Not FoundРепозиторий не найден
500Internal Server ErrorВнутренняя ошибка сервера GitVerse

Формат ответа и заголовки

Метод возвращает ответ в формате JSON. Заголовок Content-Type в ответе устанавливается в application/vnd.gitverse.object+json;version=latest.