/terminator

Prevent changes which affect deployments from accidently leaking into your main branch

Primary LanguageJavaScriptMIT LicenseMIT

Terminator

What is it?

Terminator is a tool we use at inventid to prevent accidental merges of changes which have deployment impacts. It works by checking files of your Pull request. In case a PR has changed, added, or deleted a file which is listed it will set the PR to pending to indicate this has deployment consequences. This prevents accidental merges of such code

What does it look like?

Almost the same as Consuela, so I jsut borrowed that one

screenshot 2015-05-08 21 11 18

screenshot 2015-05-08 21 11 27

How to use it?

It works really simple:

  1. Copy the default.json.example to default.json
  2. Edit the oauth token (that user should have write access to the repo)
  3. Add the repository
  4. Add the named files you wish to use to prevent merges
  5. Add the webhook (add a webhook to the URL the system is running, use application/json, and leave the secret empty. As the hook, only select Pull Request.
  6. Run system

Plain node

node server.js

Puppet

class terminator {

  file { '/opt/terminator.json':
    ensure => present,
    source => 'puppet:///modules/terminator/config.json',
    mode   => '0600',
    notify => Docker::Run['terminator']
  }

  docker::image { 'rogierslag/terminator:latest': }

  docker::run { 'terminator':
    image => 'rogierslag/terminator',
    volumes => ['/opt/terminator.json:/opt/terminator/config/default.json'],
    ports => ["${ipaddress_eth0}:8543:8543"]
  }

  firewall { '200 allow terminator':
    dport => ['8543'],
    proto => 'tcp',
    action => 'accept'
  }
}

Docker

sudo docker run -d -v /opt/terminator.json:/opt/terminator/config/default.json -p <IP>:8543:8543 rogierslag/terminator