git-agent for Java

Conventional commits for Java and Spring projects

git-agent handles Maven and Gradle project layouts, Spring component annotations, and Java class hierarchies to produce conventional commit messages that reflect the enterprise patterns in your codebase.

diff --git a/src/main/java/com/example/order/OrderService.java b/src/main/java/com/example/order/OrderService.java index 1f4a2d3..8c7e9b1 100644 --- a/src/main/java/com/example/order/OrderService.java +++ b/src/main/java/com/example/order/OrderService.java @@ -15,10 +15,18 @@ public class OrderService { private final OrderRepository orderRepository; private final EventPublisher eventPublisher; - public Order createOrder(CreateOrderRequest request) { + @Transactional + public Order createOrder(CreateOrderRequest request) { + if (request.getItems().isEmpty()) { + throw new IllegalArgumentException("order must contain at least one item"); + } Order order = Order.from(request); Order saved = orderRepository.save(order); + eventPublisher.publish(new OrderCreatedEvent(saved.getId())); return saved; } }
git-agent output
feat(order): add transaction boundary and order-created event - annotate createOrder with @Transactional to ensure event and persist are atomic - validate that request contains at least one item before persisting - publish OrderCreatedEvent after successful save for downstream consumers Without the transaction boundary a failed event publish could leave an orphaned order record; wrapping both operations ensures all-or-nothing semantics.
  • Understands Maven multi-module and Gradle subproject layouts for scope detection
  • Recognises Spring annotations (@Service, @Controller, @Repository) for accurate descriptions
  • Groups pom.xml / build.gradle dependency changes into chore commits
  • Handles Lombok-annotated classes and generated boilerplate correctly
brew install gitagenthq/tap/git-agent # inside your Java project git-agent init # detects Maven/Gradle structure and suggests scopes
Does git-agent work with Maven and Gradle equally?
Yes. git-agent detects both build systems from project files and adjusts scope suggestions accordingly.
How does git-agent handle Java boilerplate like getters and setters?
The LLM understands that getter/setter additions are structural changes. It will group them with the class they belong to rather than creating noise commits.
Can git-agent handle changes across many Java classes at once?
Yes. The atomic split planning step analyses all staged hunks together and groups them into logically coherent commits before writing any commit to history.