Подтвердить что ты не робот

Может ли Gitlab/Gitolite ввести правильное имя пользователя/адрес электронной почты?

Экспериментируя с git, я установил Gitlab для самостоятельного репозитория, и он отлично выглядит.

Единственное, что меня беспокоит, - это то, что, как представляется, любой может совершать коммиты как кто-либо еще (т.е. spoof a commit).

то есть: у меня есть настройка моих пользователей в Gitlab с доступом к открытым ключам

  • User1
  • Пользователь2

Теперь только те пользователи могут нажимать - используя свои частные ключи SSH - но, похоже, нет ничего, что остановило бы User2, чтобы настроить их gitconfig для фиксации под именем User1 и нажатием что?

История в gitlab и git -show показывает коммиттер как любой текст User1 gitconfig. Я хочу, чтобы Gitlab штамповал имя пользователя, связанное с нажатием клавиши ssh в историю, поэтому я знаю, чей ключ ssh использовался для нажатия.

Сценарий - это репо, которое будет использоваться в командной среде, и просто разумно не допускать поддельных коммитов.

Я прочитал и понял, что обычно можно изменить рабочий процесс, чтобы иметь благословенный репозиторий, и есть только доверенные коммиттеры, которые могут это сделать, но на этом этапе, изучая git, я хочу остаться в более централизованный/SVN-тип.

Можно ли использовать крючки?

Существует тот же вопрос который отвечает за гитоз, но даже это означает, что только принудительный коммиттер использует только тот набор пользователей, который не останавливает подмену User1 как User2 - насколько я могу судить.

PS: Может быть, я задаю неправильный вопрос - есть ли способ в gitlab обнаружить, какой ключ ssh (и, следовательно, настоящий пользователь) использовался для перевода кода в репо? Это не похоже на то, что я могу найти.

4b9b3361

Ответ 1

Обновление 2015

Как упоминается в этом потоке, GitLab Enterprise имеет среди своих крючков git, связанных с проектом, способ управления электронными сообщениями:

Перейдите к настройкам проекта → git и проверьте проверку электронной почты автора.

Любое электронное письмо, которое не соответствует известному пользователю, отклоняется.


Оригинальный ответ (2012)

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

Когда вы нажимаете, вы аутентифицированы (либо на основе имени открытого ключа, зарегистрированного Gitolite, либо другим способом, как соединение LDAP).
Вы можете добавить крюк pre-receive, который будет проверять все новые коммиты, и искать хотя бы один, совершенный по правильному имени (то есть идентификатор пользователя, который нажимает указанные коммиты).
См. Этот pre-receive hook в качестве примера.