繁体   English   中英

Git服务器端挂钩-提交者名称

[英]Git server-side hook - committer name

在预先接收(ruby)服务器端挂钩文件中且具有Gitlab 7.7.2的Git服务器1.8.1.4上,我可以通过SSH通过SSH推送到服务器来从服务器数据库中获取用户名:

$GIT_AUTHOR_NAME['name']

我想用提交者的名字来检查这个用户的名字。 我尝试使用变量$ GIT_COMMITTER_NAME,但是得到了'nil'值。

如何获得客户端命令推送之前设置的提交者名称?

git config user.name "Joe Doe"

电子邮件地址('user.email')的相同问题。

谢谢!

我的解决方案:

#!/usr/bin/env ruby
# pre-receive

refs = ARGF.read
key_id  = ENV['GL_ID']
...
# get the user
user = GitlabNet.new.discover(key_id)
author_name = user['name']

committer_name = `git show --pretty=oneline --pretty=format:%an #{newrev} | head -n1`.strip

if author_name != committer_name
    print "Name of the committer must be '" + author_name + "' but found '" + committer_name + "'.\n"
    exit 1
end
...

newrev是当前提交的SHA,该值取自refs

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM