diff --git a/aspnet-core/frameworks/src/Lion.AbpPro.Cli.Core/Lion/AbpPro/Cli/Github/AbpProManager.cs b/aspnet-core/frameworks/src/Lion.AbpPro.Cli.Core/Lion/AbpPro/Cli/Github/AbpProManager.cs index d604e3f9..1532c63c 100644 --- a/aspnet-core/frameworks/src/Lion.AbpPro.Cli.Core/Lion/AbpPro/Cli/Github/AbpProManager.cs +++ b/aspnet-core/frameworks/src/Lion.AbpPro.Cli.Core/Lion/AbpPro/Cli/Github/AbpProManager.cs @@ -13,10 +13,38 @@ public class AbpProManager : ITransientDependency, IAbpProManager _cliOptions = options.Value; } + /// /// 获取最后一个版本 /// public async Task GetLatestSourceCodeVersionAsync() + { + return await Policy.Handle().RetryAsync(5).ExecuteAsync(async () => await GetLatestVersionAsync()); + } + + + /// + /// 检查版本是否存在 + /// + public async Task CheckSourceCodeVersionAsync(string version) + { + return await Policy.Handle().RetryAsync(5).ExecuteAsync(async () => await CheckVersionAsync(version)); + } + + + /// + /// 下载源码 + /// + public async Task DownloadAsync(string version, string outputPath) + { + return await Policy.Handle().RetryAsync(5).ExecuteAsync(async () => await DownloadSourceCodeAsync(version, outputPath)); + } + + + /// + /// 获取最后一个版本 + /// + private async Task GetLatestVersionAsync() { var github = new GitHubClient(new ProductHeaderValue(_cliOptions.RepositoryId)) { @@ -31,7 +59,7 @@ public class AbpProManager : ITransientDependency, IAbpProManager /// /// 检查版本是否存在 /// - public async Task CheckSourceCodeVersionAsync(string version) + private async Task CheckVersionAsync(string version) { try { @@ -49,11 +77,11 @@ public class AbpProManager : ITransientDependency, IAbpProManager return false; } } - + /// /// 下载源码 /// - public async Task DownloadAsync(string version, string outputPath) + private async Task DownloadSourceCodeAsync(string version, string outputPath) { var httpClient = _httpClientFactory.CreateClient(); var uri = new Uri($"https://github.com/{_cliOptions.Owner}/{_cliOptions.RepositoryId}/archive/refs/tags/{version}.zip");