Sign inSign up

lukasmartinelli/ghrr

By lukasmartinelli

•Updated almost 9 years ago

Image
0

10K+

lukasmartinelli/ghrr repository overview

⁠GitHub Realtime Relay Build Status Code Climate

:warning: This repository is no longer maintained by Lukas Martinelli.

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

Screenshot of GitHub Realtime Relay

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

Tag summary

Content type

Image

Digest

sha256:e2f4f3d79…

Size

256.8 MB

Last updated

almost 9 years ago

docker pull lukasmartinelli/ghrr