在GitHub上:
Eve在她的某个热门项目的fork中写了一些代码,提交为"Eve" <eve@example.com>
,并向上游发送一个pull请求。
Alice没有注意到Eve的代码包含她所处理的热门项目的后门,认为代码很棒,并且合并了pull请求。
后来,每个人都被拥有。
爱丽丝的老板鲍勃想解雇那些登陆代码的人。他做了一个git log --full
,看到了:
commit deadbeef
Author: Eve <eve@example.com>
Commit: Eve <eve@example.com>
git log --fuller
没有帮助,Eve没有对存储库的直接推送权。
答案 0 :(得分:3)
通常使用git,您可以使用git signoff(请参阅What is the Sign Off feature in Git for?)然后添加更新挂钩以拒绝任何没有签收的推送。但是,GitHub似乎一般不允许自定义挂钩,但您可以添加一个post-receive-hook来记录所有未来的推送事件:
http://help.github.com/post-receive-hooks/
如果这是一个已经发生的事件,可能很难(或不可能?)追踪。 您可以查看git reflog和ssh日志,但我不确定GitHub是否提供此类信息。如果它确实是一个安全漏洞,那么至少值得问他们有什么日志。