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 предоставляет такую информацию. Если это действительно было нарушение безопасности, по крайней мере, стоило бы спросить их, какие журналы у них есть.