using MarketAlly.GitCommitEditor.Models; namespace MarketAlly.GitCommitEditor.Services; /// /// Manages repository discovery and registration. /// public interface IRepositoryManager { IReadOnlyList Repos { get; } Task> ScanAndRegisterReposAsync(CancellationToken ct = default); Task RegisterRepoAsync(string repoPath); Task UnregisterRepoAsync(string repoIdOrPath); IEnumerable GetBranches(string repoPath); /// /// Checkout a branch in the specified repository. /// /// The repository to switch branches in. /// The name of the branch to checkout. /// True if checkout succeeded, false otherwise. Task CheckoutBranchAsync(ManagedRepo repo, string branchName); /// /// Gets all backup branches in the specified repository. /// IEnumerable GetBackupBranches(string repoPath); /// /// Deletes a local branch. /// bool DeleteBranch(string repoPath, string branchName); /// /// Deletes all backup branches in the specified repository. /// int DeleteAllBackupBranches(string repoPath); }