Come si configura l'hook Git appropriato per inviare un'e-mail di riepilogo ogni volta che una serie di modifiche viene inviata al repository a monte?
Come si configura l'hook Git appropriato per inviare un'e-mail di riepilogo ogni volta che una serie di modifiche viene inviata al repository a monte?
Risposte:
Un altro modo più moderno per farlo è con git-multimail , come suggerito da Chords di seguito.
Ecco come l'hai fatto nel 2009.
Si potrebbe aggiungere qualcosa di simile a questo al tuo post-ricezione gancio a $ GITDIR / ganci, o utilizzare lo script nella directory contrib della sorgente (disponibile qui)
Ecco la soluzione più semplice che ho trovato:
1) Accedi al tuo account gitHub su github.com
2) Nella scheda principale fare clic su Impostazioni
3) Dalla navigazione principale scegli Service Hooks
4) Da Available Hooks scegli Email
5) Inserisci il tuo indirizzo email nel campo Indirizzo
6) Seleziona la casella di controllo Invia da Autore
7) Seleziona la casella di controllo Attivo
8) Fare clic su Aggiorna impostazioni
Facoltativo: puoi fare clic su Test Hook per il test, controlla la tua casella di posta, dovresti ricevere l'email.
Inoltre ci sono immagini realizzate secondo il processo:
E ora per il gran finale ho al mio fianco la risposta testata e approvata.
Come inviare email a TUTTI i membri del team di sviluppo, quando il servizio Hooks-> Email di gitHub consente solo al massimo 2 destinatari} .
La risposta è una combinazione di Service Hook-> Email @ GitHub e & gruppi Google
Questo è il mio modo di inviare notifiche e-mail agli utenti ogni volta che qualcuno invia un push al repository.
Configurazione della notifica e-mail di Git Commit
È basato sugli script di Andy Parkins. Lo cambio in SMTP usato per inviare e-mail. Ovviamente è possibile utilizzare anche l'SMTP di Gmail.
Il git-notifier di Robin Sommer genera anche dei riassunti molto belli nel seguente formato:
Subject: [git/git-notifier] master: Adding www target to Makefile. (7dc1f95)
Repository : ssh://<removed>/git-notifier
On branch : master
>---------------------------------------------------------------
commit 7dc1f95c97275618d5bde1aaf6760cd7ff6a6ef7
Author: Robin Sommer <robin@icir.org>
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)
l'impostazione di hooks.showrev non fa alcuna differenza distinguibile? : - /
Configurazione di esempio:
# less users/cj.git/config
[core]
repositoryformatversion = 0
filemode = true
bare = true
[hooks]
mailinglist = cj@yoga.ee
showrev = "git show -C %s; echo"
emailprefix = "[sabu gitosis server] "
Sono riuscito a farlo, ma ho dovuto optare per l'uso dello script contrib, non dell'altro script (perl) di Alexandre Julliard. Sembra più elaborato e più configurabile, ma con postfix non avevo alcun comando di posta che accettasse "-s"? Ecco la mia strada:
http://pastie.textmate.org/695323
Sarebbe bello mostrare qualche informazione in più, come la patch completa, il collegamento gitweb e anche il grafico di commit, ma questo script può fare solo il primo - se gioco con hooks.showrev sembra.
Comunque, grazie e grazie per i suggerimenti!
Se usi Windows, scm-notifier sarebbe utile.
Non esattamente una risposta completa poiché è specifico di Github, ma se ti capita di utilizzare Github è estremamente facile configurare "Service Hooks".
Per ogni repository che desideri monitorare, inserisci Impostazioni / Hook di servizio.
Ci sono molte integrazioni disponibili, come Trac, Twitter, Amazon SNS, Jira, Asana, Bugzilla, FogBugz, IRC, Jabber, Pivotal Tracker, Trello ed e-mail ....
Seleziona semplicemente l'e-mail e alimentala con un indirizzo e-mail di gruppo.
Usiamo le notifiche e-mail per sincronizzare i nostri sviluppatori.
Se utilizzi GitLab, puoi utilizzare il servizio di progetto "Email-on-push" per questo, che può essere trovato sotto servizi nelle impostazioni del progetto.
Puoi usare il pre-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
Installare:
cd project
cp pre-commit .git/hooks
chmod +x .git/hooks/pre-commit
gem install mail
Test:
echo "# some change" >> Gemfile && git commit -m 'some change' Gemfile
In GitLab nel tuo repository:
Si apre una nuova pagina Email su push
Inoltre è disponibile un'opzione per Disabilita differenze di codice che escludono eventuali differenze di codice sensibili nell'organismo di notifica. È opzionale.
Per maggiori dettagli: clicca qui