Skip to content

🤖 Probot Wrapper to run GitHub Apps as Lambdas in Zeit's Now 2.0

License

Notifications You must be signed in to change notification settings

rgeraldporter/probot-serverless-now

 
 

Repository files navigation

npm version build status

Goal

probot-serverless-now is a wrapper around Probot to run your GitHub Apps as Serverless Functions with ZEIT Now.

Usage

  • app.js

    module.exports = app => {
      app.on("issues.opened", async context => {
        // A new issue was opened, what should we do with it?
        context.log(context.payload);
      });
    };
  • api/index.js

    const { toLambda } = require("probot-serverless-now");
    
    const applicationFunction = require("../app");
    
    module.exports = toLambda(applicationFunction);
  • now.json

    {
      "version": 2,
      "env": {
        "APP_ID": "@my-app-id",
        "PRIVATE_KEY": "@my-app-base64-encoded-private-key",
        "WEBHOOK_SECRET": "@my-app-webhook-secret"
      }
    }

Supported Probot Features

  • Logging
  • Sentry integration
  • Webhook signature verification
  • Loading the private key from the filesystem. The PRIVATE_KEY environment variable should be used instead (possibly base64 encoded).
  • Custom routing. The only routes are:
    • GET /: typical Probot landing page
    • POST /: webhook handler
  • Multiple applications running under the same Probot instance. Instead, you should create multiple Now Lambdas. Each lambda should have its own now.json file since they won't share the same APP_ID, PRIVATE_KEY, and WEBHOOK_SECRET environment variables. To do that, you could either use multiple repositories or a mono-repo with Yarn workspaces or Lerna for instance.

About

🤖 Probot Wrapper to run GitHub Apps as Lambdas in Zeit's Now 2.0

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 93.1%
  • JavaScript 6.9%