5. GET /repos/{owner}/{repo}/contents/{path} — получить содержимое файла или папки
Описание
Возвращает метаданные файла или список содержимого директории. Поддерживает фильтрацию по ветке/тегу и выбор уровня детализации информации о коммите.
⚠️ Для получения содержимого файла возвращается Base64-кодированная строка в поле
content.
Для директории — массив объектов с информацией о вложенных элементах.
Параметры URL
| Параметр | Обязательный | Описание |
|---|---|---|
owner | Да | Владелец репозитория (пользователь или организация) |
repo | Да | Название репозитория |
path | Да | Путь к файлу или директории (например, src/, README.md) |
Параметры запроса (query)
| Параметр | Тип | Обязательный | Описание | По умолчанию |
|---|---|---|---|---|
ref | string | Нет | Имя коммита, ветки или тега. Если не указан — используется ветка по умолчанию (default_branch) | — |
scope | string | Нет | Уровень детализации информации о коммите: full — полная, fast — только SHA и дата | fast |
Тело запроса
Данный метод не требует тела запроса.
Пример запроса
Получить содержимое файла
curl -X GET "https://api.gitverse.ru/repos/alice/my-project/contents/README.md" \
-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/contents/src?ref=dev&scope=full" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Accept: application/vnd.gitverse.object+json;version=1"Ответ
Для файла (200 OK)
{
"type": "file",
"encoding": "base64",
"size": 123,
"name": "README.md",
"path": "README.md",
"content": "IyBN... (Base64)",
"sha": "a1b2c3d4...",
"url": "https://api.gitverse.ru/repos/alice/my-project/contents/README.md",
"html_url": "https://gitverse.ru/alice/my-project/blob/main/README.md",
"git_url": "https://api.gitverse.ru/repos/alice/my-project/git/blobs/a1b2c3d4...",
"download_url": "https://gitverse.ru/alice/my-project/raw/main/README.md",
"language": "Markdown",
"_links": {
"self": "https://api.gitverse.ru/repos/alice/my-project/contents/README.md",
"git": "https://api.gitverse.ru/repos/alice/my-project/git/blobs/a1b2c3d4...",
"html": "https://gitverse.ru/alice/my-project/blob/main/README.md"
}
}Для директории (200 OK)
[
{
"type": "file",
"name": "index.js",
"path": "src/index.js",
"sha": "f1e2d3c4...",
"size": 456,
"url": "https://api.gitverse.ru/repos/alice/my-project/contents/src/index.js",
"html_url": "https://gitverse.ru/alice/my-project/blob/main/src/index.js",
"git_url": "https://api.gitverse.ru/repos/alice/my-project/git/blobs/f1e2d3c4...",
"download_url": "https://gitverse.ru/alice/my-project/raw/main/src/index.js",
"_links": {
"self": "https://api.gitverse.ru/repos/alice/my-project/contents/src/index.js",
"git": "https://api.gitverse.ru/repos/alice/my-project/git/blobs/f1e2d3c4...",
"html": "https://gitverse.ru/alice/my-project/blob/main/src/index.js"
}
},
{
"type": "dir",
"name": "utils",
"path": "src/utils",
"sha": "9a8b7c6d...",
"size": 0,
"url": "https://api.gitverse.ru/repos/alice/my-project/contents/src/utils",
"html_url": "https://gitverse.ru/alice/my-project/tree/main/src/utils",
"git_url": "https://api.gitverse.ru/repos/alice/my-project/git/trees/9a8b7c6d...",
"download_url": null,
"_links": {
"self": "https://api.gitverse.ru/repos/alice/my-project/contents/src/utils",
"git": "https://api.gitverse.ru/repos/alice/my-project/git/trees/9a8b7c6d...",
"html": "https://gitverse.ru/alice/my-project/tree/main/src/utils"
}
}
]Формат ответа
application/vnd.gitverse.object+json;version=1
Поля ответа (файл)
| Поле | Тип | Описание |
|---|---|---|
type | string | Тип: "file", "dir", "symlink" или "submodule" |
encoding | string | Кодировка содержимого (base64 для файлов) |
size | integer | Размер в байтах (для директорий — 0) |
name | string | Имя файла или папки |
path | string | Полный путь от корня репозитория |
content | string или null | Содержимое файла в Base64 (только для type: "file") |
sha | string | SHA-хеш объекта Git |
url | string | API-ссылка на этот объект |
html_url | string | Ссылка на веб-интерфейс |
git_url | string | Ссылка на Git-объект (blob/tree) |
download_url | string или null | Прямая ссылка для скачивания (null для директорий) |
language | string или null | Язык программирования (если применимо) |
_links | object | Объект со ссылками: self, git, html |
Коды ответа
| Код | Статус | Описание |
|---|---|---|
| 200 | OK | Успешно получено содержимое файла или директории |
| 206 | Partial Content | Частичный ответ (при scope=fast) |
| 400 | Bad Request | Некорректные параметры запроса |
| 401 | Unauthorized | Не передан или невалиден токен авторизации |
| 403 | Forbidden | Нет доступа к репозиторию или пути |
| 500 | Internal Server Error | Внутренняя ошибка сервера |