Deploify is a NPM module that creates a temporary stage environment of your web app on Heroku for each of your pull requests.
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
src
.gitignore
LICENSE
README.md
package-lock.json
package.json

README.md

Deploify

NPM version

This module allows to create a temporary staging enviroment on Heroku for each of a repository pull request on Bitbucket, leveraging your Heroku account and Bitbucket webhooks. It's a Bitbucket alternative to Review Apps for GitHub and GitLab.

Setup:

1. Setup the module to work with your Express server

const express = require('express');
const app = express();

require('deploify')(app, {
  webhook_endpoint: "/webhook/bitbucket",
  bitbucket_user: "foo",
  bitbucket_email: "foo@bar.com",
  bitbucket_password: ""*******",
  bitbucket_key: "...",
  bitbucket_secret: "...",
  heroku_user: "foo@bar.com",
  heroku_password: "*******",
  domain_prefix: "fooqapreview-",
  branch_regex: /^qa-(.*)/,
  env_vars: {
    QA: "true"
  }
});
Param Type Description
app function Express instance
config Object Configuration object
config.webhook_endpoint string Endpoint for Bitbucket's webhook (e.g.: /webhooks/bitbucket)
config.bitbucket_user string Bitbucket username
config.bitbucket_password string Bitbucket password
config.bitbucket_email string Bitbucket email
config.bitbucket_key string Bitbucket OAuth key
config.bitbucket_secret string Bitbucket OAuth secret
config.heroku_user string Heroku username (email)
config.heroku_password string Heroku password
config.domain_prefix string Domain prefix for apps (e.g.: qapreview- will result in domains like qapreview-435.herokuapp.com)
config.branch_regex RegExp Regex to match in branch names (apps will be created only for matched branches)
config.env_vars Object Environment variables to be attached to Heroku apps

2. Create the webhook on the Bitbucket repository of your choice

Go to your repository page, then follow Settings -> Workflow -> Webhooks -> Add webhook. Create a webhook choosing from the list of triggers the following events of the Pull Request: Created, Updated, Merged and Declined.

Webhook creation

Todo

  • Better error handling
  • Test coverage
  • Manual deployment
  • GitLab integration
  • Support to more hosting providers