Получение папки или файла в репозиторииBeta
Описание
Этот раздел документации описывает конечную точку для получения содержимого папки или файла в указанном репозитории. Если запрашиваемый путь указывает на папку, возвращается список файлов и подпапок. Если путь указывает на файл, возвращается информация о файле, включая его содержимое.
Общие замечания
- Для версий API указывайте заголовок
Accept
с соответствующей версией:
Accept: application/vnd.gitverse+json;version=1
- Базовый URL для всех конечных точек:
https://api.gitverse.ru
- Все даты возвращаются в формате ISO 8601.
- Если запрос завершается неудачно, API возвращает объект ошибки с кодом состояния HTTP и сообщением.
Описание метода
GET /public/api/repos/{username}/{reponame}/contents/{path}
Параметры пути
{username}
— имя владельца репозитория (пользователя или организации);{reponame}
— название репозитория;{path}
— путь к папке или файлу в репозитории.
Заголовки запроса
Content-Type: application/json
: указывает, что тело ответа будет в формате JSON;Accept: application/vnd.gitverse+json;version=1
: указывает версию API. В данном случае используется версия1
.
Тело запроса
Тело запроса не требуется. Этот метод работает без передачи данных в теле запроса.
Параметры ответа
Ответ для папки
Если запрашиваемый путь указывает на папку, возвращается информация о папке и её содержимом:
{
"type": "dir",
"size": 0,
"name": "catalog",
"path": "catalog",
"sha": "758177878433eac97c17ba21bc4e9a4e2ffa3b06",
"entries": [
{
"name": "license_manager_client.proto",
"path": "catalog/license_manager_client.proto",
"sha": "3f8d1f3ee578ff61df3f2395b3525ff79bd0a149",
"size": 5630,
"type": "file"
},
{
"name": "service.proto",
"path": "catalog/service.proto",
"sha": "1cb4f392f81120eef83729cfec660cd9b20a75e2",
"size": 830,
"type": "file"
}
]
}
Поля ответа для папки
- type (
string
): тип объекта (dir
для папки); - size (
integer
): размер объекта в байтах (всегда0
для папки); - name (
string
): имя папки; - path (
string
): путь к папке относительно корня репозитория; - sha (
string
): SHA-хеш объекта; - entries (
array
): список файлов и подпапок внутри папки:- name (
string
): имя файла или подпапки; - path (
string
): полный путь к файлу или подпапке; - sha (
string
): SHA-хеш объекта; - size (
integer
): размер файла в байтах; - type (
string
): тип объекта (file
для файла,dir
для папки).
- name (
Ответ для файла
Если запрашиваемый путь указывает на файл, возвращается информация о файле:
{
"name": "generate-gitignores.go",
"path": "generate-gitignores.go",
"sha": "1e09c83a6a716c67a1415f779e5fb3052880e4e6",
"size": 2854,
"type": "file",
"encoding": "base64",
"content": "Ly9nbzpidWlsZCBpZ25vcmUKCnBhY2thZ2UgVzKSAlc1xuIiwgc3JjLCBkc3QpCgl9CgoJZm10LlByaW50bG4oIkRvbmUiKQp9Cg==",
"language": "Go"
}
Поля ответа для файла
- name (
string
): имя файла; - path (
string
): путь к файлу относительно корня репозитория; - sha (
string
): SHA-хеш объекта; - size (
integer
): размер файла в байтах; - type (
string
): тип объекта (file
для файла); - encoding (
string
): кодировка содержимого файла (например,base64
); - content (
string
): содержимое файла в формате Base64; - language (
string
): язык программирования, связанный с файлом (если определен).
Пример запроса
Запрос для папки
GET https://api.gitverse.ru/public/api/repos/qweqwe1/russia/contents/catalog
Content-Type: application/json
Accept: application/vnd.gitverse+json;version=1
Запрос для файла
GET https://api.gitverse.ru/public/api/repos/qweqwe1/russia/contents/generate-gitignores.go
Content-Type: application/json
Accept: application/vnd.gitverse+json;version=1
Обработка ошибок
Если запрос завершается неудачно, API возвращает объект ошибки с кодом состояния HTTP и сообщением.
Пример ошибки
{
"error": "Not Found",
"message": "The requested file or folder does not exist.",
"status": 404
}
Возможные коды ошибок
400 Bad Request
: неверный запрос (например, отсутствие обязательных параметров);401 Unauthorized
: необходима авторизация (для приватных репозиториев);403 Forbidden
: y пользователя нет прав на выполнение действия;404 Not Found
: репозиторий или запрашиваемый файл/папка не найдены;500 Internal Server Error
: внутренняя ошибка сервера.
Дополнительная информация
- Если репозиторий является приватным, доступ к нему возможен только при наличии соответствующих прав.
- Если запрашиваемый путь указывает на папку, поле
entries
содержит список файлов и подпапок. - Если запрашиваемый путь указывает на файл, поле
content
содержит содержимое файла в формате Base64. - Если запрашиваемый путь не существует, API возвращает ошибку
404 Not Found
.
Если у вас возникнут вопросы или потребуется дополнительная информация, пожалуйста, обратитесь к документации API или свяжитесь с поддержкой.