Всем доброго времени суток, я начинающий веб-разработчик, так что тапками прошу не кидаться :) Хочу отметить, что задача решается на стеке python&&django, но если вы имели опыт решения аналогичной задачи на другом стеке(, ЯП) мне он также очень интересен.
К сути дела, стоит следующая задача:
Необходимо реализовать сервис(приложение/веб-интерфейс), который поможет делать коммиты, с соответствующими файлами. Я получаю доступ к аккаунту user-a через API, посредством access_token-а, сообщение коммита, ветку и
архив с файлами и !директориями(через уже разработанный мной интерфейс).
Далее распаковываю архив во временную директорию и вот тут встаёт вопрос:
Каким образом лучше решить задачу отправки файлов и commit-a.
На данный момент, исходя из документации по API я вижу только 2 пути:
- Клонировать репозиторий, который может быть достаточно больших размеров, на что может уйти неизвестное время, и затем производить все дальнейшие манипуляции уже непосредственно через git. Тут есть 3 нюанса(я уверен, что даже больше): длительность всего процесса, проблемы с обработкой ошибок и самый главный это авторизация, так как в моем приложении пароль и логин от аккаунта пользователя на gitlab не хранится и храниться не будет, и пользователь авторизован в моём приложении пока не удалит условный sessionId из cookie.
- Строить n-ый список запросов, или использовать пакет python-gitlab(что несильно упрощает задачу), и encode-ть каждый файл перед отправкой в base64, на что тоже может уйти неопределенное время. Стоит отметить что файлы могут самых разных типов psd, exe, txt, py, js и т.д.
- Может вы что-то предложите ? :)
Так вот какой путь лучше и почему ?