Envoi de mail automatique apres un commit SVN

Tout d’abord, il faut installer les outils de subversion
Exemple sous Debian  :

apt-get install subversion-tools

Il faut ensuite activer le hook (script appelé par certains événements comme un commit) qui permettra d’envoyer notre mail lors de chaque commit.

Rendez-dans le dossier de votre dépôt.

cd /var/svn/mon_depot/hooks

Activer le hook en dupliquant le template

sudo cp post-commit.tmpl post-commit

Le rendre exécutable.

sudo chmod +x post-commit

Enfin voici les ligne à ajouter dans le post-commit pour indiquer l’envoi du mail

# Récupération du nom de dépôt depuis le contexte
REPOS="$1"
# Récupération du numéro de révision depuis le contexte
REV="$2"
# Récupération du nom de l'utilisateur qui a commité 
AUTHOR=$(svnlook author --revision $REV $REPOS)
# On envoie le mail
/usr/share/subversion/hook-scripts/commit-email.pl "$REPOS" "$REV" -s "$AUTHOR |" email1@mondomaine.com, email2@mondomaine.com, liste@mondomaine.com


Pour information, les options de commit-email.pl sont les suivantes

  • -m regex
    Regular expression to match committed path
  • --from email_address
    Addresse email de l’expéditeur. Ecrase l’option -h
  • -h hostname
    Domaine de l’adresse email de l’expéditeur
  • -l logfile
    Ajoute le contenu du mail envoyé au fichier de lof spécifié par logfile
  • -r email_address
    Addresse email de réponse
  • -s subject_prefix
    Chaîne ajoutée en préfixe du sujet
  • --summary
    Affiche la première ligne de log dans le sujet (dans notre cas le message passé lors du commit)
  • --diff y|n
    Si égal a y le diff des fichiers commités est inclus dans le mail. Par défaut : y
  • --stdout
    Affiche en sortie le contenu du mail au format mbox
Cette entrée a été publiée dans Tip, avec comme mot(s)-clef(s) . Vous pouvez la mettre en favoris avec ce permalien.
  • Antoine Kociuba

    Simple à mettre en place et très pratique au quotidien!

    Merci Jordi!

    • jojo

      Content de t’avoir été utile :)