sumeet / slashdeploy

GitHub Deployments for Slack

Home Page:https://slashdeploy.io

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

SlashDeploy Build Status Code Climate

SlashDeploy is a web app for triggering GitHub Deployments via a /deploy command in Slack.

Installation

SlashDeploy is already hosted at https://slashdeploy.io. All you have to do is add it to your Slack team:

Add to Slack

Usage

Deploy a repository to the default environment (production):

/deploy ejholmes/acme-inc

Deploy a repository to a specific environment:

/deploy ejholmes/acme-inc to staging

Deploy a branch:

/deploy ejholmes/acme-inc@topic-branch to staging

And more at https://slashdeploy.io/docs.

Development

SlashDeploy requires PostgreSQL; you can install it through Homebrew on OSX and apt-get on Linux.

Using ngrok

  1. Install ngrok and run ./ngrok http 3000
  2. Create a Slack App, set your Slack Redirect URI to http://xxx.ngrok.io/auth/slack/callback and set your Interactive Messages Request URL to https://xxx.ngrok.io/slack/actions
  3. Listen to /deploy commands by setting the Request URL to https://xxx.ngrok.io/slack/commands
  4. Register a new Github OAuth application
  5. Set your Github Authorization callback URL to http://xxx.ngrok.io/auth/github/callback
  6. Using Slack and Github app credentials, set the following environment variables in a .env file:
  • GITHUB_CLIENT (set to github to use the actual client, a fake one is set otherwise)
  • SLACK_CLIENT (set to slack to use the actual client, a fake one is set otherwise)
  • GITHUB_CLIENT_ID
  • GITHUB_CLIENT_SECRET
  • SLACK_CLIENT_ID
  • SLACK_CLIENT_SECRET
  • SLACK_VERIFICATION_TOKEN
  • STATE_KEY
  1. foreman start -p 3000
  2. Create a Slack team and add SlashDeploy to it using the button on http://localhost:3000

Tests

The full test suite can be run with:

$ ./bin/rake

Error Logging

To have errors get reported to Rollbar, set an environment variable ROLLBAR_ACCESS_TOKEN.

About

GitHub Deployments for Slack

https://slashdeploy.io


Languages

Language:JavaScript 55.6%Language:Ruby 24.2%Language:CSS 18.9%Language:HTML 1.3%