Я хочу запретить пользователям нажимать на мой репозиторий, если их имена пользователей установлены неправильно.На практике я хотел бы это:
foreach commit in pushed_stuff:
if not commit.username in some_list:
reject push
Хук pre-receive
кажется подходящим, но как мне извлечь имя пользователя из каждого полученного объекта фиксации?update
, кажется, получает имена объектов, но, насколько я понимаю, это происходит, когда он уже находится в моем хранилище (непосредственно перед перемещением ссылки).
РЕДАКТИРОВАТЬ: Это не означает, что какой-то механизм безопасности только дляПозвольте определенным людям давить на меня.Я доверяю всем, но иногда люди путаются и забывают настроить свои .gitconfig
.
ОБНОВЛЕНИЕ: у меня была проблема с предложением VonC.При использовании предварительного получения, если кто-то выдвигает новую ветку, <old-value>
равен «000000000».Так что, если он сделал несколько коммитов в эту новую ветку и попытался протолкнуть ее, выполнив git rev-list ... $ new дает мне только один коммит.Но, возможно, другие коммиты до того, как у него было плохое имя пользователя, я хочу отклонить.Я не мог найти способ сказать git дать мне все новые коммиты.Когда ветвь уже существует, выполните git rev-list ... $ old .. $ new сделает эту работу.