19 Kasım 2012 Pazartesi

svnmailer ile her commit sonrası mail gönderme işlemi

 svnmailer programı her bir svn commit sonrasında belirlenen e-postalara otomatik olarak mail gönderen bir yazılımdır.

Web sitesi: http://opensource.perlig.de/svnmailer/
RPM paketleri URL: http://pkgs.repoforge.org/svnmailer 

Çalışma mantığı: Her bir svn projesinde(burada svnprojem1) conf  ve hook dizinleri bulunmaktadır.
hooks dizininde post-commit dosyası sayesinde her bir commit işleminden sonra istenilen komutlar çalıştırılır. post-commit dosyasınının içerisine svn-mailer komutu tanımlanır.
svn-mailer için conf dizininde svn-mailer.conf isimli bir dosya oluşturulur. svn-mailer bu dosyadaki değerlere göre (from,to,subject vs) ilgili yerlere e-posta gönderir.

Kurulum: CentOS 5 üzerine kurulum için aşağıdaki dosya çekilir.

# wget http://pkgs.repoforge.org/svnmailer/svnmailer-1.0.8-2.el5.rf.noarch.rpm
# rpm -ivh svnmailer-1.0.8-2.el5.rf.noarch.rpm

[root@hq svnprojem1]# ls
conf  dav  db  format  hooks  locks  README.txt


hooks dizininde post-commit dosyası yoksa oluşturulur ve izinleri 755 yapılır. Bu dosyanın içeriği aşağıdaki gibidir.

# cat hooks/post-commit
#!/bin/bash

REPOS="$1"
REV="$2"

/usr/bin/svn-mailer --commit \
    --config ${REPOS}/conf/svn-mailer.conf \
    --repository "${REPOS}" \
    --revision "${REV}" &

#


# cat conf/svn-mailer.conf
[general]
#config_charset = iso-8859-1 

sendmail_command = /usr/sbin/sendmail


[defaults]
from_addr = svncommit@mydomain.com
to_addr = arge@mydomain.com
browser_base_url = websvn http://192.168.0.100/websvn/listing.php?repname=svnprojem1
mail_type = multipart type=text/x-diff
commit_subject_prefix = SVN PROJEM1 ::
generate_diffs =  add copy modify propchange



sendmail_command: Sistemde mail göndermek için kullanılan sendmail komutunun yolunu belirtir.
from_addr: mailin kimden geliyormuş gibi gönderileceğini belirtir.
to_addr: mailin  alıcısını belirtir.
browser_base_url: Eğer websvn(http://websvn.tigris.org/)  kurulu ise kullanıcıya atılan mailin gövdesine link ekler.
commit_subject_prefix: Mailin subject kısmına eklenecek prefix değerini belirtir.
generate_diffs: Hangi operasyonlar sonrasında yapılan değişikliğin diff olarak gönderileceğini belirtir. Buradaki yapılandırmaya göre ekleme,kopyalama,değişiklik ve dosya tanımlardında bir değişiklik(izin,sahiplik vs) durumunda maile bu farklar eklenti olarak iliştiririlir. Çok büyük değişiklik durumunda e-posta boyutu artacağı için bu değerin none yapılması tavsiye edilir.


Örnek mail aşağıdaki gibidir:

From: svncommit@surgate.com
To: arge@surgate.com
Subject: SVN SVNPROJEM1:: r2566 - /trunk/ChangeLog
 
Author: ismail.yenigul
Date: Mon Nov  5 15:38:03 2012
New Revision: 2566

URL: http://192.168.0.100/websvn/listing.php?sc=1&rev=2566&repname=svnprojem1
Log:
New version

Modified:
    trunk/ChangeLog
 

Modified: trunk/ChangeLog
URL: http://192.168.0.100/websvn/diff.php?path=/trunk/ChangeLog&rev=2566&repname=svnprojem1
==============================================================================
--- trunk/ChangeLog (original)
+++ trunk/ChangeLog Mon Nov 19 17:06:31 2012
@@ -1,5 +1,5 @@
 2012-19-11 16:59
- * New version of software
+ * Version 1.2

Hiç yorum yok:

Yorum Gönder