nodegit

Native Node bindings to Git.

MIT License

Downloads
107K
Stars
5.6K
Committers
165
nodegit - v0.27.0 (2020-07-28) Latest Release

Published by implausible about 4 years ago

Summary of changes

  • Expose git_remote_rename
  • Bump OpenSSL from 1.1.0i -> 1.1.1c in Windows/Mac OS Electron builds
  • Replace unmaintained request library with got
  • Remove promisify-node and use vanilla promises for all NodeGit promises
  • Prebuilds for Node 14, deprecate Node 8
  • Persist RemoteCallbacks and ProxyOptions on the remote if using Remote.prototype.connect. This fixes a segfault when using any routines on a connected remote.

Merged PRs into NodeGit

nodegit - v0.27.0-alpha.1 (2020-03-26)

Published by implausible over 4 years ago

Summary of changes

  • Expose git_remote_rename
  • Bump OpenSSL from 1.1.0i -> 1.1.1c in Windows/Mac OS Electron builds
  • Replace unmaintained request library with got
  • Remove promisify-node and use vanilla promises for all NodeGit promises

#Merged PRs into NodeGit

nodegit - v0.26.5 (2020-02-27)

Published by implausible over 4 years ago

Summary of changes

  • Bring in improvement to client certificate handling on Windows from winhttp: support optional client cert #5384
  • Commit.prototype.parent() now correctly assigns the repo property on the retrieved commit. This should solve certain bugs when working with a commit retrieved from parent.

Merged PRs into NodeGit

Merged PRs into LibGit2

nodegit - v0.26.4 (2020-01-14)

Published by implausible almost 5 years ago

Summary of changes

  • Bumped LibGit2
    • Now can be configured to support longpaths on Windows. Does not respect the config value, but is configured through NodeGit.Libgit2.opts. See #1748 for details.
    • Support for complex SSH auth creds handshakes
  • Pulled in patch for Libssh2 that covers an integer overflow, see Libssh2#402

Merged PRs into NodeGit

Merged PRs into LibGit2

nodegit - v0.26.3 (2019-12-10)

Published by implausible almost 5 years ago

Summary of changes

Merged PRs into NodeGit

nodegit - v0.26.2 (2019-09-26)

Published by implausible almost 5 years ago

Summary of changes

  • Added options to fetch additional data (gpg signature) from LibGit2 in revWalk.prototype.commitWalk and return plain objects
    • revWalk.prototype.commitWalk(numCommits: number, { returnPlainObjects: boolean })

Merged PRs into NodeGit

nodegit - v0.26.0 (2019-09-09)

Published by implausible about 5 years ago

Summary of changes

  • Bumped libssh2 to 1.9 for security patch
  • Remote.prototype.upload and Remote.prototype.updateTips should be async now

Merged PRs into NodeGit

nodegit - v0.25.1 (2019-08-13)

Published by implausible about 5 years ago

Summary of changes

Security patch for LibGit2:

  • A carefully constructed commit object with a very large number
    of parents may lead to potential out-of-bounds writes or
    potential denial of service.

  • The ProgramData configuration file is always read for compatibility
    with Git for Windows and Portable Git installations. The ProgramData
    location is not necessarily writable only by administrators, so we
    now ensure that the configuration file is owned by the administrator
    or the current user.

Additionally:

  • Stash should run much faster now.

Merged PRs into LibGit2

nodegit - v0.25.0 (2019-08-09)

Published by implausible about 5 years ago

Summary of changes

BREAKING
  • getRemotes no longer returns remote names, it now returns remote objects directly. Use getRemoteNames to get a list of remote names.
  • Converted Buf.prototype.set and Buf.prototype.grow from async to sync
  • Repository.prototype.continueRebase will now throw on any error except for EAPPLIED on the first call to Rebase.prototype.next
  • Drops support for Ubuntu 14 after EOL
  • Removed access to the diff_so_far param in git_diff_notify_cb and git_diff_progress_cb
  • Changed FilterSource.prototype.repo to async to prevent segfaults on filters that run during Submodule.status
  • Changed NodeGit.Signature.default to async, because it actually ends up reading the config.
  • Fixed bug where templates were not reporting errors for synchronous methods. It's a bit of a wide net, but in general,
    it is now possible certain sync methods in NodeGit will begin failing that did not fail before. This is the correct
    behavior.
