Может ли Gitosis обеспечить правильное имя пользователя / адрес электронной почты? - PullRequest
3 голосов
/ 17 апреля 2010

Gitosis может аутентифицировать пользователей на основе пары открытого и закрытого ключей. Он может выяснить, какой пользователь в настоящее время совершает. Однако имя пользователя и адрес электронной почты взяты из конфигурации Git клиента («git config user.name» и т. Д.), Для которой можно установить произвольные значения. Есть ли способ связать имена пользователей и электронные письма с их открытыми ключами, а затем заставить Gitosis использовать эти имена и электронные письма в качестве имени и электронного адреса коммиттера?

Мне все равно, буду ли я использовать Gitosis или WebDAV или какую-либо другую альтернативу для обмена репозиторием. Мне просто кажется, что ни один из доступных методов не поддерживает это принудительное использование какого-либо «правильного» имени пользователя и адреса электронной почты. Если есть какая-то альтернатива, пожалуйста, расскажите мне об этом.

Ответы [ 2 ]

2 голосов
/ 13 апреля 2013

Обратите внимание, что у вас не может быть сервера, чтобы фактически установить (перезаписать) автора или коммиттера, потому что для этого он должен изменить полностью сформированные объекты коммита (и все коммиты на его основе).

И это изменит хэш / идентификатор коммита. Таким образом, вы можете только отклонить их. (Технически, конечно, вы можете создать новый коммит, но это вызовет всевозможные проблемы).

1 голос
/ 18 апреля 2010

Пример update-paranoid ловушка в источниках Git выполняет следующую проверку:

Для всех новых объектов коммитов или тэгов строка коммиттера (или тэггера) внутри объекта должен точно соответствовать один из user.committer значения перечислены в файле acl.

Полагаю, можно настроить Gitosis или Gitolite для выполнения аналогичной проверки, или вы можете написать свой собственный upate или pre-receive hook. Во всех этих случаях пуш должен выполняться с помощью «умного» транспорта, который может использовать Git. Это означает проталкивание через SSH или через «умный» HTTP ( git-http-backend ); исключает передачу через WebDAV («тупой» HTTP (S)).

Обратите внимание, что не имеет смысла проверять авторство коммитов, так как они могут быть получены из патчей, отправленных по электронной почте (это коммитер должен проверять их перед применением), или из-за выбора вишни или перебазирования.

...