diff --git a/_repository_controller_8cs_source.html b/_repository_controller_8cs_source.html
index 2f7a4c253a..95bc48e526 100644
--- a/_repository_controller_8cs_source.html
+++ b/_repository_controller_8cs_source.html
@@ -762,175 +762,198 @@ $(function() {
742 foreach (var I
in search)
744 revInfoWereLookingFor = dbPull
- 745 .Where(x => model.NewTestMerges.Any(z =>
- 746 x.PrimaryTestMerge.Number == z.Number
- 747 && x.PrimaryTestMerge.PullRequestRevision.StartsWith(z.PullRequestRevision, StringComparison.Ordinal)
- 748 && (x.PrimaryTestMerge.Comment?.Trim().ToUpperInvariant() == z.Comment?.Trim().ToUpperInvariant() || z.Comment ==
null))
- 749 && x.ActiveTestMerges.Select(y => y.TestMerge).All(y => appliedTestMergeIds.Contains(y.Id)))
-
-
- 752 if (revInfoWereLookingFor !=
null)
-
- 754 lastGoodRevInfo = revInfoWereLookingFor;
- 755 appliedTestMergeIds.Add(revInfoWereLookingFor.PrimaryTestMerge.Id);
-
-
-
-
-
- 761 while (revInfoWereLookingFor !=
null && search.Count > 0);
+ 745 .Where(testRevInfo =>
+
+ 747 var testMergeMatch = model.NewTestMerges.Any(testTestMerge =>
+
+ 749 var numberMatch = testRevInfo.PrimaryTestMerge.Number == testTestMerge.Number;
+
+
+
+ 753 var shaMatch = testRevInfo.PrimaryTestMerge.PullRequestRevision.StartsWith(
+ 754 testTestMerge.PullRequestRevision,
+ 755 StringComparison.Ordinal);
+
+
+
+ 759 var commentMatch = testRevInfo.PrimaryTestMerge.Comment == testTestMerge.Comment;
+
+
- 763 revInfoWereLookingFor = lastGoodRevInfo;
- 764 needToApplyRemainingPrs = search.Count != 0;
- 765 if (needToApplyRemainingPrs)
- 766 model.NewTestMerges = search;
-
- 768 else if (revInfoWereLookingFor !=
null)
- 769 needToApplyRemainingPrs =
false;
-
-
-
- 773 if (revInfoWereLookingFor !=
null)
-
-
- 776 Logger.LogDebug(
"Reusing existing SHA {0}...", revInfoWereLookingFor.CommitSha);
- 777 await repo.ResetToSha(revInfoWereLookingFor.CommitSha, NextProgressReporter(), cancellationToken).ConfigureAwait(
false);
- 778 lastRevisionInfo = revInfoWereLookingFor;
-
-
- 781 if (needToApplyRemainingPrs)
-
- 783 foreach (var I
in model.NewTestMerges)
-
- 785 Octokit.PullRequest pr =
null;
- 786 string errorMessage =
null;
-
- 788 if (lastRevisionInfo.ActiveTestMerges.Any(x => x.TestMerge.Number == I.Number))
-
-
- 791 Exception exception =
null;
-
-
-
- 795 if (prMap ==
null || !prMap.TryGetValue(I.Number, out pr))
- 796 pr = await gitHubClient
-
- 798 .Get(repoOwner, repoName, I.Number)
-
- 800 .ConfigureAwait(
false);
-
- 802 catch (Octokit.RateLimitExceededException ex)
-
-
- 805 errorMessage =
"REMOTE API ERROR: RATE LIMITED";
-
-
- 808 catch (Octokit.AuthorizationException ex)
-
- 810 errorMessage =
"REMOTE API ERROR: BAD CREDENTIALS";
-
-
- 813 catch (Octokit.NotFoundException ex)
-
-
- 816 errorMessage =
"REMOTE API ERROR: PULL REQUEST NOT FOUND";
-
-
-
- 820 if (exception !=
null)
- 821 Logger.LogWarning(exception,
"Error retrieving pull request metadata!");
-
-
- 824 if (I.PullRequestRevision ==
null && pr !=
null)
- 825 I.PullRequestRevision = pr.Head.Sha;
-
- 827 var mergeResult = await repo.AddTestMerge(
-
-
- 830 currentModel.CommitterEmail,
- 831 currentModel.AccessUser,
- 832 currentModel.AccessToken,
- 833 NextProgressReporter(),
- 834 ct).ConfigureAwait(
false);
-
- 836 if (!mergeResult.HasValue)
-
-
-
- 840 $
"Merge of PR #{I.Number} at {I.PullRequestRevision.Substring(0, 7)} conflicted!"));
-
-
-
-
- 845 var tm =
new Models.TestMerge
-
- 847 Author = pr?.User.Login ?? errorMessage,
- 848 BodyAtMerge = pr?.Body ?? errorMessage ?? String.Empty,
- 849 MergedAt = DateTimeOffset.Now,
- 850 TitleAtMerge = pr?.Title ?? errorMessage ?? String.Empty,
-
-
- 853 PullRequestRevision = I.PullRequestRevision,
- 854 Url = pr?.HtmlUrl ?? errorMessage
-
-
- 857 await UpdateRevInfo(tm).ConfigureAwait(
false);
-
-
-
-
- 862 var currentHead = repo.Head;
- 863 if (startSha != currentHead || (postUpdateSha !=
null && postUpdateSha != currentHead))
-
- 865 await repo.Sychronize(currentModel.AccessUser, currentModel.AccessToken, currentModel.CommitterName, currentModel.CommitterEmail, NextProgressReporter(),
false, ct).ConfigureAwait(
false);
- 866 await UpdateRevInfo().ConfigureAwait(
false);
-
-
-
-
-
-
-
-
-
-
-
- 878 await repo.CheckoutObject(startReference ?? startSha, NextProgressReporter(),
default).ConfigureAwait(
false);
- 879 if (startReference !=
null && repo.Head != startSha)
- 880 await repo.ResetToSha(startSha, NextProgressReporter(),
default).ConfigureAwait(
false);
-
- 882 progressReporter(100);
-
-
-
-
- 887 var job =
new Models.Job
-
- 889 Description = description,
-
-
-
-
-
-
-
-
-
- 899 (core, databaseContextFactory, paramJob, progressReporter, ct) =>
- 900 UpdateCallbackThatDesperatelyNeedsRefactoring(
-
- 902 databaseContextFactory,
-
-
-
- 906 .ConfigureAwait(
false);
-
- 908 api.ActiveJob = job.ToApi();
- 909 return Accepted(api);
-
- 911 #pragma warning restore CA1502, CA1505
-
-
+
+
+
+ 766 var previousTestMergesMatch = testRevInfo
+
+ 768 .Select(previousRevInfoTestMerge => previousRevInfoTestMerge.TestMerge)
+ 769 .All(previousTestMerge => appliedTestMergeIds.Contains(previousTestMerge.Id));
+
+ 771 return previousTestMergesMatch;
+
+
+
+ 775 if (revInfoWereLookingFor !=
null)
+
+ 777 lastGoodRevInfo = revInfoWereLookingFor;
+ 778 appliedTestMergeIds.Add(revInfoWereLookingFor.PrimaryTestMerge.Id);
+
+
+
+
+
+ 784 while (revInfoWereLookingFor !=
null && search.Count > 0);
+
+ 786 revInfoWereLookingFor = lastGoodRevInfo;
+ 787 needToApplyRemainingPrs = search.Count != 0;
+ 788 if (needToApplyRemainingPrs)
+ 789 model.NewTestMerges = search;
+
+ 791 else if (revInfoWereLookingFor !=
null)
+ 792 needToApplyRemainingPrs =
false;
+
+
+
+ 796 if (revInfoWereLookingFor !=
null)
+
+
+ 799 Logger.LogDebug(
"Reusing existing SHA {0}...", revInfoWereLookingFor.CommitSha);
+ 800 await repo.ResetToSha(revInfoWereLookingFor.CommitSha, NextProgressReporter(), cancellationToken).ConfigureAwait(
false);
+ 801 lastRevisionInfo = revInfoWereLookingFor;
+
+
+ 804 if (needToApplyRemainingPrs)
+
+ 806 foreach (var I
in model.NewTestMerges)
+
+ 808 Octokit.PullRequest pr =
null;
+ 809 string errorMessage =
null;
+
+ 811 if (lastRevisionInfo.ActiveTestMerges.Any(x => x.TestMerge.Number == I.Number))
+
+
+ 814 Exception exception =
null;
+
+
+
+ 818 if (prMap ==
null || !prMap.TryGetValue(I.Number, out pr))
+ 819 pr = await gitHubClient
+
+ 821 .Get(repoOwner, repoName, I.Number)
+
+ 823 .ConfigureAwait(
false);
+
+ 825 catch (Octokit.RateLimitExceededException ex)
+
+
+ 828 errorMessage =
"REMOTE API ERROR: RATE LIMITED";
+
+
+ 831 catch (Octokit.AuthorizationException ex)
+
+ 833 errorMessage =
"REMOTE API ERROR: BAD CREDENTIALS";
+
+
+ 836 catch (Octokit.NotFoundException ex)
+
+
+ 839 errorMessage =
"REMOTE API ERROR: PULL REQUEST NOT FOUND";
+
+
+
+ 843 if (exception !=
null)
+ 844 Logger.LogWarning(exception,
"Error retrieving pull request metadata!");
+
+
+ 847 if (I.PullRequestRevision ==
null && pr !=
null)
+ 848 I.PullRequestRevision = pr.Head.Sha;
+
+ 850 var mergeResult = await repo.AddTestMerge(
+
+
+ 853 currentModel.CommitterEmail,
+ 854 currentModel.AccessUser,
+ 855 currentModel.AccessToken,
+ 856 NextProgressReporter(),
+ 857 ct).ConfigureAwait(
false);
+
+ 859 if (!mergeResult.HasValue)
+
+
+
+ 863 $
"Merge of PR #{I.Number} at {I.PullRequestRevision.Substring(0, 7)} conflicted!"));
+
+
+
+
+ 868 var tm =
new Models.TestMerge
+
+ 870 Author = pr?.User.Login ?? errorMessage,
+ 871 BodyAtMerge = pr?.Body ?? errorMessage ?? String.Empty,
+ 872 MergedAt = DateTimeOffset.Now,
+ 873 TitleAtMerge = pr?.Title ?? errorMessage ?? String.Empty,
+
+
+ 876 PullRequestRevision = I.PullRequestRevision,
+ 877 Url = pr?.HtmlUrl ?? errorMessage
+
+
+ 880 await UpdateRevInfo(tm).ConfigureAwait(
false);
+
+
+
+
+ 885 var currentHead = repo.Head;
+ 886 if (startSha != currentHead || (postUpdateSha !=
null && postUpdateSha != currentHead))
+
+ 888 await repo.Sychronize(currentModel.AccessUser, currentModel.AccessToken, currentModel.CommitterName, currentModel.CommitterEmail, NextProgressReporter(),
false, ct).ConfigureAwait(
false);
+ 889 await UpdateRevInfo().ConfigureAwait(
false);
+
+
+
+
+
+
+
+
+
+
+
+ 901 await repo.CheckoutObject(startReference ?? startSha, NextProgressReporter(),
default).ConfigureAwait(
false);
+ 902 if (startReference !=
null && repo.Head != startSha)
+ 903 await repo.ResetToSha(startSha, NextProgressReporter(),
default).ConfigureAwait(
false);
+
+ 905 progressReporter(100);
+
+
+
+
+ 910 var job =
new Models.Job
+
+ 912 Description = description,
+
+
+
+
+
+
+
+
+
+ 922 (core, databaseContextFactory, paramJob, progressReporter, ct) =>
+ 923 UpdateCallbackThatDesperatelyNeedsRefactoring(
+
+ 925 databaseContextFactory,
+
+
+
+ 929 .ConfigureAwait(
false);
+
+ 931 api.ActiveJob = job.ToApi();
+ 932 return Accepted(api);
+
+ 934 #pragma warning restore CA1502, CA1505
+
+
readonly IInstanceManager instanceManager
The IInstanceManager for the InstanceRequiredController.
Represents a git repository
diff --git a/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_repository_controller.html b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_repository_controller.html
index 6f6d1887e5..bbcc87750e 100644
--- a/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_repository_controller.html
+++ b/class_tgstation_1_1_server_1_1_host_1_1_controllers_1_1_repository_controller.html
@@ -1261,172 +1261,195 @@ Here is the call graph for this function:
742 foreach (var I
in search)
744 revInfoWereLookingFor = dbPull
-
- 746 x.PrimaryTestMerge.Number == z.Number
- 747 && x.PrimaryTestMerge.PullRequestRevision.StartsWith(z.PullRequestRevision, StringComparison.Ordinal)
- 748 && (x.PrimaryTestMerge.Comment?.Trim().ToUpperInvariant() == z.Comment?.Trim().ToUpperInvariant() || z.Comment ==
null))
- 749 && x.ActiveTestMerges.Select(y => y.TestMerge).All(y => appliedTestMergeIds.Contains(y.Id)))
-
-
- 752 if (revInfoWereLookingFor !=
null)
-
- 754 lastGoodRevInfo = revInfoWereLookingFor;
- 755 appliedTestMergeIds.Add(revInfoWereLookingFor.PrimaryTestMerge.Id);
-
-
-
-
-
- 761 while (revInfoWereLookingFor !=
null && search.Count > 0);
+ 745 .Where(testRevInfo =>
+
+ 747 var testMergeMatch = model.
NewTestMerges.Any(testTestMerge =>
+
+ 749 var numberMatch = testRevInfo.PrimaryTestMerge.Number == testTestMerge.Number;
+
+
+
+ 753 var shaMatch = testRevInfo.PrimaryTestMerge.PullRequestRevision.StartsWith(
+ 754 testTestMerge.PullRequestRevision,
+ 755 StringComparison.Ordinal);
+
+
+
+ 759 var commentMatch = testRevInfo.PrimaryTestMerge.Comment == testTestMerge.Comment;
+
+
- 763 revInfoWereLookingFor = lastGoodRevInfo;
- 764 needToApplyRemainingPrs = search.Count != 0;
- 765 if (needToApplyRemainingPrs)
-
-
- 768 else if (revInfoWereLookingFor !=
null)
- 769 needToApplyRemainingPrs =
false;
-
-
-
- 773 if (revInfoWereLookingFor !=
null)
-
-
- 776 Logger.LogDebug(
"Reusing existing SHA {0}...", revInfoWereLookingFor.CommitSha);
- 777 await repo.ResetToSha(revInfoWereLookingFor.CommitSha, NextProgressReporter(), cancellationToken).ConfigureAwait(
false);
- 778 lastRevisionInfo = revInfoWereLookingFor;
-
-
- 781 if (needToApplyRemainingPrs)
-
-
-
- 785 Octokit.PullRequest pr =
null;
- 786 string errorMessage =
null;
-
- 788 if (lastRevisionInfo.ActiveTestMerges.Any(x => x.TestMerge.Number == I.Number))
-
-
- 791 Exception exception =
null;
-
-
-
- 795 if (prMap ==
null || !prMap.TryGetValue(I.Number, out pr))
- 796 pr = await gitHubClient
-
- 798 .Get(repoOwner, repoName, I.Number)
-
- 800 .ConfigureAwait(
false);
-
- 802 catch (Octokit.RateLimitExceededException ex)
-
-
- 805 errorMessage =
"REMOTE API ERROR: RATE LIMITED";
-
-
- 808 catch (Octokit.AuthorizationException ex)
-
- 810 errorMessage =
"REMOTE API ERROR: BAD CREDENTIALS";
-
-
- 813 catch (Octokit.NotFoundException ex)
-
-
- 816 errorMessage =
"REMOTE API ERROR: PULL REQUEST NOT FOUND";
-
-
-
- 820 if (exception !=
null)
- 821 Logger.LogWarning(exception,
"Error retrieving pull request metadata!");
-
-
- 824 if (I.PullRequestRevision ==
null && pr !=
null)
- 825 I.PullRequestRevision = pr.Head.Sha;
-
- 827 var mergeResult = await repo.AddTestMerge(
-
-
- 830 currentModel.CommitterEmail,
- 831 currentModel.AccessUser,
- 832 currentModel.AccessToken,
- 833 NextProgressReporter(),
- 834 ct).ConfigureAwait(
false);
-
- 836 if (!mergeResult.HasValue)
-
-
-
- 840 $
"Merge of PR #{I.Number} at {I.PullRequestRevision.Substring(0, 7)} conflicted!"));
-
-
-
-
- 845 var tm =
new Models.TestMerge
-
- 847 Author = pr?.User.Login ?? errorMessage,
- 848 BodyAtMerge = pr?.Body ?? errorMessage ?? String.Empty,
- 849 MergedAt = DateTimeOffset.Now,
- 850 TitleAtMerge = pr?.Title ?? errorMessage ?? String.Empty,
-
-
- 853 PullRequestRevision = I.PullRequestRevision,
- 854 Url = pr?.HtmlUrl ?? errorMessage
-
-
- 857 await UpdateRevInfo(tm).ConfigureAwait(
false);
-
-
-
-
- 862 var currentHead = repo.Head;
- 863 if (startSha != currentHead || (postUpdateSha !=
null && postUpdateSha != currentHead))
-
- 865 await repo.Sychronize(currentModel.AccessUser, currentModel.AccessToken, currentModel.CommitterName, currentModel.CommitterEmail, NextProgressReporter(),
false, ct).ConfigureAwait(
false);
- 866 await UpdateRevInfo().ConfigureAwait(
false);
-
-
-
-
-
-
-
-
-
-
-
- 878 await repo.CheckoutObject(startReference ?? startSha, NextProgressReporter(),
default).ConfigureAwait(
false);
- 879 if (startReference !=
null && repo.Head != startSha)
- 880 await repo.ResetToSha(startSha, NextProgressReporter(),
default).ConfigureAwait(
false);
-
- 882 progressReporter(100);
-
-
-
-
- 887 var job =
new Models.Job
-
- 889 Description = description,
-
-
-
-
-
-
-
-
-
- 899 (core, databaseContextFactory, paramJob, progressReporter, ct) =>
- 900 UpdateCallbackThatDesperatelyNeedsRefactoring(
-
- 902 databaseContextFactory,
-
-
-
- 906 .ConfigureAwait(
false);
-
- 908 api.ActiveJob = job.ToApi();
- 909 return Accepted(api);
-
+
+
+
+ 766 var previousTestMergesMatch = testRevInfo
+
+ 768 .Select(previousRevInfoTestMerge => previousRevInfoTestMerge.TestMerge)
+ 769 .All(previousTestMerge => appliedTestMergeIds.Contains(previousTestMerge.Id));
+
+ 771 return previousTestMergesMatch;
+
+
+
+ 775 if (revInfoWereLookingFor !=
null)
+
+ 777 lastGoodRevInfo = revInfoWereLookingFor;
+ 778 appliedTestMergeIds.Add(revInfoWereLookingFor.PrimaryTestMerge.Id);
+
+
+
+
+
+ 784 while (revInfoWereLookingFor !=
null && search.Count > 0);
+
+ 786 revInfoWereLookingFor = lastGoodRevInfo;
+ 787 needToApplyRemainingPrs = search.Count != 0;
+ 788 if (needToApplyRemainingPrs)
+
+
+ 791 else if (revInfoWereLookingFor !=
null)
+ 792 needToApplyRemainingPrs =
false;
+
+
+
+ 796 if (revInfoWereLookingFor !=
null)
+
+
+ 799 Logger.LogDebug(
"Reusing existing SHA {0}...", revInfoWereLookingFor.CommitSha);
+ 800 await repo.ResetToSha(revInfoWereLookingFor.CommitSha, NextProgressReporter(), cancellationToken).ConfigureAwait(
false);
+ 801 lastRevisionInfo = revInfoWereLookingFor;
+
+
+ 804 if (needToApplyRemainingPrs)
+
+
+
+ 808 Octokit.PullRequest pr =
null;
+ 809 string errorMessage =
null;
+
+ 811 if (lastRevisionInfo.ActiveTestMerges.Any(x => x.TestMerge.Number == I.Number))
+
+
+ 814 Exception exception =
null;
+
+
+
+ 818 if (prMap ==
null || !prMap.TryGetValue(I.Number, out pr))
+ 819 pr = await gitHubClient
+
+ 821 .Get(repoOwner, repoName, I.Number)
+
+ 823 .ConfigureAwait(
false);
+
+ 825 catch (Octokit.RateLimitExceededException ex)
+
+
+ 828 errorMessage =
"REMOTE API ERROR: RATE LIMITED";
+
+
+ 831 catch (Octokit.AuthorizationException ex)
+
+ 833 errorMessage =
"REMOTE API ERROR: BAD CREDENTIALS";
+
+
+ 836 catch (Octokit.NotFoundException ex)
+
+
+ 839 errorMessage =
"REMOTE API ERROR: PULL REQUEST NOT FOUND";
+
+
+
+ 843 if (exception !=
null)
+ 844 Logger.LogWarning(exception,
"Error retrieving pull request metadata!");
+
+
+ 847 if (I.PullRequestRevision ==
null && pr !=
null)
+ 848 I.PullRequestRevision = pr.Head.Sha;
+
+ 850 var mergeResult = await repo.AddTestMerge(
+
+
+ 853 currentModel.CommitterEmail,
+ 854 currentModel.AccessUser,
+ 855 currentModel.AccessToken,
+ 856 NextProgressReporter(),
+ 857 ct).ConfigureAwait(
false);
+
+ 859 if (!mergeResult.HasValue)
+
+
+
+ 863 $
"Merge of PR #{I.Number} at {I.PullRequestRevision.Substring(0, 7)} conflicted!"));
+
+
+
+
+ 868 var tm =
new Models.TestMerge
+
+ 870 Author = pr?.User.Login ?? errorMessage,
+ 871 BodyAtMerge = pr?.Body ?? errorMessage ?? String.Empty,
+ 872 MergedAt = DateTimeOffset.Now,
+ 873 TitleAtMerge = pr?.Title ?? errorMessage ?? String.Empty,
+
+
+ 876 PullRequestRevision = I.PullRequestRevision,
+ 877 Url = pr?.HtmlUrl ?? errorMessage
+
+
+ 880 await UpdateRevInfo(tm).ConfigureAwait(
false);
+
+
+
+
+ 885 var currentHead = repo.Head;
+ 886 if (startSha != currentHead || (postUpdateSha !=
null && postUpdateSha != currentHead))
+
+ 888 await repo.Sychronize(currentModel.AccessUser, currentModel.AccessToken, currentModel.CommitterName, currentModel.CommitterEmail, NextProgressReporter(),
false, ct).ConfigureAwait(
false);
+ 889 await UpdateRevInfo().ConfigureAwait(
false);
+
+
+
+
+
+
+
+
+
+
+
+ 901 await repo.CheckoutObject(startReference ?? startSha, NextProgressReporter(),
default).ConfigureAwait(
false);
+ 902 if (startReference !=
null && repo.Head != startSha)
+ 903 await repo.ResetToSha(startSha, NextProgressReporter(),
default).ConfigureAwait(
false);
+
+ 905 progressReporter(100);
+
+
+
+
+ 910 var job =
new Models.Job
+
+ 912 Description = description,
+
+
+
+
+
+
+
+
+
+ 922 (core, databaseContextFactory, paramJob, progressReporter, ct) =>
+ 923 UpdateCallbackThatDesperatelyNeedsRefactoring(
+
+ 925 databaseContextFactory,
+
+
+
+ 929 .ConfigureAwait(
false);
+
+ 931 api.ActiveJob = job.ToApi();
+ 932 return Accepted(api);
+
References Tgstation.Server.Host.Core.IGitHubClientFactory.CreateClient(), Tgstation.Server.Host.Controllers.RepositoryController.generalConfiguration, Tgstation.Server.Host.Security.AuthenticationContext.GetRight(), Tgstation.Server.Host.Configuration.GeneralConfiguration.GitHubAccessToken, Tgstation.Server.Host.Controllers.RepositoryController.gitHubClientFactory, Tgstation.Server.Host.Controllers.ApiController.Gone(), Tgstation.Server.Api.Models.EntityId.Id, Tgstation.Server.Api.Models.Internal.User.Id, Tgstation.Server.Host.Controllers.ApiController.Instance, Tgstation.Server.Host.Controllers.RepositoryController.jobManager, Tgstation.Server.Host.Controllers.RepositoryController.LoadRevisionInformation(), Tgstation.Server.Host.Controllers.ApiController.Logger, Tgstation.Server.Api.Models.Internal.User.Name, Tgstation.Server.Host.Controllers.RepositoryController.PopulateApi(), Tgstation.Server.Host.Jobs.IJobManager.RegisterOperation(), Tgstation.Server.Host.Components.IInstanceCore.RepositoryManager, Tgstation.Server.Host.Database.DatabaseContext.RepositorySettings, Tgstation.Server.Host.Database.DatabaseContext.Save(), Tgstation.Server.Host.Database.IDatabaseContextFactory.UseContext(), Tgstation.Server.Host.Security.AuthenticationContext.User, and Tgstation.Server.Host.Controllers.InstanceRequiredController.WithComponentInstance().