Как написать git-хук, чтобы ограничить запись в ветку?

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

Я почти уверен, что это можно легко сделать с помощью хука фиксации git, но я не знаю python, и это кажется такой общей проблемой, что кто-то, должно быть, уже написал ее. Вы не знаете, где я мог найти такой сценарий? Или, если у вас есть один завалялся, пожалуйста, вставьте его сюда, для ленивых людей, таких как я.


person Robert Kovačević    schedule 06.11.2010    source источник


Ответы (2)


Я думаю, что можно было бы использовать такой скрипт, но это неподходящее место для управления правами, это должно быть сделано на стороне сервера git. Например, в gitosis вы выполняете эту настройку в репозитории gitosis-admin в файле gitosis.conf.

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

person mpapis    schedule 06.11.2010
comment
Правильный. Хук перед фиксацией не приносит никакой пользы — репозиторий каждого разработчика свой. Вы не можете заставить их делать то, чего они не хотят. Однако центральный сервер может быть вашим для применения политики. И да, программное обеспечение для управления сервером git (gitosis, gitolite) может сделать это за вас. - person Cascabel; 06.11.2010
comment
Конечно, я имел в виду хук фиксации на сервере центрального репозитория, а не на локальных машинах. Но гитолит, кажется, это то, что я искал, так что спасибо. Для будущих посетителей: progit.org/book/ch4-8.html - person Robert Kovačević; 07.11.2010

Для вашего требования: "если код пройдет проверку, рецензент объединит его с основной веткой".
Вы можете попробовать Gerrit Code Review: http://code.google.com/p/gerrit/

person Karthik    schedule 23.10.2012