Files

34 lines
1.2 KiB
C#

using MarketAlly.GitCommitEditor.Models;
using MarketAlly.GitCommitEditor.Models.HistoryHealth;
namespace MarketAlly.GitCommitEditor.Services;
/// <summary>
/// Service for analyzing git repository history health.
/// </summary>
public interface IHistoryHealthAnalyzer
{
/// <summary>
/// Performs a comprehensive health analysis of a repository.
/// </summary>
/// <param name="repoPath">Path to the repository.</param>
/// <param name="options">Analysis options.</param>
/// <param name="progress">Progress reporter.</param>
/// <param name="ct">Cancellation token.</param>
/// <returns>Analysis results.</returns>
Task<HistoryHealthAnalysis> AnalyzeAsync(
string repoPath,
HistoryAnalysisOptions? options = null,
IProgress<AnalysisProgress>? progress = null,
CancellationToken ct = default);
/// <summary>
/// Performs a comprehensive health analysis of a managed repository.
/// </summary>
Task<HistoryHealthAnalysis> AnalyzeAsync(
ManagedRepo repo,
HistoryAnalysisOptions? options = null,
IProgress<AnalysisProgress>? progress = null,
CancellationToken ct = default);
}