воскресенье, 23 июня 2013 г.

Настройка post-commit в Subversion для отправки почтовых сообщений в CentOS 6.4

Я надеюсь, что вы уже настроили SVN репозиторий с поддержкой WebDAV... Если нет, то самое время сделать это сейчас.

0. Подразумеваю, что настраивать будем для репозитория javacation, который находится в каталоге /var/www/svn/javacation

1. Забираем уже готовые скрипты, которые любезно предоставлены Apache Foundation
cd /var/www/svn/javacation
sudo svn co http://svn.apache.org/repos/asf/subversion/trunk/tools/hook-scripts/

2. Скопируем файл конфигурации в каталог conf нашего репозитория (только для того, чтобы файлы конфигурации находились в одном месте, на самом деле его фактическое расположение может быть другое и даже более того, если вы используете один и тотже файл конфигурации для разных проектов, то возможно лучшим местом для этого файла окажется путь /etc/subversion)
sudo cp hook-scripts/mailer/mailer.conf.example ./conf/mailer.conf

3. Отредактируйте файл конфигурации mailer.conf

Снимите комментарий с параметра mail_command, в случае, если у вас настроен sendmail

mail_command = /usr/sbin/sendmail

или корректно настройте SMTP (smtp_hostname, smtp_username, smtp_password), в случае, если локальный MTA не настроен

Отредактируйте поля from_addr, to_addr и commit_subject_prefix:

from_addr = svn@javacation.ru
to_addr = ags@nospam.ru
commit_subject_prefix = [svn-%(repos_basename)s]

4. На этом этапе вы можете протестировать работоспособность скрипта post-commit например такой командой (где 10 это номер ревизии):

/var/www/svn/javacation/hook-scripts/mailer/mailer.py \
    commit "/var/www/svn/javacation/" "10" /var/www/svn/javacation/conf/mailer.conf



5. Если вы используете selinux не забудьте выдать необходимые разрешения для выполнения скриптов:

sudo /usr/bin/chcon -R -t  httpd_sys_script_exec_t /var/www/svn/javacation/hooks/post-commit
sudo /usr/bin/chcon -R -t  httpd_sys_script_exec_t /var/www/svn/javacation/hook-scripts/mailer/mailer.py

6. Проверяйте, все должно работать. Если вы правильно все настроили, то после коммита в проект вам (точнее тем, кто перечислен в параметре to_addr конфигурационного файла) придет примерно вот такое письмо:

From: svn@javacation.ru
To: ags@nospam.ru
Subject: [svn-javacation] r18 - trunk/src/main/java

Author: ags
Date: Sun Jun 23 14:29:22 2013
New Revision: 18

Log:
Внесены изменения в проект

Added:
   trunk/src/main/java/B.java
Modified:
   trunk/src/main/java/A.java

Modified: trunk/src/main/java/A.java
==============================================================================
--- trunk/src/main/java/A.java Sun Jun 23 14:27:39 2013 (r17)
+++ trunk/src/main/java/A.java Sun Jun 23 14:29:22 2013 (r18)
@@ -1,7 +1,8 @@
+/**
+ * Добавлен комментарий. Модифицирован файл
+ * @author ags
+ *
+ */
 public class A {
-
 }
-//
-//
-

Added: trunk/src/main/java/B.java
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ trunk/src/main/java/B.java Sun Jun 23 14:29:22 2013 (r18)
@@ -0,0 +1,9 @@
+
+/**
+ * Новый класс...
+ * @author ags
+ *
+ */
+public class B extends A {
+
+}

Комментариев нет:

Отправить комментарий