【Powershell】Gitログの送信

マージ履歴を見ることで進捗を確認したり、他の人が何をしたのか
確認したいことってありますよね。
そこでソース管理をGitでしている場合マージ履歴をメールで送ってくれるバッチを作ってみました。

#Gitログの作成
cd C:\Users\ #ワークスペースのパス
git log --name-only --encoding=sjis > develop_log.csv

if($LastExitCode -eq 0){
    # 宛先メールアドレス
    $to = "メールアドレス"
    # 送信元メールアドレス
    $from = "git@log.com"
    # SMTPサーバー(IP、ホスト名どちらでも)
    $smtp = "メールサーバー"
    #添付ファイルq
    $File='C:\Users\ワークスペースのパス\develop_log.csv'
    # 件名
    $subject = "Gitログの送信"
    # 本文
    [string]$body = @()
    $body += "前日のGitログを送信します。"
    #メール送信    
    Send-MailMessage -To $to -From $from  -Attachments $File -SmtpServer $smtp -Subject $subject -Body $body -Encoding ([System.Text.Encoding]::UTF8)
    echo 送信成功
}

Gitを導入するとGitのコマンドを使用できるので、それを利用して
git logを出力します。

まず、ワークスペースの場所に移動する。
git log を出力。(sjisで出力)

git logを出力し終わらないうちにメールが送信されてしまう
ことがあるため、$LastExitCodeで前の処理が終了したかを判断しています。

このバッチをタスクマネージャーで朝一回起動するようにして
昨日までのマージ履歴を確認するようにしています。