2016-07-07 71 views
0

这里是我的测试CGI脚本:的git-HTTP-后端 - 覆盖提交作者姓名

Thu Jul 7 11:07:28 CEST 2016 - REQUEST_METHOD[GET] GIT_COMMITTER_NAME[foo] GIT_COMMITTER_EMAIL[[email protected]] REMOTE_USER[auth_basic_user] GIT_AUTHOR_NAME[bar] GIT_AUTHOR_EMAIL[[email protected]] 
Thu Jul 7 11:07:28 CEST 2016 - REQUEST_METHOD[POST] GIT_COMMITTER_NAME[foo] GIT_COMMITTER_EMAIL[[email protected]] REMOTE_USER[auth_basic_user] GIT_AUTHOR_NAME[bar] GIT_AUTHOR_EMAIL[[email protected]] 

=>看来:

#!/bin/bash 

echo "$(date) - REQUEST_METHOD[$REQUEST_METHOD] \ 
GIT_COMMITTER_NAME[$GIT_COMMITTER_NAME] \ 
GIT_COMMITTER_EMAIL[$GIT_COMMITTER_EMAIL] \ 
REMOTE_USER[$REMOTE_USER] \ 
GIT_AUTHOR_NAME[$GIT_AUTHOR_NAME] \ 
GIT_AUTHOR_EMAIL[$GIT_AUTHOR_EMAIL]" >> /tmp/git_cgi_test.log 

/usr/lib/git-core/git-http-backend 

“混帐推” 在/tmp/git_cgi_test.log输出web服务器环境变量设置并在CGI脚本中可见。

“混帐日志” 上裸露的git仓库:

commit 688a98573c5a7559d0fdfb7ff823add3ba0e3a17 
Author: remote_os_user <[email protected]_os_hostname> 
Date: Thu Jul 7 11:07:22 2016 +0200 

    the commit comment 
... 

=>既不是 “富”,也不是 “酒吧”,也不是 “auth_basic_user”,而是 “remote_os_user” :(

==>什么环境在必须为git-http-backend设置变量以覆盖作者名称在最终的裸git回购?

(我不控制远程贡献者笔记本电脑上的user.name或user.email。我需要覆盖服务器上方)

回答

0

我也想这样,但在中央git存储库上推送时,无法更改提交(不会损坏它们)。请参阅this讨论。

+0

谢谢! 相反,我做了一个[更新挂钩拒绝推送](https://git-scm.com/book/be/v2/Customizing-Git-An-Example-Git-Enforced-Policy),如果至少有一个提交作者与$ REMOTE_USER不匹配。 – user6559818