github ajoberstar/grgit 3.0.0-beta.1

latest releases: 5.3.0, 5.2.2, 5.2.2-rc.2...
pre-release6 years ago

This is a breaking release, supporting JGit 5 and Groovy 2.5.

However, the more significant change is the removal of some previous authentication options. Up until Grgit 3, we leveraged JGit's default JSch support for SSH communication. This is a Java implementation of the SSH protocol. Additionally, the JSch agent proxy library was used to support ssh-agent and Pageant. Those features caused numerous headaches with the differences between how the Java implementation and system SSH worked. JSch and JSch agent proxy support is now removed.

All SSH communication will leverage the command referenced by the GIT_SSH env var or an ssh or plink executable on your PATH.

Review the authentication documentation for details.

Given this is a major change, please open an issue to provide feedback if you feel this change will not work for your needs. I plan to leave 3.0.0 in a pre-release form for a while.

Breaking Changes

  • #233 Upgrade to JGit 5. Generally, this should not be breaking, but there are some behavior changes documented.
  • Maven coordinates have changed to break the Core and Gradle features into their own dependencies:
    • org.ajoberstar.grgit:grgit-core:<version> if you're using as a library
    • org.ajoberstar.grgit:grgit-gradle:<version> if you're using from Gradle (the plugin ID, org.ajoberstar.grgit, has not changed)
  • #244 Interactive credentials (i.e. the AWT pop-up window) is no longer supported.
  • #245 JSch agent support has been removed. System ssh and plink commands are now used instead of JSch.

Enhancements

  • #237 Groovy 2.5 is now supported (Groovy 2.4 is still compatible)
  • grgit.describe() now supports a tags option to include un-annotated tags (the default is false, but true would match the JGit 4 behavior)

Fixes

None

Deprecations

None

Compatibility

Tested on the following version:

Java Version Gradle Versions
8 3.0, 3.5.1, 4.0, 4.8.1
9 4.2.1, 4.8.1
10 4.2.1, 4.8.1

Don't miss a new grgit release

NewReleases is sending notifications on new releases.