Skip to content

Releases: nodegit/nodegit

v0.27.0 (2020-07-28)

28 Jul 20:19
Compare
Choose a tag to compare

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

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

26 Mar 23:28
Compare
Choose a tag to compare
Pre-release

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

v0.26.5 (2020-02-27)

26 Mar 23:27
Compare
Choose a tag to compare

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

v0.26.4 (2020-01-14)

17 Jan 14:12
Compare
Choose a tag to compare

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

v0.26.3 (2019-12-10)

17 Jan 14:11
Compare
Choose a tag to compare

v0.26.2 (2019-09-26)

17 Jan 14:11
Compare
Choose a tag to compare

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

v0.26.1 (2019-09-16)

17 Sep 15:17
Compare
Choose a tag to compare

v0.26.0 (2019-09-09)

17 Sep 15:17
Compare
Choose a tag to compare

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

v0.25.1 (2019-08-13)

13 Aug 20:50
Compare
Choose a tag to compare

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

v0.25.0 (2019-08-09)

09 Aug 16:47
Compare
Choose a tag to compare

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

Read more