Come faccio a fare git post-ricevere messaggi di posta elettronica inviati da parte dell'autore commettere?

StackOverflow https://stackoverflow.com/questions/2443908

  •  20-09-2019
  •  | 
  •  

Domanda

Sto usando lo script di post-ricevere-mail incluso con git. (Fonte è qui .) Funziona bene, ma voglio ogni email da inviare da parte dell'autore dei commit spinto. Come posso fare?

Il mio file post-ricezione attualmente appare così, e voglio personalizzare il da-indirizzo e-mail.

#!/bin/sh

export USER_EMAIL=from-email-address@blah.com
$(dirname $0)/post-receive-email
È stato utile?

Soluzione

Usa git log per tirare fuori l'indirizzo di posta elettronica.

Per esempio, in post-receive:

#!/bin/sh

# Use the email address of the author of the last commit.
export USER_EMAIL=$(git log -1 --format=format:%ae HEAD)
$(dirname $0)/post-receive-email

Si potrebbe anche mappare gli indirizzi e-mail, se per esempio, le persone stanno usando i loro indirizzi Gmail o di dominio personale, ma che si desidera mappare a un singolo dominio.

#!/bin/sh

# Use the mapped email address (specified in .mailmap) of the author of the last commit.
export USER_EMAIL=$(git log -1 --format=format:%aE HEAD)
$(dirname $0)/post-receive-email

Si può leggere di più su .mailmap qui .

Altri suggerimenti

Si può provare con un altro sistema di aggancio come http://github.com/ jtek / git-hook-update-notify-mail

Di seguito può essere meglio, per gestire correttamente commit fatta su rami (utilizzati su un sistema Debian):

#! /bin/sh
git config hooks.envelopesender $(git log -all -1 --pretty=format:%ae)
. /usr/share/git-core/contrib/hooks/post-receive-email

Il git log --all invece di git log HEAD userà l'ultima impegnarsi su tutti i rami, presumibilmente quella giusta per informare circa.

Il git config hooks.envelopesender può essere sostituito da un altro dei le varianti di cui sopra. YMMV.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top