using RackPeek.Domain; using RackPeek.Domain.Git; public class PushUseCase(IGitRepository repo) : IUseCase { public Task ExecuteAsync() { if (!repo.IsAvailable) return Task.FromResult("Git is not available."); if (!repo.HasRemote()) return Task.FromResult("No remote configured."); try { try { repo.Push(); } catch { repo.Pull(); repo.Push(); } return Task.FromResult(null); } catch (Exception ex) { return Task.FromResult($"Push failed: {ex.Message}"); } } }