Получить список проектов репозитория
GET /repos/{owner}/{repo}/projects
Описание
Метод GET возвращает список проектов в указанном репозитории. Поддерживается пагинация, фильтрация по состоянию, поиск по названию/описанию и сортировка.
Метод применяется для получения списка досок проектов, интеграции с внешними системами управления задачами (task trackers) и автоматизации рабочих процессов.
Токен
Требуется токен с правами на Чтение для Репозитория.
Заголовки
| Параметр | Обязательный | Описание |
|---|---|---|
| Accept | Нет | Тип содержимого ответа. Рекомендуется установить значение application/vnd.gitverse.object+json;version=latest |
| Authorization | Да | Токен доступа. Формат: Bearer <YOUR-TOKEN> или token <YOUR-TOKEN> |
Параметры пути
В URL запроса необходимо передать следующие идентификаторы ресурса:
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| owner | string | Да | Владелец репозитория (логин пользователя или имя организации) |
| repo | string | Да | Название репозитория (без расширения .git) |
Параметры строки запроса
| Параметр | Тип | Обязательный | Описание | |
|---|---|---|---|---|
| page | integer | Нет | Номер страницы для пагинации результатов | |
| limit | integer | Нет | Количество результатов на странице | |
| state | string | Нет | Состояние проекта. Допустимые значения: open (открытые), closed (закрытые), all (все) | |
| sort | string | Нет | Порядок сортировки. Допустимые значения: 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».
На корневом уровне каждый элемент массива содержит:
| Поле | Тип | Описание |
|---|---|---|
id | integer | Уникальный идентификатор проекта |
title, description | string | Название и описание проекта |
private | boolean | Флаг приватности проекта (true — приватный, false — публичный) |
state | string | Состояние проекта (open, closed) |
created_at, updated_at | string (date-time) | Даты создания и последнего обновления |
closed_at | string (date-time) / null | Дата закрытия проекта (если открыт — null) |
columns | array | Список колонок проекта (см. ProjectColumn) |
Вложенные объекты описаны в графе объектов.
Коды ответа
Результат выполнения запроса определяется по HTTP-статусу:
| Код | Статус | Описание |
|---|---|---|
| 200 | OK | Список проектов успешно получен |
| 400 | Bad Request | Некорректные параметры запроса (например, неверный формат пагинации или недопустимое значение state/sort) |
| 401 | Unauthorized | Не передан или невалиден токен авторизации |
| 403 | Forbidden | Нет прав на чтение репозитория |
| 404 | Not Found | Репозиторий не найден |
| 500 | Internal Server Error | Внутренняя ошибка сервера GitVerse |
Формат ответа и заголовки
Метод возвращает ответ в формате JSON. Заголовок Content-Type в ответе устанавливается в application/vnd.gitverse.object+json;version=latest.