Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

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?

like image 446
brentonstrine Avatar asked Nov 13 '14 17:11

brentonstrine


People also ask

Can GitHub receive Webhooks?

Webhooks can be installed on an organization, a specific repository, or a GitHub App.


2 Answers

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).

like image 80
pmn Avatar answered Sep 23 '22 20:09

pmn


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)
like image 38
LeGEC Avatar answered Sep 22 '22 20:09

LeGEC