Do not inject IGitHubService, require factory

This commit is contained in:
Jordan Dominion
2023-06-25 21:00:29 -04:00
parent 3be3d81a79
commit 96d65d1f20
4 changed files with 12 additions and 12 deletions
@@ -41,9 +41,9 @@ namespace Tgstation.Server.Host.Controllers
const string OctokitException = "Bad GitHub API response, check configuration!";
/// <summary>
/// The <see cref="IGitHubService"/> for the <see cref="AdministrationController"/>.
/// The <see cref="IGitHubServiceFactory"/> for the <see cref="AdministrationController"/>.
/// </summary>
readonly IGitHubService gitHubService;
readonly IGitHubServiceFactory gitHubServiceFactory;
/// <summary>
/// The <see cref="IServerControl"/> for the <see cref="AdministrationController"/>.
@@ -85,7 +85,7 @@ namespace Tgstation.Server.Host.Controllers
/// </summary>
/// <param name="databaseContext">The <see cref="IDatabaseContext"/> for the <see cref="ApiController"/>.</param>
/// <param name="authenticationContextFactory">The <see cref="IAuthenticationContextFactory"/> for the <see cref="ApiController"/>.</param>
/// <param name="gitHubService">The value of <see cref="gitHubService"/>.</param>
/// <param name="gitHubServiceFactory">The value of <see cref="gitHubServiceFactory"/>.</param>
/// <param name="serverControl">The value of <see cref="serverControl"/>.</param>
/// <param name="serverUpdateInitiator">The value of <see cref="serverUpdateInitiator"/>.</param>
/// <param name="assemblyInformationProvider">The value of <see cref="assemblyInformationProvider"/>.</param>
@@ -97,7 +97,7 @@ namespace Tgstation.Server.Host.Controllers
public AdministrationController(
IDatabaseContext databaseContext,
IAuthenticationContextFactory authenticationContextFactory,
IGitHubService gitHubService,
IGitHubServiceFactory gitHubServiceFactory,
IServerControl serverControl,
IServerUpdateInitiator serverUpdateInitiator,
IAssemblyInformationProvider assemblyInformationProvider,
@@ -112,7 +112,7 @@ namespace Tgstation.Server.Host.Controllers
logger,
true)
{
this.gitHubService = gitHubService ?? throw new ArgumentNullException(nameof(gitHubService));
this.gitHubServiceFactory = gitHubServiceFactory ?? throw new ArgumentNullException(nameof(gitHubServiceFactory));
this.serverControl = serverControl ?? throw new ArgumentNullException(nameof(serverControl));
this.serverUpdateInitiator = serverUpdateInitiator ?? throw new ArgumentNullException(nameof(serverUpdateInitiator));
this.assemblyInformationProvider = assemblyInformationProvider ?? throw new ArgumentNullException(nameof(assemblyInformationProvider));
@@ -143,6 +143,7 @@ namespace Tgstation.Server.Host.Controllers
Uri repoUrl = null;
try
{
var gitHubService = gitHubServiceFactory.CreateService();
var repositoryUrlTask = gitHubService.GetUpdatesRepositoryUrl(cancellationToken);
var releases = await gitHubService.GetTgsReleases(cancellationToken);
@@ -17,9 +17,9 @@ namespace Tgstation.Server.Host.Core
sealed class ServerUpdater : IServerUpdater, IServerUpdateExecutor
{
/// <summary>
/// The <see cref="IGitHubService"/> for the <see cref="ServerUpdater"/>.
/// The <see cref="IGitHubServiceFactory"/> for the <see cref="ServerUpdater"/>.
/// </summary>
readonly IGitHubService gitHubService;
readonly IGitHubServiceFactory gitHubServiceFactory;
/// <summary>
/// The <see cref="IIOManager"/> for the <see cref="ServerUpdater"/>.
@@ -64,7 +64,7 @@ namespace Tgstation.Server.Host.Core
/// <summary>
/// Initializes a new instance of the <see cref="ServerUpdater"/> class.
/// </summary>
/// <param name="gitHubService">The value of <see cref="gitHubService"/>.</param>
/// <param name="gitHubServiceFactory">The value of <see cref="gitHubServiceFactory"/>.</param>
/// <param name="ioManager">The value of <see cref="ioManager"/>.</param>
/// <param name="fileDownloader">The value of <see cref="fileDownloader"/>.</param>
/// <param name="serverControl">The value of <see cref="serverControl"/>.</param>
@@ -72,7 +72,7 @@ namespace Tgstation.Server.Host.Core
/// <param name="generalConfigurationOptions">The <see cref="IOptions{TOptions}"/> containing the value of <see cref="generalConfiguration"/>.</param>
/// <param name="updatesConfigurationOptions">The <see cref="IOptions{TOptions}"/> containing the value of <see cref="updatesConfiguration"/>.</param>
public ServerUpdater(
IGitHubService gitHubService,
IGitHubServiceFactory gitHubServiceFactory,
IIOManager ioManager,
IFileDownloader fileDownloader,
IServerControl serverControl,
@@ -80,7 +80,7 @@ namespace Tgstation.Server.Host.Core
IOptions<GeneralConfiguration> generalConfigurationOptions,
IOptions<UpdatesConfiguration> updatesConfigurationOptions)
{
this.gitHubService = gitHubService ?? throw new ArgumentNullException(nameof(gitHubService));
this.gitHubServiceFactory = gitHubServiceFactory ?? throw new ArgumentNullException(nameof(gitHubServiceFactory));
this.ioManager = ioManager ?? throw new ArgumentNullException(nameof(ioManager));
this.fileDownloader = fileDownloader ?? throw new ArgumentNullException(nameof(fileDownloader));
this.serverControl = serverControl ?? throw new ArgumentNullException(nameof(serverControl));
@@ -288,6 +288,7 @@ namespace Tgstation.Server.Host.Core
{
logger.LogDebug("Looking for GitHub releases version {version}...", newVersion);
var gitHubService = gitHubServiceFactory.CreateService();
var releases = await gitHubService.GetTgsReleases(cancellationToken);
foreach (var kvp in releases)
{
@@ -105,7 +105,6 @@ namespace Tgstation.Server.Host.Extensions
serviceCollection.AddSingleton<IGitHubClientFactory, GitHubClientFactory>();
serviceCollection.AddSingleton(typeof(IGitHubServiceFactory), gitHubServiceFactoryType);
serviceCollection.AddSingleton(x => x.GetRequiredService<IGitHubServiceFactory>().CreateService());
return serviceCollection;
}
@@ -96,7 +96,6 @@ namespace Tgstation.Server.Host.Utils.GitHub
var now = DateTimeOffset.UtcNow;
if (!cacheHit)
{
logger.LogTrace("Creating new GitHubClient...");
client = new GitHubClient(
new ProductHeaderValue(
assemblyInformationProvider.ProductInfoHeaderValue.Product.Name,