8. GET /repos/{owner}/{repo}/git/trees/{tree_sha}
— получить содержимое дерева Git по SHA
Описание
Возвращает структуру файлов и папок (дерево Git) по указанному SHA-хешу коммита или дерева.
Поддерживается пагинация и рекурсивный обход вложенных директорий.
⚠️ Для приватных репозиториев требуется авторизация с правами на чтение.
Параметры URL
Параметр | Обязательный | Описание |
---|---|---|
owner | Да | Владелец репозитория (пользователь или организация) |
repo | Да | Название репозитория (без расширения .git ) |
tree_sha | Да | SHA-хеш коммита или дерева Git |
Параметры запроса (query)
Параметр | Тип | Обязательный | Описание | По умолчанию |
---|---|---|---|---|
page | integer | Нет | Номер страницы результатов | 1 |
per_page | integer | Нет | Количество элементов на странице (максимум — 100 ) | 30 |
recursive | boolean | Нет | Включить ли вложенные поддиректории в ответ | false |
💡 При
recursive=true
возвращаются все файлы и папки во всем дереве (до лимита пагинации).
Тело запроса
Данный метод не требует тела запроса.
Пример запроса
Получить корневое дерево
curl -X GET "https://api.gitverse.ru/repos/alice/my-project/git/trees/a1b2c3d4" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Accept: application/vnd.gitverse.object+json;version=1"
Получить полное дерево рекурсивно
curl -X GET "https://api.gitverse.ru/repos/alice/my-project/git/trees/a1b2c3d4?recursive=true&per_page=100" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Accept: application/vnd.gitverse.object+json;version=1"
Ответ (200 OK)
Пример JSON-ответа:
{
"sha": "a1b2c3d4...",
"url": "https://api.gitverse.ru/public/api/repos/alice/my-project/git/trees/a1b2c3d4",
"truncated": false,
"tree": [
{
"path": "README.md",
"mode": "100644",
"type": "blob",
"sha": "f1e2d3c4...",
"size": 123,
"url": "https://api.gitverse.ru/public/api/repos/alice/my-project/git/blobs/f1e2d3c4..."
},
{
"path": "src",
"mode": "040000",
"type": "tree",
"sha": "9a8b7c6d...",
"size": 0,
"url": "https://api.gitverse.ru/public/api/repos/alice/my-project/git/trees/9a8b7c6d..."
}
],
"total_count": 2,
"page": 1
}
Формат ответа
application/vnd.gitverse.object+json;version=1
Поля ответа
Поле | Тип | Описание |
---|---|---|
sha | string | SHA-хеш запрошенного дерева |
url | string | API-ссылка на это дерево |
truncated | boolean | Был ли результат обрезан из-за ограничений (например, слишком большое дерево) |
tree | array | Список элементов (файлов и папок) |
tree[].path | string | Путь элемента относительно корня дерева |
tree[].mode | string | Режим доступа (например, 100644 — обычный файл, 040000 — директория) |
tree[].type | string | Тип: blob (файл), tree (директория), commit (отдельный коммит в другом репозитории) |
tree[].sha | string | SHA объекта |
tree[].size | integer | Размер в байтах (для файлов; 0 для директорий) |
tree[].url | string | Ссылка на объект в API |
total_count | integer | Общее количество элементов в дереве |
page | integer | Текущая страница пагинации |
Коды ответа
Код | Статус | Описание |
---|---|---|
200 | OK | Дерево успешно получено |
400 | Bad Request | Некорректный формат SHA или параметров пагинации |
401 | Unauthorized | Токен отсутствует или недействителен |
403 | Forbidden | Нет прав на чтение репозитория |
409 | Conflict | SHA не соответствует дереву (например, передан SHA коммита без поддержки разрешения) |
422 | Unprocessable Entity | Невозможно обработать дерево (например, слишком глубокая рекурсия) |
500 | Internal Server Error | Внутренняя ошибка сервера |