README.md in fourchette-0.0.2 vs README.md in fourchette-0.0.3

- old
+ new

@@ -9,53 +9,52 @@ <a href="https://github.com/jipiboily/fourchette"><img src="https://travis-ci.org/jipiboily/fourchette.png?branch=master" /></a> <a href='https://coveralls.io/r/jipiboily/fourchette'><img src='https://coveralls.io/repos/jipiboily/fourchette/badge.png' alt='Coverage Status' /></a> <a href="http://badge.fury.io/rb/fourchette"><img src="https://badge.fury.io/rb/fourchette.svg" alt="Gem Version" height="18"></a> </p> -**IMPORTANT: this is a work in progress, use at your own risk.** - Fourchette is your new best friend for having isolated testing environements. It will help you test your GitHub PRs against a fork of one your Heroku apps. You will have one Heroku app per PR now. Isn't that amazing? It will make testing way easier and you won't have the (maybe) broken code from other PRs on staging but only the code that requires testing. **IMPORTANT: Please note that forking your Heroku app means it will copy the same addon plans and that you will pay for multiple apps and their addons. Watch out!** -## Flow +## Table of content +1. How does that work exactly? +- Features +- Installation + * Configuration + * Enable your Fourchette instance + * Enable, disable, update or delete the hook + * Before & after steps, aka, callbacks +- Rake tasks +- Async processing note +- Contribute + - Logging +- Contributors +## How does that work exactly? + - a PR is created against your GitHub project - Fourchette receives an event via GitHub Hooks - it [forks](https://devcenter.heroku.com/articles/fork-app) an environement making it available to you - any new commit against that PR will update the code - closing the PR will delete the forked app - re-opening the PR will re-create a fork -## Diagram - -Seriously? You need a diagram for that? Nope. Not going to do this. PRs accepted...I guess. - -## Features -- single project -- configuration is made via environement variables -- async processing -- it works, but that's about it for now - ## Installation -Those steps could be made way easier, but this is a really minimal implementation. - -1. Add `gem 'fourchette'` to your `Gemfile` -2. Run `bundle install` -3. Add `require 'fourchette/rake_tasks'` to your `Rakefile` -4. Create a `Procfile` and a `config.ru` (using the ones from this repo as example) +1. run `gem install fourchette` +2. run `fourchette new my-app-name`. You can replace "my-app-name" by whatever you want it, this is the name of the directory your Fourchette app will be created in. +3. run `cd my-app-name` (replace app name, again) +4. run `git init && git add . && git commit -m "Initial commit :tada:"` 5. push to Heroku 6. configure the right environement variables (see [#configuration](#configuration)) 7. Enable your Fourchette instance ### Configuration - `export FOURCHETTE_GITHUB_PROJECT="jipiboily/fourchette"` - `export FOURCHETTE_GITHUB_USERNAME="jipiboily"` - `export FOURCHETTE_GITHUB_PERSONAL_TOKEN='a token here...'` # You can create one here: https://github.com/settings/applications -- `export FOURCHETTE_HEROKU_USERNAME='me@domain'` - `export FOURCHETTE_HEROKU_API_KEY='API key here'` - `export FOURCHETTE_HEROKU_APP_TO_FORK='the name of the app to fork from'` - `export FOURCHETTE_APP_URL="http://fourchette-app.herokuapp.com"` - `export FOURCHETTE_HEROKU_APP_PREFIX="fourchette"` # This is basically to namespace your forks. In that example, they would be named "fourchette-pr-1234" where "1234" is the PR number. Beware, the name can't be more than 30 characters total! It will be changed to be lowercase only, so you should probably just use lowercase characters anyways. @@ -105,20 +104,9 @@ If you want the maximum output in your GitHub comments, set this environment variable: ``` export DEBUG='true' ``` - -## It needs some love... - -What needs to be improved? - -- currently, it is assuming everything goes well, very little to no error management. This needs to improved. -- make it simpler to bootstrap a Fourchette app (possibily a rake task to generate the required files and callback overrides) -- it is not serious until there are specs for it, so add specs for that once we have a solid direction -- security improvements (we should not accept hooks from anyone else than GitHub) -- oAuth instead of GitHub token? -- multi project would be great # Contributors Thanks to [@jpsirois](https://github.com/jpsirois/) for the logo!