About

Asynchronous native Node bindings to the libgit2 project.

Version 0.2.0 (WIP) | GitHub repository

Build
              Status Build Status: Windows

Install:

npm install nodegit

Clone and read example:

var clone = require("nodegit").Clone.clone;

// Clone a given repository into a tmp folder.
clone("git://github.com/nodegit/nodegit", "tmp").then(function(repo) {
  // Use a known commit sha from this repository.
  var sha = "59b20b8d5c6ff8d09518454d4dd8b7b30f095ab5";

  // Look up this known commit.
  repo.getCommit(sha).then(function(commit) {
    // Look up a specific file within that commit.
    commit.getEntry("README.md").then(function(entry) {
      // Get the blob contents from the file.
      entry.getBlob().then(function(blob) {
        // Show the name, sha, and filesize in byes.
        console.log(entry.filename(), entry.sha(), blob.rawsize());

        // Show a spacer.
        console.log(Array(72).join("=") + "\n\n");

        // Show the entire file.
        console.log(String(blob));
      });
    });
  });
});

API Documentation