У вас есть два варианта:
На сегодняшний день самым простым решением является использование программного обеспечения для хостинга, которое уже предоставляет эту функцию. Возможно, вы захотите взглянуть на GitLab, в котором есть бесплатные опции как для SaaS (размещенного на gitlab.com), так и для самоуправляемых экземпляров (с вашим собственным экземпляром gitlab). Или GitHub. Или битбакет. Или я уверен, что есть другие, о которых я не думаю.
Если вы действительно не хотите использовать ни один из них, вы можете реализовать управление доступом на простом git сервер, но это не так просто. Короткий (или, скорее, glib) ответ - «ловушки», но ловушка - это просто скрипт, который запускается, когда что-то происходит, - как в этом случае вы использовали бы ловушку предварительного получения, которая запускается, когда кто-то пытается сделать sh и решает, принимать ли пу sh. Теперь, как ваш хук узнает, кто толкает? (Метаданные фиксации не указывают, кто подталкивает. Что вам нужно, так это аутентификация вокруг фактического соединения и видимость аутентификации в вашем скрипте, чтобы скрипт мог реализовать ваши правила авторизации. Это очень быстро разбивается на «это зависит от вашей среды» ".)
Поскольку на самом деле невозможно полностью охватить каждый сценарий для выполнения этого вручную, мы надеемся, что либо вы найдете готовое решение, которое вам понравится, либо вам будет достаточно перечисленного выше, чтобы получить Вы указали в правильном направлении, чтобы сделать это вручную.