diff --git a/src/FilterLists.Agent/AppSettings/GitHub.cs b/src/FilterLists.Agent/AppSettings/GitHub.cs new file mode 100644 index 000000000..5498a40d1 --- /dev/null +++ b/src/FilterLists.Agent/AppSettings/GitHub.cs @@ -0,0 +1,8 @@ +namespace FilterLists.Agent.AppSettings +{ + public class GitHub + { + public string ProductHeaderValue { get; set; } + public string OauthToken { get; set; } + } +} \ No newline at end of file diff --git a/src/FilterLists.Agent/Extensions/ServiceCollectionExtensions.cs b/src/FilterLists.Agent/Extensions/ServiceCollectionExtensions.cs index 1ae25fc6f..6d1c516cd 100644 --- a/src/FilterLists.Agent/Extensions/ServiceCollectionExtensions.cs +++ b/src/FilterLists.Agent/Extensions/ServiceCollectionExtensions.cs @@ -7,6 +7,7 @@ using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; +using Octokit; namespace FilterLists.Agent.Extensions { @@ -25,6 +26,15 @@ public static void RegisterAgentServices(this IServiceCollection services) services.AddMediatR(typeof(Program).Assembly); services.AddHttpClient(); services.AddSingleton(); + services.AddSingleton(s => + { + var gitHubConfig = s.GetService(); + var client = new GitHubClient(new ProductHeaderValue(gitHubConfig.ProductHeaderValue)) + { + Credentials = new Credentials(gitHubConfig.OauthToken) + }; + return client; + }); services.AddTransient(); services.AddTransient(); } @@ -37,6 +47,7 @@ private static void AddConfiguration(this IServiceCollection services) .Build(); services.Configure(config.GetSection(nameof(ApplicationInsights))); services.Configure(config.GetSection(nameof(ConnectionStrings))); + services.Configure(config.GetSection(nameof(GitHub))); } } } \ No newline at end of file diff --git a/src/FilterLists.Agent/FilterLists.Agent.csproj b/src/FilterLists.Agent/FilterLists.Agent.csproj index a56b4668f..7cbe1f085 100644 --- a/src/FilterLists.Agent/FilterLists.Agent.csproj +++ b/src/FilterLists.Agent/FilterLists.Agent.csproj @@ -42,6 +42,7 @@ + diff --git a/src/FilterLists.Agent/appsettings.json b/src/FilterLists.Agent/appsettings.json index ae13d6b2e..c2f265c0b 100644 --- a/src/FilterLists.Agent/appsettings.json +++ b/src/FilterLists.Agent/appsettings.json @@ -4,5 +4,9 @@ }, "ConnectionStrings": { "FilterListsConnection": "" + }, + "GitHub": { + "ProductHeaderValue": "", + "OauthToken:": "" } } \ No newline at end of file