JGit provides a powerful Java API for interacting with Git repositories. However, in a Groovy context it feels very cumbersome, making it harder to express the operations you want to perform without being surrounded by a lot of cruft.
Grgit is a wrapper over JGit that provides a fluent API for interacting with Git repositories in Groovy-based tooling.
With the tooling focus, "porcelain" commands are the primary scope of what is included. Features that require more user interaction (such as resolving merge conflicts) are intentionally excluded.
It also provides a Gradle plugin to easily get a Grgit instance for the build's repository.
NOTE: grgit is available from JCenter or the Gradle Plugin Portal. It is not published to Maven Central.
Please use the repo's issues for all questions, bug reports, and feature requests.
Contributions are very welcome and are accepted through pull requests.
Smaller changes can come directly as a PR, but larger or more complex ones should be discussed in an issue first to flesh out the approach.
If you're interested in implementing a feature on the issues backlog, add a comment to make sure it's not already in progress and for any needed discussion.
Thanks to everyone who has contributed to the library.