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 anapi
dependency ongrgit-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 libraryorg.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
andplink
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 atags
option to include un-annotated tags (the default isfalse
, buttrue
would match the JGit 4 behavior)- #255 The
OpenOp
now has acredentials
method to be consistent withCloneOp
. - #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 newcredentials
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 |