1

コミットが完了したときに実行される次のポストコミット フックがあります。

PostCommit.bat
@ECHO OFF
set local 
set REPOS=%1
set REV=%2
set TXN_NAME=%3
SET ThisScriptsDirectory=%~dp0
SET PowerShellScriptPath=%ThisScriptsDirectory%emailer.ps1
PowerShell -NoProfile -ExecutionPolicy Bypass -Command "& '%PowerShellScriptPath%' 'REPOS' 'REV' TXN_NAME";

以下の PowerShell スクリプトを使用して、リポジトリ リンク、リビジョン番号、およびトランザクションを電子メールで送信しようとしています。

emailer.ps1
function mailer($Repos,$Rev,$TXN_NAME)
{
$smtp = new-object Net.Mail.SmtpClient("webmail.companyname.com")
$objMailMessage = New-Object System.Net.Mail.MailMessage
$objMailMessage.From = "Automation@companyname.com"
$i = 0 
Get-Content "X:\Department\Con\Hyd\Technical\TestPool\recepients.txt" | foreach {
$emailid = $_.split(";")
$emailid | foreach{
    $objMailMessage.To.Add($emailid[$i])
    $i++
}
}
$objMailMessage.Subject = "A commit operation has been performed! "
$objMailMessage.Body = "A commit operation has been performed at repository "+$Repos+" and the latest revision is "+$Rev
$smtp.send($objMailMessage)
}

変更をコミットすると、エラー メッセージは表示されず、電子メールも受信されません。コマンドライン経由でpowershellスクリプトを呼び出すときに問題が発生すると思います。また、誰かがメールに著者名を追加する方法を提案できれば素晴らしいことです.

前もって感謝します。

4

1 に答える 1

1

ファイルに関数mailerがありemailer.ps1ます。

mailerただし、スクリプト内のどこでも関数を呼び出していません。それが原因で、メールが届かない可能性があります。

したがって、スクリプトを変更する必要がありますemailer.ps1

例えば:

param(
        [Parameter(Position=0, Mandatory=$true)]
        [string] $Repos,
        [Parameter(Position=1, Mandatory=$true)]
        [string]$Rev,
        [Parameter(Position=2, Mandatory=$true)]
        [string]$TXN_NAME
    )
$smtp = new-object Net.Mail.SmtpClient("webmail.factset.com")
$objMailMessage = New-Object System.Net.Mail.MailMessage
$objMailMessage.From = "FFTO-Automation@factset.com"
$i = 0 
Get-Content "H:\Department\Content\Hyderabad\FF_Technical\TestPool\recepients.txt" | foreach {
    $emailid = $_.split(";")
    $emailid | foreach{
        $objMailMessage.To.Add($emailid[$i])
        $i++
    }
}
$objMailMessage.Subject = "A commit operation has been performed! "
$objMailMessage.Body = "A commit operation has been performed at repository "+$Repos+" and the latest revision is "+$Rev
$smtp.send($objMailMessage)

私は亀のsvnにあまり慣れていません。そのため、著者の名前を取得することについてはあまり知りません。

于 2014-05-03T05:55:43.697 に答える