Файлы
Метод для получения содержимого файла
GET /project/{ownerAlias}/{projectAlias}/blob?commitHash={commitHash}&file={fileName}
Запрос возвращает содержимое файла, который был изменен в указанном коммите, строкой. Если размер файла больше, чем 15МБ, или же он бинарный/картинка необходимо использовать следующий метод
Переменная пути запроса | Тип | Описание |
---|---|---|
ownerAlias |
String | Псевдоним владельца проекта |
projectAlias |
String | Псевдоним проекта |
commitHash |
String | Обязательный параметр. Хэш коммита, который хранит необходимое состояние репозитория |
fileName |
String | Обязательный параметр. Полный путь до файла вместе с его названием и расширением |
Для увеличения максимального размера файла, содержимое которого можно получить, необходимо добавить в файл application.properties параметр gitflic.rest.maxBlobSize с указанием размера в байтах.
Responses
STATUS 200
пример JSON:
Пример ответа
Пример содержимого файла
STATUS 400
- Невозможно преобразовать бинарный файл или изображение в строку, чтобы скачать содержимое.
STATUS 403
- Нет прав для доступа.
STATUS 404
- Данные по запросу не найдены.
Метод для получения потока байт
GET /project/{ownerAlias}/{projectAlias}/blob/download?commitHash={commitHash}&file={fileName}
Запрос возвращает содержимое файла, который был изменен в указанном коммите, строкой. Если размер файла больше, чем 15МБ, или же он бинарный/картинка, запрос возвращает поток байт файла
Переменная пути запроса | Тип | Описание |
---|---|---|
ownerAlias |
String | Псевдоним владельца проекта |
projectAlias |
String | Псевдоним проекта |
commitHash |
String | Обязательный параметр. Хэш коммита, который хранит необходимое состояние репозитория |
fileName |
String | Обязательный параметр. Полный путь до файла вместе с его названием и расширением |
Responses
STATUS 200
- Успешное получение потока байт
STATUS 403
- Нет прав для доступа.
STATUS 404
- Данные по запросу не найдены.
Метод для получения списка файлов
GET /project/{ownerAlias}/{projectAlias}/blob/recursive?commitHash={commitHash}&directory={directory}&depth={depth}
Запрос возвращает список файлов с информацией о них, начиная с определенной папки и до определенной глубины. Папки не возвращаются.
Переменная пути запроса | Тип | Описание |
---|---|---|
ownerAlias |
String | Псевдоним владельца проекта |
projectAlias |
String | Псевдоним проекта |
commitHash |
String | Обязательный параметр. Хэш коммита, который хранит необходимое состояние репозитория |
directory |
String | Не обязательный параметр. Начальная папка, с которой будет начинаться поиск файлов. Если не указать, то поиск происходит из корня репозитория |
depth |
Integer | Не обязательный параметр. Глубина поиска. Если не указать, то подставляется 0. Файлы, лежащие в корневой директории считаются файлами нулевой глубины. Максимальная глубина - 10 |
Для увеличения максимальной глубины поиска, необходимо добавить в файл application.properties параметр gitflic.rest.maxRecursionDepth с указанием предельной глубины.
Responses
Описание структуры JSON-объекта, описывающего файл
Поле | Тип | Описание |
---|---|---|
filePath |
String | Путь до файла |
extension |
String | Расширение файла |
size |
Integer | Размер файла в байтах |
lfsOid |
String | Идентификатор OID для LFS файлов |
lockedBy |
String | Возвращает имя пользователя, который заблокировал файл, или null если файл не заблокирован |
STATUS 200
пример JSON:
Пример ответа
[
{
"filePath": ".gitignore",
"extension": ".gitignore",
"size": 290
"lfsOid": null,
"lockedBy": null
},
{
"filePath": "CODEOWNERS",
"extension": ".null",
"size": 32
"lfsOid": null,
"lockedBy": null
},
{
"filePath": "README.md",
"extension": ".md",
"size": 7507
"lfsOid": null,
"lockedBy": null
},
{
"filePath": "app.blade.php",
"extension": ".php",
"size": 43871537
"lfsOid": "88fbda4b912596b9f56e8e12e580cc954bacfb51776ecfddd3e18fc1cf56dc4c",
"lockedBy": "adminuser"
},
{
"filePath": "gitflic-ci.yaml",
"extension": ".yaml",
"size": 594
"lfsOid": null,
"lockedBy": null
},
]
STATUS 403
- Нет прав для доступа.
STATUS 404
- Данные по запросу не найдены.
Метод для получения размера файла
GET /project/{projectUuid}/file-size?filepath={filepath}&branchName={branchName}
Запрос возвращает размер указанного файла в байтах.
Переменная пути запроса | Тип | Описание |
---|---|---|
projectUuid |
String | Уникальный ID проекта |
filepath |
String | Путь до файла |
branchName |
String | Название ветки, в которой расположен файл |
Responses
STATUS 200
пример JSON:
Пример ответа
"11843566 bytes"
STATUS 403
- Нет прав для доступа.
STATUS 404
- Данные по запросу не найдены.