Como configuro o gancho Git apropriado para enviar um e-mail de resumo sempre que um conjunto de alterações é enviado para o repositório upstream?
Como configuro o gancho Git apropriado para enviar um e-mail de resumo sempre que um conjunto de alterações é enviado para o repositório upstream?
Respostas:
Outra maneira mais moderna de fazer isso é com git-multimail , conforme sugerido pelos acordes abaixo.
É assim que você fez em 2009.
Você poderia adicionar algo como este para o seu post-receive gancho $ GITDIR / ganchos, ou usar o script no diretório contrib da fonte (disponível aqui)
Aqui está a solução mais simples que encontrei:
1) Faça login em sua conta gitHub em github.com
2) Na guia principal, clique em Configurações
3) Na navegação principal, escolha Ganchos de serviço
4) Dos Ganchos Disponíveis, escolha Email
5) Preencha seu e-mail no campo Endereço
6) Marque a caixa de seleção Enviar do autor
7) Marque a caixa de seleção Ativo
8) Clique em Atualizar configurações
Opcional: Você pode clicar no Gancho de Teste para testar, verifique sua caixa de entrada para receber e-mail.
Também existem imagens feitas de acordo com o processo:
E agora, para a grande final , tenho a resposta que foi testada e aprovada ao meu lado.
Como enviar email para TODOS os membros da equipe de desenvolvimento, quando os Ganchos de Serviço-> Email do gitHub permitem no máximo 2 destinatários} .
A resposta é a combinação de Service Hook-> Email @ GitHub && Google groups
Esta é a minha maneira de enviar notificação por email aos usuários sempre que alguém enviar um push para o repositório.
Configurando Git Commit Email Notification
É baseado nos scripts de Andy Parkins. Eu mudo para SMTP usado para enviar e-mail. Claro, o SMTP do gmail também pode ser usado.
O git-notifier de Robin Sommer também gera resumos muito bons no seguinte 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)
definir hooks.showrev não está fazendo nenhuma diferença perceptível? : - /
Amostra de conf:
# 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] "
Consegui fazer isso, mas tive que optar por usar o script contrib, não o outro script (perl) de Alexandre Julliard. Parece mais sofisticado e configurável, mas com o postfix eu não tinha um comando de email que aceitasse "-s"? Aqui está o meu jeito:
http://pastie.textmate.org/695323
Seria bom mostrar mais algumas informações, como o patch completo, link gitweb e gráfico de commit também, mas este script só pode fazer o primeiro - se eu brincar com hooks.showrev, ao que parece.
Enfim, parabéns e obrigado pelas sugestões!
Se você usa o Windows, o scm-notifier pode ser útil.
Não é exatamente uma resposta completa, pois é específico do Github, mas se você usar o Github, é extremamente fácil configurar "Ganchos de serviço".
Para cada repositório que você deseja monitorar, insira Configurações / Ganchos de serviço.
Existem muitas integrações disponíveis, como Trac, Twitter, Amazon SNS, Jira, Asana, Bugzilla, FogBugz, IRC, Jabber, Pivotal Tracker, Trello e Email ....
Basta selecionar o e-mail e alimentá-lo com um endereço de e-mail de grupo.
Usamos as notificações por email para sincronizar nossos desenvolvedores.
Se você usar o GitLab, poderá usar o serviço de projeto 'Email-on-push' para isso. Ele pode ser encontrado em serviços nas configurações do projeto.
Você pode usar pré-confirmação:
#!/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
Instalar:
cd project
cp pre-commit .git/hooks
chmod +x .git/hooks/pre-commit
gem install mail
Teste:
echo "# some change" >> Gemfile && git commit -m 'some change' Gemfile
No GitLab em seu repositório:
Lá é aberta uma nova página Emails on push
Também existe uma opção para Desabilitar diffs de código que exclui diffs de código possivelmente sensíveis no corpo da notificação. Isso é opcional.
Para mais detalhes: Clique aqui