namespace RackPeek.Domain.Git.UseCases; public class CommitAllUseCase(IGitRepository repo) : IUseCase { public Task ExecuteAsync(string message) { if (!repo.IsAvailable) return Task.FromResult("Git is not available."); try { repo.StageAll(); if (repo.GetStatus() != GitRepoStatus.Dirty) return Task.FromResult(null); repo.Commit(message); return Task.FromResult(null); } catch (Exception ex) { return Task.FromResult($"Commit failed: {ex.Message}"); } } }