GIT и GitHub. Как узнать, кто поместил коммит в репозиторий?

На GitHub:

Ева пишет некоторый код в своей ветке какого-то популярного проекта, фиксируя как "Eve" <eve@example.com>и отправляет запрос извлечения в восходящем направлении.

Алиса не замечает, что код Евы содержит бэкдор для популярного проекта, над которым она работает, думает, что код отличный, и объединяет запрос на извлечение.

Позже каждый становится владельцем.

Боб, босс Алисы, хотел бы уволить любого, кто получил код. Он делает git log --fullи видит:

commit deadbeef
Author: Eve <eve@example.com>
Commit: Eve <eve@example.com>

git log --fuller не помогает, и у Евы нет прав на прямую передачу в хранилище.

Боб может копаться в истории запросов на поиск и находить ее таким образом, но это отстой. Есть ли способ выяснить это на местном уровне?

1 ответ

Решение

В общем, с помощью git вы можете использовать git signoff (см. Что такое функция Sign Off в Git?), А затем добавить хук обновления, чтобы отклонить любые нажатия, которые не имеют подписи. Тем не менее, GitHub, похоже, не позволяет настраивать пользовательские хуки в целом, но вы можете добавить пост-получение-хук для регистрации всех будущих push-событий:

http://help.github.com/post-receive-hooks/

Если это было событие, которое уже произошло, может быть трудно (или невозможно?) Отследить. Возможно, вы сможете просмотреть журналы git reflog и ssh, но я не уверен, что GitHub предоставляет такую ​​информацию. Если это действительно было нарушение безопасности, по крайней мере, стоило бы спросить их, какие журналы у них есть.

Другие вопросы по тегам