Перейти к содержанию

Файлы


Метод для получения содержимого файла

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 - Данные по запросу не найдены.