сценарий пост-получения для окон (уведомление по электронной почте)

Я создал голый (центральный) репозиторий на компьютере с Windows. Мои коллеги и я теперь используем этот репозиторий. Я хочу, чтобы git отправлял уведомление по электронной почте всякий раз, когда он обновлялся. Я знаю, что нам нужно написать скрипт в хуке post-receive и настроить свойства mailinglist и emailprefix. Но мне нужен скрипт (в пост-получении), который отправляет почту на машине с Windows.

Примечание. Здесь задается аналогичный вопрос. Но ответ: «Что делать?» не "как это сделать?". Могу ли я git отправить электронное письмо со сценариями после получения электронной почты, если мой репозиторий находится на компьютере с Windows?

Заранее спасибо.


person Karthik Bose    schedule 19.06.2012    source источник


Ответы (1)


Вы можете сделать это примерно так, как описано в комментариях к стандартному сценарию после получения, но за исключением того, что Git для Windows предоставляет msmtp, а не sendmail. Если вы вставите предоставленный скрипт из contrib/hooks в пост-получение script вам просто нужно внести пару изменений. Во-первых, вам нужно будет указать smtp-сервер, поэтому я предлагаю добавить переменную конфигурации sendemail.smtpserver и установить для нее имя вашего сервера. Если вам нужна аутентификация и т. д., найдите для них переменные конфигурации и измените сценарий, чтобы использовать их.

В вставленном сценарии электронной почты замените sendmail на msmtp следующим образом.

send_mail()
{
    if [ -n "$envelopesender" ]; then
        msmtp --host="$smtpserver" -t -f "$envelopesender"
    else
        msmtp --host="$smtpserver" -t
    fi
}

И, наконец, ближе к концу файла находится раздел, который считывает переменную конфигурации git, поэтому добавьте новую строку для чтения значений сервера:

smtpserver=$(git config sendemail.smtpserver)

С этими двумя изменениями сценарий работает нормально для меня, отправляя почту на учетную запись hooks.mailinglist в режиме push.

person patthoyts    schedule 19.06.2012
comment
Здорово!. Это то, что я хочу. Он отлично работает и для меня. Большое Вам спасибо. - person Karthik Bose; 19.06.2012