Deprecations
  • Support signing commits in Repository.prototype.mergeBranches. The last parameter processMergeMessageCallback is now deprecated, but will continue to work. Use the options object instead, which will contain the processMergeMessageCallback, as well as the signingCb.
New
  • Support for Node 12
  • Add signing support for commits and annotated tags
    • Enforced consistent use of signing callbacks within the application. Any object that implements the signingCallback
      pattern for signing commits or tags should use the exact same callback type and with the same meaning.
      type SigningCallback = (content: string) => {| code: number, field?: string, signedData?: string |};
      If the code is NodeGit.Error.CODE.OK or 0, the operation will succeed and at least signedData is expected to be filled out.
      If the code is a negative number, except for NodeGit.Error.CODE.PASSTHROUGH, the signing operation will fail.
      If the code is NodeGit.Error.CODE.PASSTHROUGH, the operation will continue without signing the object.
  • Exposed AnnotatedCommit methods:
    • AnnotatedCommit.prototype.ref
  • Exposed Apply methods:
    • Apply.apply applies a diff to the repository
    • Apply.toTree applies a diff to a tree
  • Exposed Config methods:
    • Config.prototype.deleteEntry
    • Config.prototype.deleteMultivar
    • Config.prototype.getBool
    • Config.prototype.getInt32
    • Config.prototype.getInt64
    • Config.prototype.setMultivar
    • Config.prototype.snapshot
  • Exposed ConfigIterator with methods:
    • ConfigIterator.create
    • ConfigIterator.createGlob
    • ConfigIterator.createMultivar
    • ConfigIterator.prototype.next
  • Exposed IndexNameEntry:
    • IndexNameEntry.add
    • IndexNameEntry.clear
    • IndexNameEntry.entryCount
    • IndexNameEntry.getByIndex
    • IndexNameEntry.prototype.ancestor
    • IndexNameEntry.prototype.ours
    • IndexNameEntry.prototype.theirs
  • Exposed IndexReucEntry:
    • IndexReucEntry.add
    • IndexReucEntry.clear
    • IndexReucEntry.entryCount
    • IndexReucEntry.find
    • IndexReucEntry.getByIndex
    • IndexReucEntry.getByPath
    • IndexReucEntry.remove
    • IndexReucEntry.prototype.mode
    • IndexReucEntry.prototype.oid
    • IndexReucEntry.prototype.path
  • Exposed Mailmap:
    • Mailmap.prototype.addEntry
    • Mailmap.fromBuffer
    • Mailmap.fromRepository
    • Mailmap.create
    • Mailmap.prototype.resolve
    • Mailmap.prototype.resolveSignature
  • Exposed Merge methods:
    • Merge.analysis
    • Merge.analysisForRef
  • Exposed Path.isGitfile
  • Added RebaseOptions to Repository.prototype.rebaseContinue
  • Added NodeGit.Reference.updateTerminal
  • Exposed Remote methods:
    • Remote.createWithOpts
  • Exposed Tag.createFromBuffer
  • Expose Tree.prototype.createUpdated(repo, numUpdates, updates)
