burnchart/README.md

106 lines
3.2 KiB
Markdown
Raw Normal View History

2012-09-17 10:33:48 +00:00
# GitHub Burndown App
An app that displays a burndown chart for your GitHub Issues.
![image](https://raw.github.com/radekstepan/github-burndown-chart/master/example.png)
2012-05-23 15:17:39 +00:00
## Requirements:
You can install all the following dependencies by running:
```bash
2012-09-17 08:11:27 +00:00
$ npm install -d
2012-05-23 15:17:39 +00:00
```
- [CoffeeScript](http://coffeescript.org/)
- [express](http://expressjs.com/)
- [eco](https://github.com/sstephenson/eco)
- [js-yaml](https://github.com/visionmedia/js-yaml)
## Configure:
The app is configured by pointing to a public GitHub user/project. Do so in `config.yml`:
```yaml
2012-05-23 15:18:26 +00:00
github_user: 'intermine'
2012-05-23 15:17:39 +00:00
github_project: 'InterMine'
project_name: 'Core InterMine Project'
```
2012-09-17 08:11:27 +00:00
The `project_name` key-value pair represents the title of the burndown chart that you will see in the top right corner of the page.
### Milestones
Then visit your GitHub project's Issues page and create a new milestone with a date due in the future. This will represent your iteration. This app will pick the Milestone with the **closest due date in the future** as the *current* one.
### Sizes
Then assign a few labels to tickets in this Milestone. These labels will represent your perceived size of the task. The label takes a form of *size [number]* so to say that an Issue is as big as *5* points I would create and assign this label (don't worry about the colors...):
```
size 5
```
2012-09-24 16:20:14 +00:00
### Weekends
If you have days when you do not work on a project, edit the `config.yml` file with a list of days of the week when you are off. The numbers are 1 indexed and follow the international standard of starting a week on Monday, so for a Saturday and Sunday weekend do this:
```yaml
weekend: [ 6, 7 ]
```
2012-05-23 15:17:39 +00:00
## Use:
2012-09-17 08:11:27 +00:00
```bash
$ npm start
```
Then visit [http://127.0.0.1:3000/](http://127.0.0.1:3000/).
The **orange line** - this represents you closing the Issues as you go through them. When you hover over it you will see, for each day, what the closed Issues were and how many points are left.
The **blue line** - this represents the dropping size of the outstanding Issues planned for the iteration/Milestone.
2012-09-17 08:11:27 +00:00
There is nothing to save in a database so each refresh of the page fetches all of the latest information from GitHub.
Enjoy!
## Redhat OpenShift:
Create an account at [http://openshift.redhat.com](http://openshift.redhat.com) specifying a Node.js 0.6 "Web Cartridge" specifying the url for the app.
Install the OpenShift [client tools](https://openshift.redhat.com/app/getting_started).
Add your public key from `~/.ssh/id_rsa.pub` to your account. You can use xclip to copy the key to the clipboard:
```bash
$ xclip -sel clip < ~/.ssh/id_rsa.pub
```
Add the remote repository, like:
```bash
$ git remote add openshift ssh://[username_hash]@burndown-intermine.rhcloud.com/~/git/burndown.git/
```
Push your changes:
```bash
$ git push -u openshift master
```
### Debugging
In case of trouble, use the OpenShift client tools to debug:
```bash
$ /var/lib/gems/1.8/bin/rhc domain status
```
To determine the status of the app, run:
```bash
$ /var/lib/gems/1.8/bin/rhc-app status -a burndown
```
You can also SFTP into your instance on port `22` [sftp://burndown-intermine.rhcloud.com](sftp://burndown-intermine.rhcloud.com) or SSH to it.