GIT и GitHub. Как узнать, кто поместил коммит в репозиторий? - PullRequest
8 голосов
/ 21 марта 2012

На GitHub:

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

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

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

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

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

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

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

1 Ответ

3 голосов
/ 21 марта 2012

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

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

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

...