Stream updates to the files in a GitHub repository.


Get a stream of updates to a GitHub repository.

npm install github-stream

To construct the stream use:

'use strict';
var Repository = require('github-stream');
var stream = new Repository(USER, REPO, GITHUB_TOKEN, options);
stream.on('data', function (update) {
  // { type: 'Directory', action: 'Create', path: '/my-dir' } 
  // { type: 'Directory', action: 'Delete', path: '/my-old-dir' } 
  // { type: 'File', action: 'Create', path: '/my-new-file', body: Buffer} 
  // { type: 'File', action: 'Update', path: '/my-file', body: Buffer} 
  // { type: 'File', action: 'Delete', path: '/my-old-file'} 

In order to keep track of updates, this module keeps the sha hashes of each file in memory. By default it polls github once per second, but it correctly handles caching such that the requests only count when there are updates to retrieve.

Note also that each file is transferred wholesale as a Buffer, not as a stream. This is much more convenient but can add significant memory footprint.