Git hook para enviar notificaciones por correo electrónico sobre cambios en el repositorio
101
¿Cómo configuro el gancho de Git apropiado para enviar un correo electrónico de resumen cada vez que se envía un conjunto de cambios al repositorio ascendente?
Para la actualización de la versión (nueva etiqueta) de cualquier repositorio de git, puede usar git-notifier.com para enviar notificaciones por correo electrónico (gratis) o notificaciones por SMS (de pago)
Scholtz
Respuestas:
94
Otra forma más moderna de hacer esto es con git-multimail , como lo sugiere Chords a continuación.
Así lo hizo en 2009.
Puede agregar algo como esto a su gancho posterior a la recepción en $ GITDIR / hooks, o usar el script en el directorio contrib de la fuente (disponible aquí)
Si hago referencia a ese script en mis ganchos, ¿el script al que se hace referencia tiene que residir en el host ascendente o localmente?
Head
4
El host que está ejecutando el gancho, por lo que en el caso de una recepción posterior, el host ascendente (mientras que un gancho posterior a la confirmación necesitaría el script en el host en el que está ejecutando la confirmación).
mwalling
2
¡Ahhh, pero puedes aceptar la respuesta y ambos obtendrán más reputación!
Pat Notz
La parte que me atrapó fue establecer la lista de destinatarios. Finalmente me di cuenta de que necesitas usar git config: git config hooks.mailinglist "[email protected], [email protected]"
ewalk
4
Vale la pena señalar que el enlace en esta respuesta ya no se encuentra en desarrollo activo. En su lugar, utilice multimail , que se menciona en el archivo Léame.
Acordes
19
Aquí está la solución más simple que he encontrado:
2) En la pestaña principal, haga clic en Configuración
3) Desde la navegación principal, elija Service Hooks
4) En Ganchos disponibles, elija Correo electrónico
5) Complete su dirección de correo electrónico en el campo Dirección
6) Marque la casilla de verificación Enviar del autor
7) Marque la casilla de verificación Activo
8) Haga clic en Actualizar configuración
Opcional: puede hacer clic en Test Hook para probar, verifique su bandeja de entrada y debería recibir un correo electrónico.
También hay imágenes realizadas según el proceso:
Y ahora para la gran final tengo la respuesta probada y aprobada a mi lado.
Cómo enviar correos electrónicos a TODOS los miembros del equipo de desarrollo, cuando los enlaces de servicio de gitHub-> Correo electrónico solo permiten como máximo 2 destinatarios} .
La respuesta es una combinación de Service Hook-> Email @ GitHub && grupos de Google
Primero inicie sesión en su cuenta de Google
Vaya a Grupos de Google y en la parte superior haga clic en Crear grupo
Escriba el nombre del grupo, la dirección de correo electrónico del grupo (se copiará / pegará en el enlace de servicio de GitHub-> dirección de correo electrónico), la descripción del grupo
Después de eso, presione el botón Crear en la parte superior, su nuevo grupo debería crearse ahora
Después de eso, en el menú de la izquierda, presione Invitar miembros y escriba las direcciones de correo electrónico de sus compañeros de equipo
Después de presionar Enviar invitaciones (cuando sus miembros aceptan la invitación), ahora son formalmente miembros de este grupo.
En el menú de la izquierda, haga clic en Todos los miembros y marque la cuarta columna llamada Entrega , cada miembro del equipo debe tener la opción Todos los correos
electrónicos .
Esta es una solución de github. Nada en la pregunta me dice que el usuario está usando github. Sin embargo, parece que es una respuesta perfecta para una pregunta en github.
daramarak
3
Este servicio de correo electrónico dejará de estar disponible después de octubre de 2018. Por lo tanto, esta respuesta no es válida después de ese momento. developer.github.com/changes/…
Jeegar Patel
10
Esta es mi forma de enviar notificaciones por correo electrónico a los usuarios cada vez que alguien ingresa al repositorio.
Está basado en los guiones de Andy Parkins. Lo cambio a SMTP usado para enviar correo electrónico. Por supuesto, también se puede utilizar el SMTP de gmail.
Ah, resulta que la versión de git.kernel.org respetaba hooks.showrev, ¡pero el script de instalación de git predeterminado no lo hacía! ¡Simplemente reemplazó el script, chmod a + x y luego funciona! Sin embargo, todavía necesito comprender la sintaxis de showrev
Logré hacer esto, pero tuve que optar por usar el script contrib, no el otro script (perl) de Alexandre Julliard. Parece más elegante y más configurable, pero con postfix no tenía ningún comando de correo que aceptara "-s". Este es mi camino:
Sería bueno mostrar más información, como el parche completo, el enlace de gitweb y el gráfico de confirmación también, pero este script solo puede hacer lo primero, si juego con hooks.showrev, parece.
De todos modos, ¡salud y gracias por las sugerencias!
No es exactamente una respuesta completa, ya que es específico de Github, pero si usa Github, es extremadamente fácil configurar "Service Hooks".
Para cada repositorio que desee monitorear, ingrese Configuración / Ganchos de servicio.
Hay muchas integraciones disponibles, como Trac, Twitter, Amazon SNS, Jira, Asana, Bugzilla, FogBugz, IRC, Jabber, Pivotal Tracker, Trello y Email ...
Simplemente seleccione el correo electrónico y aliméntelo con una dirección de correo electrónico grupal.
Usamos las notificaciones por correo electrónico para sincronizar a nuestros desarrolladores.
#!/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 en pc:
cd project
cp pre-commit .git/hooks
chmod +x .git/hooks/pre-commit
gem install mail
Cuando la configuración se expande, verá Integraciones . Haz click en eso.
Se abre una nueva página Correos electrónicos en push
Busque y seleccione Enviar desde confirmador .
Además, ingrese los Destinatarios separados por comas ubicados en el último campo.
También hay una opción para Desactivar diferencias de código que excluye las diferencias de código posiblemente sensibles en el cuerpo de la notificación. Es opcional.
Respuestas:
Otra forma más moderna de hacer esto es con git-multimail , como lo sugiere Chords a continuación.
Así lo hizo en 2009.
Puede agregar algo como esto a su gancho posterior a la recepción en $ GITDIR / hooks, o usar el script en el directorio contrib de la fuente (disponible aquí)
fuente
Aquí está la solución más simple que he encontrado:
1) Inicie sesión en su cuenta de gitHub en github.com
2) En la pestaña principal, haga clic en Configuración
3) Desde la navegación principal, elija Service Hooks
4) En Ganchos disponibles, elija Correo electrónico
5) Complete su dirección de correo electrónico en el campo Dirección
6) Marque la casilla de verificación Enviar del autor
7) Marque la casilla de verificación Activo
8) Haga clic en Actualizar configuración
Opcional: puede hacer clic en Test Hook para probar, verifique su bandeja de entrada y debería recibir un correo electrónico.
También hay imágenes realizadas según el proceso:
Y ahora para la gran final tengo la respuesta probada y aprobada a mi lado.
Cómo enviar correos electrónicos a TODOS los miembros del equipo de desarrollo, cuando los enlaces de servicio de gitHub-> Correo electrónico solo permiten como máximo 2 destinatarios} .
La respuesta es una combinación de Service Hook-> Email @ GitHub && grupos de Google
fuente
Esta es mi forma de enviar notificaciones por correo electrónico a los usuarios cada vez que alguien ingresa al repositorio.
Configuración de la notificación por correo electrónico de confirmación de Git
Está basado en los guiones de Andy Parkins. Lo cambio a SMTP usado para enviar correo electrónico. Por supuesto, también se puede utilizar el SMTP de gmail.
fuente
El notificador git de Robin Sommer también genera muy buenos resúmenes en el siguiente formato:
fuente
¿La configuración de hooks.showrev no hace una diferencia distinguible? : - /
Conf de muestra:
fuente
Logré hacer esto, pero tuve que optar por usar el script contrib, no el otro script (perl) de Alexandre Julliard. Parece más elegante y más configurable, pero con postfix no tenía ningún comando de correo que aceptara "-s". Este es mi camino:
http://pastie.textmate.org/695323
Sería bueno mostrar más información, como el parche completo, el enlace de gitweb y el gráfico de confirmación también, pero este script solo puede hacer lo primero, si juego con hooks.showrev, parece.
De todos modos, ¡salud y gracias por las sugerencias!
fuente
Si usa Windows, scm-notifier sería útil.
fuente
No es exactamente una respuesta completa, ya que es específico de Github, pero si usa Github, es extremadamente fácil configurar "Service Hooks".
Para cada repositorio que desee monitorear, ingrese Configuración / Ganchos de servicio.
Hay muchas integraciones disponibles, como Trac, Twitter, Amazon SNS, Jira, Asana, Bugzilla, FogBugz, IRC, Jabber, Pivotal Tracker, Trello y Email ...
Simplemente seleccione el correo electrónico y aliméntelo con una dirección de correo electrónico grupal.
Usamos las notificaciones por correo electrónico para sincronizar a nuestros desarrolladores.
fuente
Si usa GitLab, puede usar el servicio de proyecto 'Email-on-push' para esto, se puede encontrar en servicios en la configuración del proyecto.
fuente
Puede usar el compromiso previo:
Instalar en pc:
Prueba:
fuente
En GitLab en tu repositorio:
Se abre una nueva página Correos electrónicos en push
También hay una opción para Desactivar diferencias de código que excluye las diferencias de código posiblemente sensibles en el cuerpo de la notificación. Es opcional.
Para más detalles: haga clic aquí
fuente