Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
branch: master
README.md

Sismo Geckoboard Notifier

What is it?

I had a couple of hours to spare, so I thought I'd have a crack at creating a Sismo notifier for the first Ibuildings Challenge of 2012. It's a simple notifier that pushes a message up to a widget on your Geckoboard

Widget showing failed status

It actually ended up being more than a couple of hours, probably about 4 in total, after a few refactorings and extra features I thought up. It currently passes upto the last 5 build statues to the widget, though this can be configured.

Widget showing success status

I've used a hacky way to send the HTTP POST in order to keep this dependency free, one class, one file, etc. As such, I've used a hacky way to test it fully, so you'll need node.js installed to run one of the tests

Usage

First up, you need a Geckoboard account, one with the Push API enabled (I had to ask, I assume at some point it will be the default). Add a custom text widget to your board, select Push as the method and take note of the provided widget URL. You can find your API key on the API tab of the Account page.

cd ~/.sismo
wget https://raw.github.com/davedevelopment/sismo-geckoboard-notifier/master/src/Davedevelopment/Sismo/GeckoboardNotifier.php
vim config.php

In your Sismo config

<?php

require_once __DIR__ . '/GeckoboardNotifier.php';
$notifier = new Davedevelopment\Sismo\GeckoboardNotifier(
    "your_api_key", 
    "your_widget_url"
); 

// ...

$myProject->addNotifier($notifier);

Try running sismo

You can customise the display by passing a third parameter to the constructor, either a string or a callback that would take a Sismo\Commit instance

Todo

  • Could optionally take a widget url rather than key, in case they change things
  • Take Buzz out
  • Send output for the last X commits, so they can be paged through

Copyright

Copyright (c) 2012 Dave Marshall. See LICENCE for further details

Something went wrong with that request. Please try again.