Я реализую микросервис (в Spring Cloud), который действует как фасад для операций Git, вызываемых слоем пользовательского интерфейса. Я пытаюсь использовать jgit, но проблема в том, что для этого требуется файловая система. Поэтому я должен клонировать удаленный репозиторий в локальную файловую систему. Проблема в том, что тогда микросервис не остается без гражданства, а также возникают другие проблемы:
- клонирование перед каждой операцией занимает слишком много времени, поэтому это не вариант
- Наличие нескольких экземпляров такого микросервиса может привести к различным репозиториям (push занимает некоторое время)
- фиксация на разных узлах одновременно может привести к конфликтам
Я хотел бы относиться к Git-репозиторию аналогично базе данных, поэтому все операции должны выполняться без использования файловой системы, клонирования и т. Д. - просто вызовите команду на удаленном компьютере, и все готово.
Я хотел бы добавить, что поиск решения довольно сложен, потому что фраза "Git microservice" встречается довольно часто, но в другом смысле (хранение источников в репозитории).
Редактировать: я только что нашел
Есть ли какие-нибудь успокоительные интерфейсы для git?
но любые другие идеи были бы хороши