Gancho Git para enviar notificação por e-mail sobre alterações de repository

Como faço para configurar o gancho Git apropriado para enviar um e-mail de resumo sempre que um conjunto de alterações é enviado ao repository upstream?

Outra maneira mais moderna de fazer isso é com o git-multimail , como sugerido por Chords abaixo.


Foi assim que você fez em 2009.

Você poderia adicionar algo assim ao seu gancho pós-recebimento em $ GITDIR / hooks, 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 na sua conta do gitHub em github.com

2) Na aba principal, clique em Configurações

3) Na navegação principal, escolha Ganchos de Serviço

4) De ganchos disponíveis, escolha E-mail

5) Preencha o seu endereço de e-mail no campo Endereço

6) Marque a checkbox de seleção Enviar do autor

7) Marque a checkbox de seleção Ativo

8) Clique em Atualizar Configurações

Opcional: você pode clicar no Gancho de teste para testar, verifique sua checkbox de input para receber e-mails.

Também existem imagens feitas de acordo com o processo:

insira a descrição da imagem aqui

insira a descrição da imagem aqui

insira a descrição da imagem aqui

insira a descrição da imagem aqui

E agora para a grande final eu tenho a resposta que é testada e aprovada ao meu lado.

Como enviar e-mails para TODOS os membros da equipe de desenvolvimento, quando os Ganchos de Serviço do gitHub-> E-mail permitem apenas no máximo dois destinatários} .

A resposta é uma combinação de Service Hook-> Email @ GitHub && Google groups

  1. Primeiro login na sua conta do google
  2. Vá para o Grupos do Google e, na parte superior, clique em Criar grupo
  3. Digite o nome do grupo, o endereço de e-mail do grupo (copiar / colar no gancho de serviço do GitHub-> endereço de e-mail), descrição do grupo
  4. Depois disso aperte o botão Create no topo, seu novo grupo deve ser criado agora
  5. Depois disso, no menu à esquerda, clique em Convidar membros e digite os endereços de e-mail de seus companheiros de equipe
  6. Depois disso, clique em Enviar convites (quando seus membros aceitarem o convite) eles agora são formalmente membros desse grupo
  7. No menu à esquerda, clique em All Members e marque a quarta coluna chamada Delivery , cada membro da equipe deve ter a opção All Email .
  8. Depois disso, gostaria de agradecer ao Sr. Clement Escoffier e, por favor, seguir suas diretrizes @ Clement Escoffier :: Enviar o Github compromete-se com um Grupo do Google sobre como terminá-lo. {Obrigado Clemente :)}
  9. Se o link ficar indisponível, aqui está outro link para a minha versão gDocs @ PDF do guia Clements

Esta é a minha maneira de enviar uma notificação por e-mail aos usuários toda vez que alguém enviar um push para o repository.

Configurando Notificação de Email do Git Commit

É baseado nos roteiros de Andy Parkins. Eu mudei para SMTP usado para enviar e-mail. Naturalmente, 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:///git-notifier On branch : master >--------------------------------------------------------------- commit 7dc1f95c97275618d5bde1aaf6760cd7ff6a6ef7 Author: Robin Sommer  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) 

configuração hooks.showrev não está fazendo diferença distinguível? : – /

Amostra 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] " 

Eu consegui fazer isso, mas tive que optar por usar o script contrib, não o outro script (perl) de Alexandre Julliard. Parece mais chique e mais configurável, mas com o postfix eu não tinha um comando de email que aceitasse “-s”? Aqui está o meu caminho:

http://pastie.textmate.org/695323

Seria bom mostrar mais algumas informações, como o patch completo, gitweb link e commit graph também, mas este script só pode fazer o primeiro – se eu brincar com hooks.showrev parece.

De qualquer forma, vivas e obrigado pelas sugestões!

Se você usar o windows, o scm-notifier seria útil.

Não é exatamente uma resposta completa, já que é específica do Github, mas se você usar o Github, é extremamente fácil configurar “Ganchos de Serviço”.
Para cada repository que você deseja monitorar, insira Configurações / Ganchos de Serviço.
Há uma abundância de integrações disponíveis, como Trac, Twitter, Amazon SNS, Jira, Asana, Bugzilla, FogBugz, IRC, Jabber, Pivotal Tracker, Trello e e-mail ….
Basta selecionar e-mail e alimentá-lo com um endereço de e-mail do grupo.
Usamos as notifications por email para sincronizar nossos desenvolvedores.

Se você usa o GitLab, pode usar o serviço de projeto ‘Enviar por email’ para isso, ele pode ser encontrado em serviços nas configurações do projeto.

Você pode usar 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 

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