Join us for office hours !

Receiving Webhooks

GitHub webhooks are fired for almost every significant action that users take on GitHub, whether it’s pushes to code, opening or closing issues, opening or merging pull requests, or commenting on a discussion.

Many robots will spend their entire day responding to these actions. robot.on will listen for any GitHub webhook events:

module.exports = robot => {
  robot.on('push', async context => {
    // Code was pushed to the repo, what should we do with it?
    robot.log(context);
  });
};

The robot can listen to any of the GitHub webhook events. The context object includes everything about the event that was triggered, and context.payload has the payload delivered by GitHub.

Most events also include an “action”. For example, the issues event has actions of assigned, unassigned, labeled, unlabeled, opened, edited, milestoned, demilestoned, closed, and reopened. Often, your bot will only care about one type of action, so you can append it to the event name with a .:

module.exports = robot => {
  robot.on('issues.opened', async context => {
    // An issue was just opened.
  });
};

Find a mistake or want to help improve this documentation? Suggest changes on GitHub

Get occasional updates on new apps & features.

Star

with by @bkeepers

Code licensed ISC Docs licensed CC-BY-4.0