Pouvez-vous partager avec moi ce script?Quelqu'un at-il un script hook de notification de validation qui enverra un email lors de la validation des codes?
Répondre
La valeur par défaut est appelée commit-email.pl et est incluse lorsque vous installez Subversion. Mais here est un en rubis:
#!/usr/bin/ruby -w
# A Subversion post-commit hook. Edit the configurable stuff below, and
# copy into your repository's hooks/ directory as "post-commit". Don't
# forget to "chmod a+x post-commit".
# ------------------------------------------------------------------------
# You *will* need to change these.
address="[email protected]_DOMAIN.com"
sendmail="/usr/sbin/sendmail"
svnlook="/usr/bin/svnlook"
# ------------------------------------------------------------------------
require 'cgi'
# Subversion's commit-email.pl suggests that svnlook might create files.
Dir.chdir("/tmp")
# What revision in what repository?
repo = ARGV.shift()
rev = ARGV.shift()
# Get the overview information.
info=`#{svnlook} info #{repo} -r #{rev}`
info_lines=info.split("\n")
author=info_lines.shift
date=info_lines.shift
info_lines.shift
comment=info_lines
# Output the overview.
body = "<p><b>#{author}</b> #{date}</p>"
body << "<p>"
comment.each { |line| body << "#{CGI.escapeHTML(line)}<br/>\n" }
body << "</p>"
body << "<hr noshade>"
# Get and output the patch.
changes=`#{svnlook} diff #{repo} -r #{rev}`
body << "<pre>"
changes.each do |top_line|
top_line.split("\n").each do |line|
color = case
when line =~ /^Modified:/|| line =~ /^=+$/ || line =~ /^@@ /: "gray"
when line =~ /^-/: "red"
when line =~ /^\+/: "blue"
else "black"
end
body << %Q{<font style="color:#{color}">#{CGI.escapeHTML(line)}</font><br/>\n}
end
end
body << "</pre>"
# Write the header.
header = ""
header << "To: #{address}\n"
header << "From: #{address}\n"
header << "Subject: [SVN] #{repo} revision #{rev}\n"
header << "Reply-to: #{address}\n"
header << "MIME-Version: 1.0\n"
header << "Content-Type: text/html; charset=UTF-8\n"
header << "Content-Transfer-Encoding: 8bit\n"
header << "\n"
# Send the mail.
begin
fd = open("|#{sendmail} #{address}", "w")
fd.print(header)
fd.print(body)
rescue
exit(1)
end
fd.close
# We're done.
exit(0)
Dans le répertoire des crochets dans votre dépôt svn, vous trouverez un script de post-commit.tmpl. Copiez-le pour qu'il soit nommé "post-commit" et modifiez-le en conséquence. Habituellement, il va exécuter le script commit-email.pl fourni avec subversion; cela exigera également d'éditer pour définir les choses comme vous voulez.
Pour une raison quelconque, le script ruby et le script de crochet par défaut ne fonctionnaient pas pour moi. Cela peut être dû à quelques bizarreries avec notre serveur de messagerie, mais je vais inclure la partie importante ici de toute façon:
#!/bin/sh
REPOS="$1"
REV="$2"
svnnotify --repos-path "$REPOS" --revision "$REV" --with-diff --to [email protected] --smtp mailserver.domain --from [email protected] -VVVVVVVVV -P "[repository_name]"
La partie -VVVVVVV affiche des messages très verbeux si vous voulez tester la commande en dehors du script. Il devrait être supprimé dans le script actuel.
Bien sûr, pour que cela fonctionne, vous devez installer svnnotify. Vous pouvez l'installer en installant d'abord cpan, qui devrait venir avec perl. Ensuite, vous devez lancer cpan et installer la bibliothèque SVN :: Notify.
$ cpan
cpan> install SVN::Notify
Notez que le « $ » et les « CPAN> » parties sont simplement invites, vous n'avez pas besoin de les taper.
Cette solution était beaucoup plus attrayante pour moi, car elle donnait un message d'erreur détaillé qui contribuait à résoudre ces problèmes avec le serveur de messagerie que j'ai mentionné. Nous avons également plusieurs référentiels, donc la copie d'un programme/script entier dans chaque répertoire aurait été redondante. Votre kilométrage peut varier.
Le texte dans le bloc de code en haut doit être placé dans un fichier texte nommé "post-commit". Ce fichier doit se trouver dans/path/to/svn/repos/repository_name/hooks et être marqué comme exécutable.
#!/bin/ksh
#
# This is a custom post-commit for sending email
# when an svn repo is changed.
#
rcpts="[email protected], [email protected]"
repodir=$1
revision=$2
author=`/usr/bin/svnlook author -r $revision $repodir`
date=`/usr/bin/svnlook date -r $revision $repodir`
log=`/usr/bin/svnlook log -r $revision $repodir`
info=`/usr/bin/svnlook changed -r $revision $repodir`
repo=${repodir##*/}
subject="$repo svn updated by $author"
url="https://myserver.bar.edu/svn/$repo"
/usr/bin/mail -s "$subject" "$rcpts"<<EOM
repository: $url
date: $date
username: $author
revision: $revision
comment: $log
$info
EOM
Essayez cette
/usr/bin/svnnotify --revision "$REV" --repos-path "$REPOS" \ --subject-cx --subject-prefix "[Project:commit] " --max-sub-length 128 \ --with-diff --handler Alternative --alt HTML::ColorDiff \ --to '[email protected]' --from '[email protected]' --set-sender
- 1. Validation des adresses email (ASP.NET)
- 2. jQuery validation multi-email/formage
- 3. désactiver la validation pour un bouton spécifique lors de l'utilisation du plugin jQuery: Validation
- 4. Exclure des éléments lors de la validation d'un formulaire Zend
- 5. Comment puis-je obtenir un message de validation d'un hook post-commit de bzr?
- 6. Validation de schéma, comment afficher des messages de validation conviviaux?
- 7. Bash Script - validation logname
- 8. Validation des variables dans le script shell
- 9. Pourcentage de validation de validation utilisateur
- 10. Validation d'une expression de validation
- 11. Email Notification Service
- 12. Plugin de validation jQuery: Comment appeler une fonction lors de la validation d'un champ
- 13. KornShell - Validation de la date dans le script
- 14. Validation des données de classe
- 15. Propriétés de dépendance de validation Silverlight
- 16. erreur Cayenne null pointeur lors de la tentative de validation
- 17. Comportement des contrôles de validation ASP.Net
- 18. Lors de la publication, je souhaite ajouter un message au résumé de validation
- 19. Avec JQuery Validation Plugin, je souhaite changer la méthode de validation à distance
- 20. jQuery Validation Envoi sans validation dans Firefox
- 21. Subversion: comment supprimer une propriété lors de la validation
- 22. Validation internationale des identifiants de ressources
- 23. Ajax.BeginForm - Affichage des erreurs de validation
- 24. jquery validation de la dépendance
- 25. tutoriels de scripts hook?
- 26. environnement Rails de validation spécifique
- 27. Http Exception générée lors de la validation ViewState
- 28. Validation des formulaires à l'aide de XAJAX
- 29. preg pour la validation de l'URL
- 30. rails jquery validation de la forme ajax
Je devais aussi faire 'CPAN> install Net :: SMTP_auth' après avoir obtenu "Impossible de localiser Net/SMTP_auth.pm dans @INC" – philfreo
Notez également cela ne fonctionnera pas par défaut pour envoyer à Gmail. Voir http://cpanforum.com/posts/10541 et 'cpan> install Net :: SMTP :: SSL' – philfreo