Create a GitHub webhook for when a pull request is accepted & merged to master

34.6k views Asked by At

I have a webhook that currently fires on push to any branch. This triggers the webhook far too frequently. Ideally, the webhook would only fire when a pull request is merged into master. I don't see that as an option, though:

enter image description here

Is there a way to get additional webhook options or to customize the webhook somehow?

2

There are 2 answers

0
LeGEC On

I don't see any way to customize the conditions of the trigger.

I would suggest to rather write code on the receiving end to trigger your action only when you detect that the push fits your conditions, e.g :

  • payload.ref == "refs/head/master"
  • payload.commits[0] matches the structure of a merged pull request (<- this may require getting some extra info from the commits API)
0
pmn On

So, you can't customize the conditions of the trigger, but as LeGec mentions you can customize your code to only trigger when the Pull Request is merged.

To do that, make sure your script responds to the PullRequestEvent. The conditions to test are:

  • "action" is "closed"
  • "merged" (inside of "pull_request") is true

This way your script can ignore all the pings it receives when any other activity occurs on the Pull Request (including closing without merging).