Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@chadfawcett/probot-serverless-now

Package Overview
Dependencies
Maintainers
1
Versions
5
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@chadfawcett/probot-serverless-now

A Probot extension to make it easier to run your Probot Apps on Zeit Now v2

  • 2.0.0
  • latest
  • Source
  • npm
  • Socket score

Version published
Maintainers
1
Created
Source

npm Version Build Status

Zeit Now v2 Extension for Probot

A Probot extenstion to make it easier to run your Probot Apps on Zeit Now v2

Zeit Now v2 changes its functionality from long-running processes to functions. This means v2 deployments can't start probot run, and instead need direct access to the App's endpoint.

Usage

$ npm install @chadfawcett/probot-serverless-now
//  now.js
var { serverless } = require('@chadfawcett/probot-serverless-now')
const appFn = require('./')
module.exports = serverless(appFn)
//  index.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)
  })
}
// now.json
{
  "version": 2,
  "env": {
    "APP_ID": "@app-id",
    "WEBHOOK_SECRET": "@webhook-secret",
    "PRIVATE_KEY": "@private-key-base64-encoded"
  },
  "builds": [{ "src": "now.js", "use": "@now/node" }],
  "routes": [{ "src": "/", "dest": "/now.js" }]
}
$ now # Deploy using now!

Using Routes

Zeit Now encourages multiple granular endpoints instead of one monolithic app, so whenever possible you should separate custom routing. That being said, there may be cases for wanting to have custom routes inside of your app using app.route(). To enable this, simply change the src path in your now.json to have a wildcard ending ("src": "/*").

{
  ...
  "routes": [{ "src": "/*", "dest": "/now.js" }]
}

Multiple Apps

As mentioned in using routes, monolithic apps are discouraged. That being said, there may be a use case for running multiple Probot Apps together (ie logging, stats, etc). For this reason the serverless function also accepts an array of app functions.

var { serverless } = require('@chadfawcett/probot-serverless-now')
const statsApp = require('probot/lib/apps/stats')
const myApp = require('./')

module.exports = serverless([statsApp, myApp])

API

serverless(appFn[, options])

Create a new instance of Probot and load the supplied App[s].

Parameters
NameTypeRequiredDescription
appFnfunction | arraytrueSingle or array of of Probot App functions
optionsobjectfalseProbot config options
Options
NameTypeDefaultDescription
idnumberprocess.env.APP_IDThe App ID assigned to your GitHub App
secretstringprocess.env.WEBHOOK_SECRETThe webhook secret used when creating a GitHub App
certstringfindPrivateKey()The contents of the GitHub App private key (multiline or base64)

Example

With default options

var { serverless } = require('@chadfawcett/probot-serverless-now')
const appFn = require('./')
module.exports = serverless(appFn)

With custom options

var { serverless } = require('@chadfawcett/probot-serverless-now')
const appFn = require('./')

const options = {
  id: 123,
  secret: process.env.MY_SECRET,
  cert: process.env.MY_PRIVATE_KEY
}

module.exports = serverless(appFn, options)

Install

With npm installed, run

$ npm install @chadfawcett/probot-serverless-now

This package is meant to be installed alongside your Probot app, so probot is a peer dependency.

Acknowledgments

@chadfawcett/probot-serverless-now was inspired by probot/serverless-lambda

See Also

License

MIT Copyright Chad Fawcett

Keywords

FAQs

Package last updated on 15 Sep 2020

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc