LINUX.ORG.RU

Организация параллельной работы с public/private git репозиториями

 ,


0

2

добрый вечер

Хочется как-то организовать работу с проектом, когда есть публичная часть, лежащая на гитхабе, и приватная репа с небольшими отличиями на своих серверах, есть ли какие-то устоявшиеся и удобные практики?

Первое что приходит в голову, и аналогично находится гуглом - разные ветки, каждая смотрит в свою репу. И вроде все хорошо, но при изменении кода мержить придется совсем вручную каждый файл, что в какой-то момент точно приведет к ошибке и публикации внутренних частей в открытую репу на гитхабе.

Речь идет даже не о самом коде приложения, он одинаков, а про обвязку - немного разные Dockerfile с указанием внутренних реп, gitlab-ci, пример конфига с особенностями использования, values для хельма.

Еще вариант, который пришел в голову - держать внутреннюю «прокси»-репу, в которой будут примеры конфигов и values, а собранные бинарники/образы просто зеркалировать с гитхаба.

В этом варианте вроде на первый взгляд все хорошо, но поломается если все-таки придется делать несовместимые изменения в коде.



Последнее исправление: user_undefined (всего исправлений: 1)

Речь идет даже не о самом коде приложения, он одинаков

Разработку «core» кода веди в master ветке, которые пушится и на гитхаб, и на локальное зеркало

а про обвязку - немного разные Dockerfile с указанием внутренних реп, gitlab-ci, пример конфига с особенностями использования, values для хельма

Разработку «devel» кода веди в devel ветке, которая пушится только на локальное зеркало. Коммиты из master перетаскиваешь merge-ем или rebase-ом, в большинстве случаев гит всё сделает автоматически

Точнее, перетаскивать наверное придётся наоборот из devel в master. Но не так важно

Crocodoom ★★★★★
()
Последнее исправление: Crocodoom (всего исправлений: 1)

Звучит как идеальный рецепт для supply chain attack (прецедент). Но я конечно отговаривать не буду - насколько мне известно, каждый волен яйца щемить как заблагорассудится.

d_a ★★★★★
()

Вынести обвязку отдельной репой

pru-mike ★★
()
Ответ на: комментарий от Crocodoom

в большинстве случаев гит всё сделает автоматически

вот это-то и пугает) публичный код в приватную репу не страшно, а вот наоборот гораздо хуже. Можно попробовать в приватной репе сделать pre-merge hook и там проверять изменения определенных файлов

user_undefined
() автор топика
Ответ на: комментарий от d_a

А можно кратко пояснить каким образом? Я видимо что-то упускаю, но в той атаке создавали пакеты с внутренними именами на внешних серверах, в моем же случае нет никаких дополнительных пакетов/образов. Условно собранный бинарник/образ на гитхабе должен быть идентичный тому, что собирается в приватной репе. Разница только в примерах и путям к базовым образам в докерфайле

Хотя конечно нельзя исключать риск взлома и подмены образа на внешней репе, тогда беда

user_undefined
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.