build status

Gisthub gist API wrapper to writeFile and readFile


A mixin for Octokat.js that provides a simple wrapper for writing to and reading from a gist. It provides an interface similar to node.js fs.readFile and fs.writeFile.


Currently will only read files < 1Mb


parameter type description
repo Octokat.gist A vaid repo returned from Octokat with the call octo.gists('gist_id'). See below for examples.


var gistfs = require('gistfs'); 
var Octokat = require('octokat');

var octo = new Octocat({ username: "USER_NAME", password: "PASSWORD" });

var gh = gistfs(octo.gists('gist_id'));

Returns Object, returns and instance of gistfs with two methods readFile and writeFile.

writeFile(filename, data, callback)

Asynchronously writes data to a file on a Gist, replacing the file if it already exists. data can be a string or a buffer. A buffer is written encoded as base64.


parameter type description
filename String Cannot contain slashes
data String\,Buffer  
callback Function  


gh.writeFile('message.txt', 'Hello Github', function (err) {
  if (err) throw err;
  console.log('It\'s saved!');

readFile(filename, [options], callback)

Asynchronously read a file on Github.

The file path is always interpreted from the root of the repo, whether or not it is preceded by a slash.

The callback is passed two arguments (err, data), where data is the contents of the file.

Assumes data on gist is utf8. TODO read gist files encoded as base64.

If no encoding is specified, then the raw buffer is returned.


parameter type description
filename String  
[options] Object optional: options.encoding=null (returns Buffer)
callback Function  


gh.readFile('my_file.txt', { encoding: 'utf8' }, function (err, data) { 
  if (err) throw err; 
  // text contents of file


Requires nodejs.

$ npm install gistfs.js


$ npm test


See it on GitHub

Return to Code