grgit

The Groovy way to use Git.

APACHE-2.0 License

Stars
516

Bot releases are visible (Hide)

grgit -

Published by ajoberstar over 5 years ago

Fix for a unintentional breaking change in 3.1.0 for Groovy 2.4 (and Gradle <5) users.

Breaking Changes

None

Enhancements

None

Fixes

  • Restore compatibility with Groovy 2.4 (and by extension Gradle <5)

Deprecations

None

Compatibility

Tested on the following version:

Java Version Gradle Versions
8 3.0, 3.5.1, 4.0, 4.10.3, 5.0, 5.3
11 5.0, 5.3
grgit -

Published by ajoberstar over 5 years ago

This is a feature release providing a few improvements to grgit.log, grgit.show, and grgit.push.

Breaking Changes

None

Enhancements

  • #274 Support specifying push options
  • #272 Throw IllegalArgumentException instead of NPE when log op can't find revstr
  • #273 ShowOp now returns renames with old and new paths, instead of just new paths (Thanks to @mithomas)
  • Upgrade from JGit 5.1.3 to 5.3.0

Fixes

  • Closing ObjectReader used during parsing commits (related to #182)

Deprecations

None

Compatibility

Tested on the following version:

Java Version Gradle Versions
8 3.0, 3.5.1, 4.0, 4.10.3, 5.0, 5.3
11 5.0, 5.3
grgit -

Published by ajoberstar over 5 years ago

This is a feature release providing a few improvements to grgit.log, grgit.show, and grgit.push.

Breaking Changes

None

Enhancements

  • #274 Support specifying push options
  • #272 Throw IllegalArgumentException instead of NPE when log op can't find revstr
  • #273 ShowOp now returns renames with old and new paths, instead of just new paths (Thanks to @mithomas)
  • Upgrade from JGit 5.1.3 to 5.3.0

Fixes

  • Closing ObjectReader used during parsing commits (related to #182)

Deprecations

None

Compatibility

Tested on the following version:

Java Version Gradle Versions
8 3.0, 3.5.1, 4.0, 4.10.3, 5.0, 5.3
11 5.0, 5.3
grgit -

Published by ajoberstar over 5 years ago

This is a feature release providing a few improvements to grgit.log, grgit.show, and grgit.push.

Breaking Changes

None

Enhancements

  • #274 Support specifying push options
  • #272 Throw IllegalArgumentException instead of NPE when log op can't find revstr
  • #273 ShowOp now returns renames with old and new paths, instead of just new paths (Thanks to @mithomas)
  • Upgrade from JGit 5.1.3 to 5.3.0

Fixes

  • Closing ObjectReader used during parsing commits (related to #182)

Deprecations

None

Compatibility

Tested on the following version:

Java Version Gradle Versions
8 3.0, 3.5.1, 4.0, 4.10.3, 5.0, 5.3
11 5.0, 5.3
grgit -

Published by ajoberstar almost 6 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.

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
grgit -

Published by ajoberstar almost 6 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
grgit -

Published by ajoberstar about 6 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)
  • #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
9 4.2.1, 4.10.2
10 4.2.1, 4.10.2
grgit -

Published by ajoberstar over 6 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
grgit -

Published by ajoberstar over 6 years ago

Small feature release to make improvements to existing operations.

Breaking Changes

None

Enhancements

  • #247 Detect when revert commands fail and throw an exception (thanks @gavinbunney)
  • #238 Ensure unique abbreviatedId on Commit

Fixes

None

Deprecations

None

Compatibility

Tested on the following version:

Java Version Gradle Versions
8 3.0, 3.5.1, 4.0, 4.8-rc-3
9 4.2.1, 4.8-rc-3
10 4.2.1, 4.8-rc-3
grgit -

Published by ajoberstar over 6 years ago

Small feature release to make improvements to existing operations.

Breaking Changes

None

Enhancements

  • #247 Detect when revert commands fail and throw an exception (thanks @gavinbunney)
  • #238 Ensure unique abbreviatedId on Commit

Fixes

None

Deprecations

None

Compatibility

Tested on the following version:

Java Version Gradle Versions
8 3.0, 3.5.1, 4.0, 4.8-rc-3
9 4.2.1, 4.8-rc-3
10 4.2.1, 4.8-rc-3
grgit -

Published by ajoberstar over 6 years ago

Fix release to publish static dependencies to the Gradle Plugin Portal. Previously static ones were being published to JCenter, but dynamic to the Portal. This caused a JGit 5 dependency to get pulled in which contains breaking changes.

Breaking Changes

None

Enhancements

None

Fixes

  • #229 Publish static versions in POM on Gradle Plugin Portal to avoid pulling in breaking JGit 5 version

Deprecations

None

Compatibility

Tested on the following version:

Java Version Gradle Versions
8 3.0, 3.5.1, 4.0, 4.8-rc-3
9 4.2.1, 4.8-rc-3
10 4.2.1, 4.8-rc-3
grgit -

Published by ajoberstar over 6 years ago

Fix release to publish static dependencies to the Gradle Plugin Portal. Previously static ones were being published to JCenter, but dynamic to the Portal. This caused a JGit 5 dependency to get pulled in which contains breaking changes.

Breaking Changes

None

Enhancements

None

Fixes

  • #229 Publish static versions in POM on Gradle Plugin Portal to avoid pulling in breaking JGit 5 version

Deprecations

None

Compatibility

Tested on the following version:

Java Version Gradle Versions
8 3.0, 3.5.1, 4.0, 4.8-rc-3
9 4.2.1, 4.8-rc-3
10 4.2.1, 4.8-rc-3
grgit -

Published by ajoberstar over 6 years ago

Fix release to publish static dependencies to the Gradle Plugin Portal. Previously static ones were being published to JCenter, but dynamic to the Portal. This caused a JGit 5 dependency to get pulled in which contains breaking changes.

Breaking Changes

None

Enhancements

None

Fixes

  • #229 Publish static versions in POM on Gradle Plugin Portal to avoid pulling in breaking JGit 5 version

Deprecations

None

Compatibility

Tested on the following version:

Java Version Gradle Versions
8 3.0 through 4.7
9 4.2.1. through 4.7
10 4.2.1 through 4.7
grgit -

Published by ajoberstar over 6 years ago

Fix release to publish static dependencies to the Gradle Plugin Portal. Previously static ones were being published to JCenter, but dynamic to the Portal. This caused a JGit 5 dependency to get pulled in which contains breaking changes.

Breaking Changes

None

Enhancements

None

Fixes

  • #229 Publish static versions in POM on Gradle Plugin Portal to avoid pulling in breaking JGit 5 version

Deprecations

None

Compatibility

Tested on the following version:

Java Version Gradle Versions
8 3.0 through 4.7
9 4.2.1. through 4.7
10 4.2.1 through 4.7
grgit -

Published by ajoberstar over 6 years ago

Feature release adding opt-in support of SSH via external ssh or plink commands as an alternative to JSch (which has been pretty problematic for people). The grgit-authentication documentation has been updated to show how to use this. However, note that if your remote is on Git 2.14+ you'll likely encounter JGit#529463 causing your program to hang. Hope is that this will be fixed in JGit's next release.

Rejected pushes now throw an exception instead of failing silently.

Additionally, a Consumer variant was added to all operations to make Java usage of Grgit easier.

grgit.add({ op ->
  op.setPatterns(Arrays.asList("."));
});

Breaking Changes

None

Enhancements

  • #206 Support external SSH commands as an alternative to JSch
  • Support Consumer as an alternative to Closure or Map syntax on all operations

Fixes

  • #216 Push used to fail silently when pre-receive hooks declined the push. This will now throw an exception.

Deprecations

None

Compatibility

Tested on the following version:

Java Version Gradle Versions
8 3.0 through 4.7
9 4.2.1. through 4.7
10 4.2.1 through 4.7
grgit -

Published by ajoberstar over 6 years ago

Feature release adding opt-in support of SSH via external ssh or plink commands as an alternative to JSch (which has been pretty problematic for people). The grgit-authentication documentation has been updated to show how to use this. However, note that if your remote is on Git 2.14+ you'll likely encounter JGit#529463 causing your program to hang. Hope is that this will be fixed in JGit's next release.

Rejected pushes now throw an exception instead of failing silently.

Additionally, a Consumer variant was added to all operations to make Java usage of Grgit easier.

grgit.add({ op ->
  op.setPatterns(Arrays.asList("."));
});

Changes since beta.2 The #216 fix was added.

Breaking Changes

None

Enhancements

  • #206 Support external SSH commands as an alternative to JSch
  • Support Consumer as an alternative to Closure or Map syntax on all operations

Fixes

  • #216 Push used to fail silently when pre-receive hooks declined the push. This will now throw an exception.

Deprecations

None

Compatibility

Tested on the following version:

Java Version Gradle Versions
8 3.0 through 4.7
9 4.2.1. through 4.7
10 4.2.1 through 4.7
grgit -

Published by ajoberstar over 6 years ago

Feature release adding opt-in support of SSH via external ssh or plink commands as an alternative to JSch (which has been pretty problematic for people). The grgit-authentication documentation has been updated to show how to use this. However, note that if your remote is on Git 2.14+ you'll likely encounter JGit#529463 causing your program to hang. Hope is that this will be fixed in JGit's next release.

Additionally, a Consumer variant was added to all operations to make Java usage of Grgit easier.

grgit.add({ op ->
  op.setPatterns(Arrays.asList("."));
});

Changes since beta.1 The consumer variants were generated with the incorrect generic types making them unusable. This is fixed now.

Breaking Changes

None

Enhancements

  • #206 Support external SSH commands as an alternative to JSch
  • Support Consumer as an alternative to Closure or Map syntax on all operations

Fixes

None

Deprecations

None

Compatibility

Tested on the following version:

Java Version Gradle Versions
8 3.0 through 4.7-rc-2
9 4.2.1. through 4.7-rc-2
10 4.2.1 through 4.7-rc-2
grgit -

Published by ajoberstar over 6 years ago

Fix release to make lsremote respect any authentication settings you've made.

Breaking Changes

None

Enhancements

None

Fixes

  • #222 lsremote() fails to use credentials configured on repository

Deprecations

None

Compatibility

Tested on the following version:

Java Version Gradle Versions
8 3.0 through 4.7-rc-1
9 4.2.1. through 4.7-rc-1
10 4.2.1 through 4.6
grgit -

Published by ajoberstar over 6 years ago

Feature release adding opt-in support of SSH via external ssh or plink commands as an alternative to JSch (which has been pretty problematic for people). The grgit-authentication documentation has been updated to show how to use this. However, note that if your remote is on Git 2.14+ you'll likely encounter JGit#470555 causing your program to hang. Hope is that this will be fixed in JGit's next release.

Additionally, a Consumer variant was added to all operations to make Java usage of Grgit easier.

grgit.add({ op ->
  op.setPatterns(Arrays.asList("."));
});

Breaking Changes

None

Enhancements

  • #206 Support external SSH commands as an alternative to JSch
  • Support Consumer as an alternative to Closure or Map syntax on all operations

Fixes

None

Deprecations

None

Compatibility

Tested on the following version:

Java Version Gradle Versions
8 3.0 through 4.7-rc-2
9 4.2.1. through 4.7-rc-2
10 4.2.1 through 4.7-rc-2
grgit -

Published by ajoberstar over 6 years ago

Fix release to make lsremote respect any authentication settings you've made.

Breaking Changes

None

Enhancements

None

Fixes

  • #222 lsremote() fails to use credentials configured on repository

Deprecations

None

Compatibility

Tested on the following version:

Java Version Gradle Versions
8 3.0 through 4.7-rc-1
9 4.2.1. through 4.7-rc-1
10 4.2.1 through 4.6