Newfangled Package Modernizer

    @omneedia/nodegit

    0.24.3 • Public • Published

    NodeGit

    Node bindings to the libgit2 project.

    Linux & macOS Windows Coverage Dependencies
    Build Status Travis Build Status AppVeyor Coveralls Dependencies

    Stable (libgit2@v0.27.3): 0.27.3

    Have a problem? Come chat with us!

    Visit slack.libgit2.org to sign up, then join us in #nodegit.

    Maintained by

    Tim Branyen @tbranyen, John Haley @johnhaley81, and Max Korp @maxkorp with help from tons of awesome contributors!

    Alumni Maintainers

    Steve Smith @orderedlist, Michael Robinson @codeofinterest, and Nick Kallen @nk

    API Documentation.

    http://www.nodegit.org/

    Getting started.

    NodeGit will work on most systems out-of-the-box without any native dependencies.

    npm install nodegit

    If you receive errors about libstdc++, which are commonly experienced when building on Travis-CI, you can fix this by upgrading to the latest libstdc++-4.9.

    In Ubuntu:

    sudo add-apt-repository ppa:ubuntu-toolchain-r/test
    sudo apt-get update
    sudo apt-get install libstdc++-4.9-dev

    In Travis:

    addons:
      apt:
        sources:
          - ubuntu-toolchain-r-test
        packages:
          - libstdc++-4.9-dev

    In CircleCI:

      dependencies:
        pre:
          - sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test
          - sudo apt-get update
          - sudo apt-get install -y libstdc++-4.9-dev

    If you receive errors about lifecycleScripts preinstall/install you probably miss libssl-dev In Ubuntu:

    sudo apt-get install libssl-dev
    

    Additionally, you need curl-config on your system. You need one of these packages:

    • libcurl4-gnutls-dev
    • libcurl4-nss-dev
    • libcurl4-openssl-dev

    If you are still encountering problems while installing, you should try the Building from source instructions.

    API examples.

    Cloning a repository and reading a file:

    var Git = require("nodegit");
     
    // Clone a given repository into the `./tmp` folder.
    Git.Clone("https://github.com/nodegit/nodegit", "./tmp")
      // Look up this known commit.
      .then(function(repo) {
        // Use a known commit sha from this repository.
        return repo.getCommit("59b20b8d5c6ff8d09518454d4dd8b7b30f095ab5");
      })
      // Look up a specific file within that commit.
      .then(function(commit) {
        return commit.getEntry("README.md");
      })
      // Get the blob contents from the file.
      .then(function(entry) {
        // Patch the blob to contain a reference to the entry.
        return entry.getBlob().then(function(blob) {
          blob.entry = entry;
          return blob;
        });
      })
      // Display information about the blob.
      .then(function(blob) {
        // Show the path, sha, and filesize in bytes.
        console.log(blob.entry.path() + blob.entry.sha() + blob.rawsize() + "b");
     
        // Show a spacer.
        console.log(Array(72).join("=") + "\n\n");
     
        // Show the entire file.
        console.log(String(blob));
      })
      .catch(function(err) { console.log(err); });
     

    Emulating git log:

    var Git = require("nodegit");
     
    // Open the repository directory.
    Git.Repository.open("tmp")
      // Open the master branch.
      .then(function(repo) {
        return repo.getMasterCommit();
      })
      // Display information about commits on master.
      .then(function(firstCommitOnMaster) {
        // Create a new history event emitter.
        var history = firstCommitOnMaster.history();
     
        // Create a counter to only show up to 9 entries.
        var count = 0;
     
        // Listen for commit events from the history.
        history.on("commit", function(commit) {
          // Disregard commits past 9.
          if (++count >= 9) {
            return;
          }
     
          // Show the commit sha.
          console.log("commit " + commit.sha());
     
          // Store the author object.
          var author = commit.author();
     
          // Display author information.
          console.log("Author:\t" + author.name() + " <" + author.email() + ">");
     
          // Show the commit date.
          console.log("Date:\t" + commit.date());
     
          // Give some space and show the message.
          console.log("\n    " + commit.message());
        });
     
        // Start emitting events.
        history.start();
      });

    For more examples, check the examples/ folder.

    Unit tests.

    You will need to build locally before running the tests. See above.

    npm test

    Install

    npm i @omneedia/nodegit

    Homepage

    nodegit.org

    DownloadsWeekly Downloads

    61

    Version

    0.24.3

    License

    MIT

    Unpacked Size

    26.9 MB

    Total Files

    6650

    Last publish

    Collaborators

    • avatar