Socket
Book a DemoInstallSign in
Socket

github-stream

Package Overview
Dependencies
Maintainers
1
Versions
8
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

github-stream

Stream updates to the files in a GitHub repository.

latest
Source
npmnpm
Version
1.0.1
Version published
Weekly downloads
2
-33.33%
Maintainers
1
Weekly downloads
 
Created
Source

github-stream

Get a stream of updates to a GitHub repository.

Build Status Dependency Status NPM version

Installation

npm install github-stream

API

To construct the stream use:

'use strict';

var Repository = require('github-stream');

var stream = new Repository(USER, REPO, options);

stream.on('data', function (update) {
  console.dir(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 every 10 seconds, but it correctly handles caching such that the requests only count when there are updates.

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.

Options

  • branch - The github branch to fetch, defaults to 'master'
  • auth - Optional access token to make requests with
  • updateFrequency - time to wait between polling (passed to the ms module, so it can be a string like '10s'), defaults to'10s'
  • retryFrequency - time to wait if the previus poll resulted in an error, defaults to the updateFrequency
  • state - the previous state of the repository, you can use this to optimise server restarts

Events

In addition to the usual stream events, it also supports the following events:

  • 'state-updated' - emitted whenever the internal cache state has been properly updated. You can use this to persist between restarts.
  • 'error' - this is emitted whenever something goes wrong, but the polling continues even if there is an error.

Methods

  • stream.waitUntilReady() - returns a promise that is resolved once the repo has been fully synced
  • stream.dispose() - stop listening for updates

License

MIT

FAQs

Package last updated on 05 Oct 2015

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts