IGitService.cs 550 B

12345678910111213141516171819202122
  1. namespace RackPeek.Domain.Git;
  2. public enum GitRepoStatus
  3. {
  4. NotAvailable,
  5. Clean,
  6. Dirty
  7. }
  8. public interface IGitService
  9. {
  10. bool IsAvailable { get; }
  11. Task<GitRepoStatus> GetStatusAsync();
  12. Task<string?> CommitAllAsync(string message);
  13. Task<string[]> GetChangedFilesAsync();
  14. Task<string> GetDiffAsync();
  15. Task<string?> RestoreAllAsync();
  16. Task<string> GetCurrentBranchAsync();
  17. Task<GitLogEntry[]> GetLogAsync(int count = 20);
  18. }
  19. public record GitLogEntry(string Hash, string Message, string Author, string Date);