From e2ffe3597169651c9bec9d926467ba579173ca7a Mon Sep 17 00:00:00 2001 From: wangjun Date: Fri, 21 Jul 2023 21:50:03 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20cli=E6=B7=BB=E5=8A=A0policy=E9=87=8D?= =?UTF-8?q?=E8=AF=95=E6=9C=BA=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Lion/AbpPro/Cli/Github/AbpProManager.cs | 34 +++++++++++++++++-- 1 file changed, 31 insertions(+), 3 deletions(-) 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");