添加提交作者作为钩子/帖子的发件人

时间:2013-03-18 21:36:46

标签: git bash githooks

当有人提交时,我希望将作者设置为发件人。我在post-receive

中缩小了这段代码
send_mail()
{
        if [ -n "$envelopesender" ]; then
                /usr/sbin/sendmail -t -f "$envelopesender"
        else
                /usr/sbin/sendmail -t
        fi
}

我想把它添加到其他条件中,我想用

之类的东西
git log <SHA-1> --pretty=format:"%an<%ae>" -1

我想我会使用$newrev变量作为sha。

我的并不那么新鲜。我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:1)

你应该能够做到这一点我认为:

send_mail()
{
    if [ -n "$envelopesender" ]; then
        /usr/sbin/sendmail -t -f "$envelopesender"
    else
        author="$(git --no-pager show -s --pretty="%an" $newrev)"
        email="$(git --no-pager show -s --pretty="%ae" $newrev | sed 's/ *$//g')"
        if [ -n "$email" ]; then
            /usr/sbin/sendmail -t -F "$author" -f "$email"
        fi
    fi
}

git show

  • git show看起来像是一个更合适的命令来提取有关提交的信息,而不是git log。 (你可以使用更合适的东西;))
  • --no-pager确保不会打开寻呼机程序
  • -s会跳过提交中的文件和差异列表

sendmail

  • 使用-F
  • 设置发件人姓名
  • 使用-f
  • 设置发件人电子邮件