github ajoberstar/grgit 3.0.0-rc.3

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.

Changes since 3.0.0-rc.2

  • #267 grgit-gradle now has an api dependency on grgit-core. POM will include this on the compile classpath
  • #266 JGitUtil.resolveTag no longer fails due to method removed in JGit 5
  • Tested against Gradle 5

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)
  • #255 The OpenOp now has a credentials method to be consistent with CloneOp.
  • #250 Logging when no Git repo is found by the Gradle plugin is downgraded to debug.
  • #262 EXPERIMENTAL Gradle Kotlin DSL compatibility. This project will remain explicitly dedicated to Groovy bindings, so I will not consider it a breaking change if this stops working in the future.

Fixes

None

Deprecations

  • #255 The OpenOp creds parameter was deprecated in favor of the new credentials parameter.

Compatibility

Tested on the following version:

Java Version Gradle Versions
8 3.0, 3.5.1, 4.0, 4.10.2, 5.0-rc-2
9 4.2.1, 4.10.2, 5.0-rc-2
10 4.2.1, 4.10.2, 5.0-rc-2

Don't miss a new grgit release

NewReleases is sending notifications on new releases.