Я использую Gitosis для управления набором репозиториев. Проблема, с которой я столкнулся, заключается в том, что Gitosis не ведет записи о том, какой пользователь нажал конкретный коммит. Единственная информация, которую я имею, - это поля «Author» и «Committer» в самом коммите, и они могут быть установлены на что-либо с помощью «pusher».
Теперь я понимаю, что один «толчок» может отправить много-много коммитов на сервер Gitosis, и каждый из них был бы создан отдельным разработчиком, поэтому я должен ограничиться, сказав, что меня интересует только Главный коммит на ветке, которая была нажата. Этот коммит (должен!) Был создан человеком, создавшим релиз, поэтому я хочу знать, кто это, чтобы я мог их побить, если возникнут проблемы.
Идея, которую я имею, состоит в том, чтобы использовать ловушку на сервере, чтобы сравнить коммиттер главного коммита с именем пользователя gitosis. Если они оба "john.doe@example.com", то отправитель является коммитером, и отправка разрешена, в противном случае она отклоняется. Это возможно? Какой хук я должен использовать - я думаю, что «обновление» - это то же самое, хотя возможны также предварительный и последующий прием.
Я также подумал об использовании хука post-receive для пометки основного коммита, чтобы он вставлял имя пользователя пушера в аннотированное сообщение тэга. Проблема в том, что кто-то, смотрящий на коммит, не обязательно узнает о теге.
Я открыт для других предложений о том, как это сделать. Основная идея заключается в том, что я хочу знать, какой пользователь Gitosis отправил в определенную ветку.
Если бы я мог выяснить, кто выдвинул тег (или ограничил его как тегера), это было бы еще лучше!
Кевин