ghrr

1.0.0 • Public • Published

Github Realtime Relay

Receive all Github events in realtime with socket.io from the Github Realtime Relay. This is probably the simplest way to create a realtime application on top of Github.

Server (Node)

Install the socket.io-client from npm.

npm install socket.io-client

To receive all events you can hook onto the /events namespace and subscribe to a specific Github Event. Please use lower case for subscribing to the event types.

var url = 'http://ghrr.lukasmartinelli.ch:80/events';
var socket = require('socket.io-client')(url);
 
socket.on('pushevent', function(event){
   console.log('Push: ' + event.repository.full_name);
});
 

There is also a /statistics namespace used by the GHRR web interface that sends usage statistics for the Event Types.

var url = 'http://ghrr.lukasmartinelli.ch:80';
var io = require('socket.io-client')(url);
io('/statistics').on('types', function(typeCounts) {
    console.log('PushEvents: ' + typeCounts.pushevent);
}

Web Application

You need to add the socket.io-client to your web application.

<script src="//cdn.jsdelivr.net/socket.io-client/1.2.0/socket.io.js"></script>

You can now connect directly to the public websocket. We support CORS for all domains so you should not encounter any problems.

var url = 'ghrr.lukasmartinelli.ch:80/events';
var socket = io(url);
 
socket.on('pushevent', function (event) {
   console.log('Push: ' + event.repository.full_name);
});

Host it yourself

Install with npm.

npm install ghrr

In order to poll all events you need an OAUTH access token. Run the github realtime relay with a poll rate of 1000 and on port 80.

npm install ghrr
npm run start "YOUR GITHUB ACCESS TOKEN" 1000 80

Now you can visit the status page displaying live statistics.

Screenshot of Github Realtime Relay

Package Sidebar

Install

npm i ghrr

Weekly Downloads

1

Version

1.0.0

License

MIT

Last publish

Collaborators

  • lukasmartinelli