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

GET /repos/{owner}/{repo}/projects

Описание

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

Токен

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

Заголовки

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

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

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

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

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

ПараметрТипОбязательныйОписание
pageintegerНетНомер страницы для пагинации результатов
limitintegerНетКоличество результатов на странице
statestringНетСостояние проекта. Допустимые значения: open (открытые), closed (закрытые), all (все)
sortstringНетПорядок сортировки. Допустимые значения: newest, oldest, recentupdate, leastupdate, alphabetically, reversealphabetically.

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

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

curl -X GET "https://api.gitverse.ru/repos/myorg/backend-api/projects?state=open&sort=newest&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": 43,
    "title": "Mobile release 2.0",
    "description": "Tasks for the mobile app release",
    "private": false,
    "state": "open",
    "created_at": "2026-09-14T10:00:00Z",
    "updated_at": "2026-09-14T12:30:00Z",
    "closed_at": null,
    "columns": [
      {
        "id": 12,
        "title": "In progress",
        "color": "#0969DA",
        "default": false,
        "sorting": 2,
        "created_at": "2026-09-14T10:00:00Z",
        "updated_at": "2026-09-14T12:30:00Z"
      }
    ]
  }
]

Пагинация

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

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

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

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

ПолеТипОписание
idintegerУникальный идентификатор проекта
title, descriptionstringНазвание и описание проекта
privatebooleanФлаг приватности проекта (true — приватный, false — публичный)
statestringСостояние проекта (open, closed)
created_at, updated_atstring (date-time)Даты создания и последнего обновления
closed_atstring (date-time) / nullДата закрытия проекта (если открыт — null)
columnsarrayСписок колонок проекта (см. ProjectColumn)

Вложенные объекты описаны в графе объектов.

Коды ответа

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

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

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

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