Comment configurer le hook Git approprié pour envoyer un courrier électronique de synthèse chaque fois qu'un ensemble de modifications est envoyé au référentiel en amont?
Une autre façon plus moderne de faire cela est avec git-multimail , comme suggéré par Accords ci-dessous.
Voici comment vous l'avez fait en 2009.
Vous pouvez ajouter quelque chose comme this à votre hook post-réception dans $ GITDIR/hooks, ou utiliser le script situé dans le répertoire contrib de la source (Disponible ici)
Voici la solution la plus simple que j'ai trouvée:
1) Connectez-vous à votre compte gitHub sur github.com
2) Dans l'onglet principal, cliquez sur Paramètres
3) Dans la navigation principale, choisissez Crochets de service
4) Parmi les crochets disponibles, choisissez Email
5) Remplissez votre adresse email dans le champ Adresse
6) Cochez la case Envoyer de l'auteur
7) Cochez la case active
8) Cliquez sur Paramètres de mise à jour
Facultatif: Vous pouvez cliquer sur Tester le crochet pour le tester, vérifiez dans votre boîte de réception que vous devriez recevoir un courrier électronique.
Il y a aussi des images faites selon le processus:
Et maintenant, pour la grande finale , j'ai la réponse qui est testée et approuvée à mes côtés.
Comment envoyer un courrier électronique à TOUS les membres de l'équipe de développement, lorsque Crochets de service-> Email de gitHub n'autorise que 2 destinataires au maximum} .
La réponse est une combinaison de Service Hook-> Email @ GitHub && Google groupes
C’est ainsi que j’envoie une notification par courrier électronique aux utilisateurs chaque fois que l’une d’entre elles est envoyée au référentiel.
Configuration de la notification par email Git Commit
Il est basé sur les scripts d'Andy Parkins. Je le change en SMTP utilisé pour envoyer un email. Bien sûr, le SMTP de Gmail peut également être utilisé.
Robin Sommergit-notifier génère également de très beaux résumés dans le format suivant:
Subject: [git/git-notifier] master: Adding www target to Makefile. (7dc1f95)
Repository : ssh://<removed>/git-notifier
On branch : master
>---------------------------------------------------------------
commit 7dc1f95c97275618d5bde1aaf6760cd7ff6a6ef7
Author: Robin Sommer <[email protected]>
Date: Sun Dec 19 20:21:38 2010 -0800
Adding www target to Makefile.
>---------------------------------------------------------------
Makefile | 6 ++++++
1 files changed, 6 insertions(+), 0 deletions(-)
diff --git a/Makefile b/Makefile
index e184c66..9c9951b 100644
--- a/Makefile
+++ b/Makefile
@@ -5,6 +5,8 @@ VERSION = 0.1
DISTFILES = git-notifier README COPYING
+WWW = $(HOME)/www/git-notifier
+
all:
dist:
@@ -13,3 +15,7 @@ dist:
cp $(DISTFILES) git-notifier-$(VERSION)
tar czvf git-notifier-$(VERSION).tgz git-notifier-$(VERSION)
rm -rf git-notifier-$(VERSION)
+
+www: dist
+ rst2html.py README >$(WWW)/index.html
+ cp git-notifier-$(VERSION).tgz $(WWW)
la mise en place de hooks.showrev ne fait aucune différence notable? : - /
Échantillon conf:
# less users/cj.git/config
[core]
repositoryformatversion = 0
filemode = true
bare = true
[hooks]
mailinglist = [email protected]
showrev = "git show -C %s; echo"
emailprefix = "[sabu gitosis server] "
J'ai réussi à le faire, mais j'ai dû choisir d'utiliser le script contrib, et non l'autre script (Perl) d'Alexandre Julliard. Cela semble plus sophistiqué et plus configurable, mais avec postfix, je n’avais aucune commande mail qui accepterait "-s"? Voici mon chemin:
http://pastie.textmate.org/69532
Ce serait bien de montrer quelques informations supplémentaires, comme le correctif complet, le lien gitweb et le graphique de validation, mais ce script ne peut faire que le premier - si je joue avec des hooks, semble-t-il.
Quoi qu'il en soit, bravo et merci pour les suggestions!
Ce n’est pas vraiment une réponse complète car il est spécifique à Github, mais si vous utilisez Github, il est extrêmement facile de configurer des "crochets de service".
Pour chaque référentiel que vous souhaitez surveiller, entrez Paramètres/Crochets de service.
Il existe de nombreuses intégrations disponibles, telles que Trac, Twitter, Amazon SNS, Jira, Asana, Bugzilla, FogBugz, IRC, Jabber, Pivotal Tracker, Trello et Email ....
Il suffit de sélectionner un email et de l’alimenter avec une adresse email de groupe.
Nous utilisons les notifications par courrier électronique pour synchroniser nos développeurs.
Si vous utilisez GitLab, vous pouvez utiliser le service de projet 'Email-on-Push' à cet effet. Vous le trouverez sous Services dans les paramètres du projet.
Vous pouvez utiliser le pré-commit:
#!/usr/bin/env Ruby
require 'mail'
Mail.defaults do
delivery_method :smtp,
address: 'smtp.gmail.com',
port: 587,
user_name: '...',
password: '...',
authentication: 'plain',
enable_starttls_auto: true
end
changes=`git diff --cached --unified=0 Gemfile Bowerfile`
unless changes.empty?
Mail.deliver do
from '...'
to '...'
subject '[PROJECT] Plese confirm team can use libraries'
body changes
end
end
Installer:
cd project
cp pre-commit .git/hooks
chmod +x .git/hooks/pre-commit
gem install mail
Tester:
echo "# some change" >> Gemfile && git commit -m 'some change' Gemfile
Si vous utilisez Windows, scm-notifier serait utile.