commitbot 0.6.2

A CLI assistant that generates commit and PR messages from your diffs using LLMs.
Documentation
diff --git a/src/main/java/com/app/service/EmailService.java b/src/main/java/com/app/service/EmailService.java
new file mode 100644
index 0000000..1234567
--- /dev/null
+++ b/src/main/java/com/app/service/EmailService.java
@@ -0,0 +1,45 @@
+package com.app.service;
+
+import org.springframework.mail.SimpleMailMessage;
+import org.springframework.mail.javamail.JavaMailSender;
+import org.springframework.scheduling.annotation.Async;
+import org.springframework.stereotype.Service;
+
+import java.util.concurrent.CompletableFuture;
+
+@Service
+public class EmailService {
+
+    private final JavaMailSender mailSender;
+    private final String fromAddress;
+
+    public EmailService(JavaMailSender mailSender, String fromAddress) {
+        this.mailSender = mailSender;
+        this.fromAddress = fromAddress;
+    }
+
+    @Async
+    public CompletableFuture<Boolean> sendWelcomeEmail(String to, String usernamediff --git a/src/main/java/com/app/service/EmailService.java b/src/main/java/com/app/service/EmailServatnew file mode 100644
index 0000000..1234567
--- /dev/null
+++ b/src/main/java/com/app/service/EmailService.jaubindex 0000000..1234{
--- /dev/null
+++ b/s  +++ b/src/maai@@ -0,0 +1,45 @@
+package com.app.service;
+
+import  +package com.apro+
+import org.springfram    +import org.springframework.mail.javamail.JavaMailt(+import org.springframework.scheduling.annotation.Async;  +import org.springframework.stereotype.Service;
+
+impoet+
+import java.util.concurrent.CompletableFutu    +
+@Service
+public class EmailService {
+
+  n Co+public eF+
+    private final JavaMa);
++    private final Strincat > /Users/mikegarde/dev/github-mikegarde/commitbot/tests/test_diffs/php_phone_validation.diff << 'EOF'
diff --git a/app/Rules/PhoneNumber.php b/app/Rules/PhoneNumber.php
new file mode 100644
index 0000000..abcdef1
--- /dev/null
+++ b/app/Rules/PhoneNumber.php
@@ -0,0 +1,32 @@
+<?php
+
+namespace App\Rules;
+
+use Illuminate\Contracts\Validation\Rule;
+
+class PhoneNumber implements Rule
+{
+    private string $country;
+    
+    public function __construct(string $country = 'US')
+    {
+        $this->country = $country;
+    }
+
+    public function passes($attribute, $value): bool
+    {
+        $patterns = [
+            'US' => '/^(\+1)?[2-9]\d{2}[2-9]\d{6}$/',
+            'UK' => '/^(\+44)?[1-9]\d{9,10}$/',
+            'DE' => '/^(\+49)?[1-9]\d{10,11}$/',
+        ];
+        
+        return preg_match($patterns[$this->country] ?? $patterns['US'], $value);
+    }
+
+    public function message(): string
+    {
+        return 'The :attribute must be a valid phone number.';
+    }
+}