Slide 1

Slide 1 text

Building GitHub Bots / Apps ...and the bpmn.io pull request flow.

Slide 2

Slide 2 text

GitHub Bot / App An application that consumes events (emitted by GitHub) and drives workflow via GitHub REST or GraphQL API.

Slide 3

Slide 3 text

Examples Automate dependency update notifications Automate CI run scheduling Automate merged branch deletion Automate issue commenting / marking / closing Automate merging, once all required checks pass Rich user interaction via issues ...

Slide 4

Slide 4 text

Flow User GitHub GitHub Bot UI action / Git Push Event (s) API Call(s) UI update / notification Event(s) API Call(s) And so on... User GitHub GitHub Bot

Slide 5

Slide 5 text

Event Subscription via Web Hooks GitHub allows you to register web hooks, URLs that are being invoked once anything happens.

Slide 6

Slide 6 text

Driving GitHub via API REST API (so 2017) or GraphQL API.

Slide 7

Slide 7 text

Security Model Apps are authenticated by organization owners on a per-project level. Apps must declare consumed events and access to project and user resources on a fine grained level (i.e. read issues, write issue comments). Apps may impersonate users (to a certain extend) to perform actions on behalf of the user.

Slide 8

Slide 8 text

Probot: A Framework to Build Apps Node app framework Easy setup (app registration) Bundles REST + GraphQL clients Features example apps/bots Apps can be mixed and matched under new identity

Slide 9

Slide 9 text

Example 1: merge-me

Slide 10

Slide 10 text

Example 2: waffle.io

Slide 11

Slide 11 text

Deployment Any free / payed tier PaaS hosting service: Heroku Now ...

Slide 12

Slide 12 text

?