Ответ 1
Это легко сделать с Git с помощью pre-receive
hook. Конечно, это требует, чтобы вы на самом деле смогли установить перехватчики, и по очевидным причинам GitHub не позволяет загружать произвольные исполняемые файлы для запуска на своих серверах: -)
В общем, рабочий процесс с Git или действительно любая система управления распределенной версией - это то, что вы не разрешаете другим людям входить в ваш репозиторий. Вместо этого вы вытаскиваете их. Это требует гораздо более низкого уровня доверия. Итак, это будет обходным путем №1: не позволяйте им толкать, иметь вилку, а затем тянуть с них. Таким образом, вы можете контролировать, что входит в ваш репозиторий.
Другим обходным решением будет создание собственного промежуточного репозитория на собственном сервере, где вы можете установить свои собственные крюки Git. Вы можете настроить крючок pre-receive
, который отказывает нажатию, если он не является быстрым и post-receive
, который автоматически пересылает все нажатия на GitHub. Конечно, это означает, что вы потеряете многие преимущества использования GitHub в первую очередь.
В качестве третьего решения можно использовать несколько репозиториев. Это сочетание двух других подходов: у вас есть один репозиторий, к которому ваши соавторы могут нажать, и другой, к которому только вы имеете доступ, который вы втягиваете из первого репозитория.
Во всяком случае, вы должны подать запрос на функцию с помощью GitHub (особенно, если вы являетесь платежным клиентом!), поскольку это кажется полезной функцией.