GIT - Поддерживать запутанные репозитории для работы с ненадежными сторонними разработчиками?

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

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

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

Вы когда-нибудь сталкивались с этой проблемой? Или внедрили решение для уменьшения или смягчения аналогичных рисков?

Я думаю, что одной потенциальной стратегией может быть создание 3-х отдельных git-репозиториев с разными целями (не ветвями), но что-то вроде этого:

Git Repo: Project1_DEVELOPERS

$git branch
master
dev
issue_feature1
issue_feature2
etc..

Рабочий процесс выше: в основном стиль выпуска / функции ветки. Разработчику поручается задача, которая проверяется как ветвь проблем / функций. По завершении отправляет запрос на ветку и слияние в ветку dev. Мы проверяем ветку и сливаемся с dev, если все в порядке.

Выше в основном, как мы делаем вещи сегодня. Вот и все. Весь репо находится в "мастер", как он публикуется в мире.

Но для достижения поставленной цели я думаю ДОБАВИТЬ что-то вроде...

Git Repo: Project1_OBFUSCATE

$git branch
strips_and_swaps (for sending to DEVELOPERS repo)
prod_patches (the patches to make it "whole" again)
prod_master (branch that PRODUCTION repo pulls into its master branch?)

и производственный репо...

Git Repo: Project1_PRODUCTION

$git branch
master

Что касается содержания проблемы, представьте простую веб-страницу в качестве репозитория...

.git
index.html
logo.png

Так что моей целью было бы раздеть или залатать настоящий / фальшивый "logo.png" с фиктивным логотипом из веток, которые есть в репо "DEVELOPERS".

На практике вместо logo.png, возможно, это будет набор файлов.blade (Laravel) .twig или любые другие файлы шаблонов, которые могут иметь биты содержимого, доступ к которым мы хотим ограничить. В некоторых случаях, возможно, файлы существуют ТОЛЬКО в пульте "OBFUSCATE".

Кто-нибудь сделал что-нибудь подобное этому, кто мог бы поделиться некоторым пониманием?

Мне больно думать, что я поступаю так, как я предлагаю, и это может даже не сработать:)

1 ответ

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

Вы по-прежнему можете иметь общую картину, используя родительское репо, которое будет ссылаться на все остальные репо как подмодули.

Но если конфиденциальные данные находятся в одном репо, вы можете защитить их с точки зрения доступа.
Это проще, чем пытаться защитить ветку (вы можете защитить от push, а не pull, то есть можно иметь доступ к ее содержимому) или скрыть удаленный URL.

Другие вопросы по тегам