web-dev-qa-db-fra.com

Créer un webhook GitHub pour quand une demande de pull est acceptée et fusionnée au master

J'ai un webhook qui se déclenche actuellement sur Push vers n'importe quelle branche. Cela déclenche le webhook beaucoup trop souvent. Idéalement, le webhook ne se déclencherait que lorsqu'une demande d'extraction est fusionnée dans master. Je ne vois pas cela comme une option, cependant:

enter image description here

Existe-t-il un moyen d'obtenir des options de webhook supplémentaires ou de personnaliser le webhook d'une manière ou d'une autre?

39
brentonstrine

Ainsi, vous ne pouvez pas personnaliser les conditions du déclencheur, mais comme LeGec le mentionne, vous pouvez personnaliser votre code pour qu'il ne se déclenche que lorsque la demande d'extraction est fusionnée.

Pour ce faire, assurez-vous que votre script répond à PullRequestEvent . Les conditions à tester sont:

  • "action" est " fermé "
  • "fusionné" (à l'intérieur de "pull_request") est vrai

De cette façon, votre script peut ignorer tous les pings qu'il reçoit lorsqu'une autre activité se produit sur la demande d'extraction (y compris la fermeture sans fusion).

36
pmn

Je ne vois aucun moyen de personnaliser les conditions du déclencheur.

Je suggérerais plutôt d'écrire du code à la réception pour déclencher votre action uniquement lorsque vous détectez que le Push correspond à vos conditions, par exemple:

  • payload.ref == "refs/head/master"
  • payload.commits[0] matches the structure of a merged pull request (<- cela peut nécessiter d'obtenir des informations supplémentaires de la part de valide l'API )
14
LeGEC