diff --git a/src/FilterLists.Agent/Extensions/ServiceCollectionExtensions.cs b/src/FilterLists.Agent/Extensions/ServiceCollectionExtensions.cs index c1e268384..5f72129bd 100644 --- a/src/FilterLists.Agent/Extensions/ServiceCollectionExtensions.cs +++ b/src/FilterLists.Agent/Extensions/ServiceCollectionExtensions.cs @@ -1,4 +1,5 @@ using System; +using System.Net; using System.Net.Http; using CommandLine; using FilterLists.Agent.AppSettings; @@ -13,6 +14,7 @@ using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; using Octokit; +using Polly; using Credentials = Octokit.Credentials; using Repository = LibGit2Sharp.Repository; @@ -76,7 +78,9 @@ private static void AddAgentHttpClient(this IServiceCollection services) { b.PrimaryHandler = new HttpClientHandler {AllowAutoRedirect = false}; b.Build(); - }); + }).AddTransientHttpErrorPolicy(b => + b.OrResult(r => r.StatusCode == HttpStatusCode.TooManyRequests) + .WaitAndRetryAsync(5, i => i * TimeSpan.FromSeconds(3))); } private static void AddGitHubClient(this IServiceCollection services) diff --git a/src/FilterLists.Agent/FilterLists.Agent.csproj b/src/FilterLists.Agent/FilterLists.Agent.csproj index 091683d30..b66b0bdb2 100644 --- a/src/FilterLists.Agent/FilterLists.Agent.csproj +++ b/src/FilterLists.Agent/FilterLists.Agent.csproj @@ -40,12 +40,14 @@ + +