Fixed
  • Updates lodash dependency to address security notice
  • Fixed a prototype problem with cherrypick, merge, and other collections that have a function at their root. call, apply, and bind should now be on NodeGit.Cherrypick.
  • Bumped libssh2 to resolve security notice.
  • Improve speed and correctness of fileHistoryWalk. The API should not have changed; however, when the end of the walk has been reached, reachedEndOfHistory will be specified on the resulting array.
  • Fixes openssl prebuilt downloads for electron builds
  • Fixes commits retrieved from Commit.prototype.parent
  • Bump Node-Gyp to 4.0.0 to fix tar security vulnerability
  • Optimized a set of routines in NodeGit. These methods as written in Javascript require hundreds or thousands of requests to async workers to retrieve data. We've batched these requests and performed them on a single async worker. There are now native implementations of the following:
    • Repository.prototype.getReferences: Retrieves all references on async worker.
    • Repository.prototype.getRemotes: Retrieves all remotes on async worker.
    • Repository.prototype.getSubmodules: Retrieves all submodules on async worker.
    • Repository.prototype.refreshReferences: Open sourced function from GitKraken. Grabs a lot of information about references on an async worker.
    • Revwalk.prototype.commitWalk: Retrieves up to N commits from a revwalk on an async worker.
  • When installing on a machine that has yarn and does not have npm, the preinstall script should succeed now
  • ceiling_dirs is now an optional parameter to Repository.discover
  • Added support for building on IBM i (PASE) machines
  • Fixed leak where struct/option types were leaking libgit2 pointers
  • Switched NodeGit.Oid.fromString's internal implementation from git_oid_fromstr to git_oid_fromstrp
  • Fixed builds for Electron 4
  • Updated Signature.prototype.toString to optionally include timestamps
LibGit2 Bump
  • Fixes gitignore issue with pattern negation
  • Remote.list now gets the correct list of remotes if remotes are changed by external process
  • Always use builtin regex for linux for portability
  • Use Iconv on OSX for better internationalization support.
  • Removed LibCurl from LibGit2:
    • Now with built-in NTLM proxy support
    • Now with built-in Negotiate/Kerberos proxy support
    • Working with proxy URLs may be different as curl could auto detect scheme for proxies
  • Various git config fixes
  • Various git ignore fixes
  • Various libgit2 performance improvements
  • Windows/Linux now use PCRE for regex, OSX uses regcomp_l, this should address collation issues in diffing

Merged PRs into NodeGit

Merged PRs into LibGit2

nodegit - v0.25.0-alpha.16 (2019-07-23)

Published by implausible over 5 years ago

Summary of changes

  • Adds support for Node 12
  • Updates lodash dependency to address security notice
  • Expose Tree.prototype.createUpdated(repo, numUpdates, updates)
  • Bumps libgit2
    • Fixes gitignore issue with pattern negation
    • Remote.list now gets the correct list of remotes if remotes are changed by external process

Merged PRs into NodeGit

Merged PRs into LibGit2

nodegit - v0.25.0-alpha.15 (2019-07-15)

Published by implausible over 5 years ago

Summary of changes

  • Removed NSEC optimization due to performance regressions in repositories that did not use NSEC optimization cloned via NodeGit.

Merged PRs into NodeGit

nodegit - v0.25.0-alpha.14 (07-01-2019)

Published by implausible over 5 years ago

Summary of changes

  • Always use builtin regex for linux for portability

Merged PRs into NodeGit

nodegit - v0.25.0-alpha.12 (2019-06-03)

Published by implausible over 5 years ago

Summary of changes

  • Fix bug in Repository.prototype.refreshReferences where new remote references from a new remote added/fetched on a separte repo instance do not show up in the result.
  • Fixed a prototype problem with cherrypick, merge, and other collections that have a function at their root. call, apply, and bind should now be on NodeGit.Cherrypick.
  • Bumped libssh2 to resolve security notice.

Merged PRs into NodeGit

nodegit - v0.25.0-alpha.11 (2019-05-20)

Published by implausible over 5 years ago

Summary of changes

  • Improve speed and correctness of fileHistoryWalk. The API should not have changed; however, when the end of the walk has been reached, reachedEndOfHistory will be specified on the resulting array.

Merged PRs into NodeGit

nodegit - v0.25.0-alpha.13 (2019-06-27)

Published by implausible over 5 years ago

Summary of changes

  • Turn on GIT_USE_NSEC on all platforms
  • Use Iconv on OSX for better internationalization support.
  • Bump libgit2 to bring in:
    • NTLM proxy support
    • Negotiate/Kerberos proxy support
    • Various git config fixes
    • Various git ignore fixes
    • Various libgit2 performance improvements
    • Windows/Linux now use PCRE for regex, OSX uses regcomp_l, this should address collation issues in diffing
  • Fixed bug with Repository.prototype.refreshReferences dying on corrupted reference. We now ignore corrupted references

