Публичный APIРепозитории5. GET /repos/{owner}/{repo}/contents/{path} — получить содержимое файла или папки

5. GET /repos/{owner}/{repo}/contents/{path} — получить содержимое файла или папки

Описание

Возвращает метаданные файла или список содержимого директории. Поддерживает фильтрацию по ветке/тегу и выбор уровня детализации информации о коммите.

⚠️ Для получения содержимого файла возвращается Base64-кодированная строка в поле content.
Для директории — массив объектов с информацией о вложенных элементах.

Параметры URL

ПараметрОбязательныйОписание
ownerДаВладелец репозитория (пользователь или организация)
repoДаНазвание репозитория
pathДаПуть к файлу или директории (например, src/, README.md)

Параметры запроса (query)

ПараметрТипОбязательныйОписаниеПо умолчанию
refstringНетИмя коммита, ветки или тега. Если не указан — используется ветка по умолчанию (default_branch)
scopestringНетУровень детализации информации о коммите: 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

Поля ответа (файл)

ПолеТипОписание
typestringТип: "file", "dir", "symlink" или "submodule"
encodingstringКодировка содержимого (base64 для файлов)
sizeintegerРазмер в байтах (для директорий — 0)
namestringИмя файла или папки
pathstringПолный путь от корня репозитория
contentstring или nullСодержимое файла в Base64 (только для type: "file")
shastringSHA-хеш объекта Git
urlstringAPI-ссылка на этот объект
html_urlstringСсылка на веб-интерфейс
git_urlstringСсылка на Git-объект (blob/tree)
download_urlstring или nullПрямая ссылка для скачивания (null для директорий)
languagestring или nullЯзык программирования (если применимо)
_linksobjectОбъект со ссылками: self, git, html

Коды ответа

КодСтатусОписание
200OKУспешно получено содержимое файла или директории
206Partial ContentЧастичный ответ (при scope=fast)
400Bad RequestНекорректные параметры запроса
401UnauthorizedНе передан или невалиден токен авторизации
403ForbiddenНет доступа к репозиторию или пути
500Internal Server ErrorВнутренняя ошибка сервера