diff --git a/src/Tgstation.Server.Host/Controllers/AdministrationController.cs b/src/Tgstation.Server.Host/Controllers/AdministrationController.cs
index 104f1736b9..636aa182a2 100644
--- a/src/Tgstation.Server.Host/Controllers/AdministrationController.cs
+++ b/src/Tgstation.Server.Host/Controllers/AdministrationController.cs
@@ -41,9 +41,9 @@ namespace Tgstation.Server.Host.Controllers
const string OctokitException = "Bad GitHub API response, check configuration!";
///
- /// The for the .
+ /// The for the .
///
- readonly IGitHubService gitHubService;
+ readonly IGitHubServiceFactory gitHubServiceFactory;
///
/// The for the .
@@ -85,7 +85,7 @@ namespace Tgstation.Server.Host.Controllers
///
/// The for the .
/// The for the .
- /// The value of .
+ /// The value of .
/// The value of .
/// The value of .
/// The value of .
@@ -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);
diff --git a/src/Tgstation.Server.Host/Core/ServerUpdater.cs b/src/Tgstation.Server.Host/Core/ServerUpdater.cs
index d04386a9b6..570b613b70 100644
--- a/src/Tgstation.Server.Host/Core/ServerUpdater.cs
+++ b/src/Tgstation.Server.Host/Core/ServerUpdater.cs
@@ -17,9 +17,9 @@ namespace Tgstation.Server.Host.Core
sealed class ServerUpdater : IServerUpdater, IServerUpdateExecutor
{
///
- /// The for the .
+ /// The for the .
///
- readonly IGitHubService gitHubService;
+ readonly IGitHubServiceFactory gitHubServiceFactory;
///
/// The for the .
@@ -64,7 +64,7 @@ namespace Tgstation.Server.Host.Core
///
/// Initializes a new instance of the class.
///
- /// The value of .
+ /// The value of .
/// The value of .
/// The value of .
/// The value of .
@@ -72,7 +72,7 @@ namespace Tgstation.Server.Host.Core
/// The containing the value of .
/// The containing the value of .
public ServerUpdater(
- IGitHubService gitHubService,
+ IGitHubServiceFactory gitHubServiceFactory,
IIOManager ioManager,
IFileDownloader fileDownloader,
IServerControl serverControl,
@@ -80,7 +80,7 @@ namespace Tgstation.Server.Host.Core
IOptions generalConfigurationOptions,
IOptions 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)
{
diff --git a/src/Tgstation.Server.Host/Extensions/ServiceCollectionExtensions.cs b/src/Tgstation.Server.Host/Extensions/ServiceCollectionExtensions.cs
index d3f70f6a28..b894c78639 100644
--- a/src/Tgstation.Server.Host/Extensions/ServiceCollectionExtensions.cs
+++ b/src/Tgstation.Server.Host/Extensions/ServiceCollectionExtensions.cs
@@ -105,7 +105,6 @@ namespace Tgstation.Server.Host.Extensions
serviceCollection.AddSingleton();
serviceCollection.AddSingleton(typeof(IGitHubServiceFactory), gitHubServiceFactoryType);
- serviceCollection.AddSingleton(x => x.GetRequiredService().CreateService());
return serviceCollection;
}
diff --git a/src/Tgstation.Server.Host/Utils/GitHub/GitHubClientFactory.cs b/src/Tgstation.Server.Host/Utils/GitHub/GitHubClientFactory.cs
index 5fbd22f2de..2e9abee967 100644
--- a/src/Tgstation.Server.Host/Utils/GitHub/GitHubClientFactory.cs
+++ b/src/Tgstation.Server.Host/Utils/GitHub/GitHubClientFactory.cs
@@ -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,