Merged PRs into NodeGit

Merged PRs into LibGit2

nodegit - v0.25.0-alpha.10 (2019-05-03)

Published by implausible over 5 years ago

Summary of changes

  • SECURITY Drops support for Ubuntu 14 after EOL
  • Fixes openssl prebuilt downloads for electron builds
  • Fixes commits retrieved from Commit.prototype.parent
  • DEPRECATION Support signing commits in Repository.prototype.mergeBranches. The last parameter processMergeMessageCallback is now deprecated, but will continue to work. Use the options object instead, which will contain the processMergeMessageCallback, as well as the signingCb.
  • SECURITY Bump Node-Gyp to 4.0.0 to fix tar security vulnerability
  • BREAKING getRemotes no longer returns remote names, it now returns remote objects directly. Use getRemoteNames to get a list of remote names.
  • Optimized a set of routines in NodeGit. These methods as written in Javascript require hundreds or thousands of requests to async workers to retrieve data. We've batched these requests and performed them on a single async worker. There are now native implementations of the following:
    • Repository.prototype.getReferences: Retrieves all references on async worker.
    • Repository.prototype.getRemotes: Retrieves all remotes on async worker.
    • Repository.prototype.getSubmodules: Retrieves all submodules on async worker.
    • Repository.prototype.refreshReferences: Open sourced function from GitKraken. Grabs a lot of information about references on an async worker.
    • Revwalk.prototype.commitWalk: Retrieves up to N commits from a revwalk on an async worker.

Merged PRs into NodeGit

nodegit - v0.25.0-alpha.9 (2019-03-04)

Published by implausible over 5 years ago

Summary of changes

  • Removed access to the diff_so_far param in git_diff_notify_cb and git_diff_progress_cb
  • Changed FilterSource.prototype.repo to async to prevent segfaults on filters that run during Submodule.status
  • Clean up deprecation messages to inform users of what was deprecated, not just what users should switch to
  • When installing on a machine that has yarn and does not have npm, the preinstall script should succeed now
  • ceiling_dirs is now an optional parameter to Repository.discover

Merged PRs into NodeGit

nodegit - v0.25.0-alpha.8 (2019-02-27)

Published by implausible over 5 years ago

Summary of changes

  • Fixed segfault in NodeGit.Merge.analysis and NodeGit.Merge.analysisForRef

Merged PRs into NodeGit

nodegit - v0.25.0-alpha.7 (2019-02-20)

Published by implausible over 5 years ago

Summary of changes

  • Fixed bug where repeated uses of extractSignature would fail because of the use of regex.prototype.match
  • Added support for building on IBM i (PASE) machines
  • Fixed bug where signingCb in rebases would not return error codes to LibGit2 if the signingCb threw or rejected
  • Exposed AnnotatedCommit methods:
    • AnnotatedCommit.prototype.ref
  • Exposed Apply methods:
    • Apply.apply applies a diff to the repository
    • Apply.toTree applies a diff to a tree
  • Exposed Config methods:
    • Config.prototype.deleteEntry
    • Config.prototype.deleteMultivar
    • Config.prototype.getBool
    • Config.prototype.getInt32
    • Config.prototype.getInt64
    • Config.prototype.setMultivar
    • Config.prototype.snapshot
  • Exposed ConfigIterator with methods:
    • ConfigIterator.create
    • ConfigIterator.createGlob
    • ConfigIterator.createMultivar
    • ConfigIterator.prototype.next
  • Exposed Merge methods:
    • Merge.analysis
    • Merge.analysisForRef
  • Expose Remote methods:
    • Remote.createWithOpts
Package Rankings
Top 0.75% on Npmjs.org
Top 20.38% on Repo1.maven.org
Badges
Extracted from project README
Actions Status
Related Projects