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);
}