Public | Automated Build

Last pushed: 2 years ago
Short Description
Short description is empty for this repo.
Full Description

GitHub Realtime Relay

Receive all GitHub events in realtime with socket.io from the GitHub Realtime Relay which polls all public events and then relays them directly via websockets.
This is probably the simplest way to create a realtime application on top of GitHub.

Below you see a statistics page of GitHub events built on top of GHRR.

For a short tutorial head over to
my blog post about GHRR or continue reading. For a more sophisticated usage example checkout my other project delptr, which lints all C++ commits in realtime.

Connect from 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);
}

Connect from 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 = 'http://ghrr.lukasmartinelli.ch:80/events';
var socket = io(url);

socket.on('pushevent', function (event) {
   console.log('Push: ' + event.repository.full_name);
});

Host it yourself

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 3000.

docker pull lukasmartinelli/ghrr
docker run -e GITHUB_TOKEN="acbas3dfas.." -p 3000:3000 lukasmartinelli/ghrr
Docker Pull Command
Owner
lukasmartinelli
Source Repository

Comments (0)