mirror of
https://github.com/tgstation/tgstation-server.git
synced 2026-08-24 05:27:30 +01:00
Nullify GitHubRemoteDeploymentManager
This commit is contained in:
+26
-22
@@ -17,8 +17,6 @@ using Tgstation.Server.Host.Database;
|
||||
using Tgstation.Server.Host.Models;
|
||||
using Tgstation.Server.Host.Utils.GitHub;
|
||||
|
||||
#nullable disable
|
||||
|
||||
namespace Tgstation.Server.Host.Components.Deployment.Remote
|
||||
{
|
||||
/// <summary>
|
||||
@@ -67,7 +65,7 @@ namespace Tgstation.Server.Host.Components.Deployment.Remote
|
||||
|
||||
Logger.LogTrace("Starting deployment...");
|
||||
|
||||
RepositorySettings repositorySettings = null;
|
||||
RepositorySettings? repositorySettings = null;
|
||||
await databaseContextFactory.UseContext(
|
||||
async databaseContext =>
|
||||
repositorySettings = await databaseContext
|
||||
@@ -76,12 +74,12 @@ namespace Tgstation.Server.Host.Components.Deployment.Remote
|
||||
.Where(x => x.InstanceId == Metadata.Id)
|
||||
.FirstAsync(cancellationToken));
|
||||
|
||||
var instanceAuthenticated = repositorySettings.AccessToken != null;
|
||||
IAuthenticatedGitHubService authenticatedGitHubService;
|
||||
var instanceAuthenticated = repositorySettings!.AccessToken != null;
|
||||
IAuthenticatedGitHubService? authenticatedGitHubService;
|
||||
IGitHubService gitHubService;
|
||||
if (instanceAuthenticated)
|
||||
{
|
||||
authenticatedGitHubService = gitHubServiceFactory.CreateService(repositorySettings.AccessToken);
|
||||
authenticatedGitHubService = gitHubServiceFactory.CreateService(repositorySettings.AccessToken!);
|
||||
gitHubService = authenticatedGitHubService;
|
||||
}
|
||||
else
|
||||
@@ -90,12 +88,14 @@ namespace Tgstation.Server.Host.Components.Deployment.Remote
|
||||
gitHubService = gitHubServiceFactory.CreateService();
|
||||
}
|
||||
|
||||
var repoOwner = remoteInformation.RemoteRepositoryOwner!;
|
||||
var repoName = remoteInformation.RemoteRepositoryName!;
|
||||
var repositoryIdTask = gitHubService.GetRepositoryId(
|
||||
remoteInformation.RemoteRepositoryOwner,
|
||||
remoteInformation.RemoteRepositoryName,
|
||||
repoOwner,
|
||||
repoName,
|
||||
cancellationToken);
|
||||
|
||||
if (!repositorySettings.CreateGitHubDeployments.Value)
|
||||
if (!repositorySettings.CreateGitHubDeployments!.Value)
|
||||
Logger.LogTrace("Not creating deployment");
|
||||
else if (!instanceAuthenticated)
|
||||
Logger.LogWarning("Can't create GitHub deployment as no access token is set for repository!");
|
||||
@@ -104,7 +104,7 @@ namespace Tgstation.Server.Host.Components.Deployment.Remote
|
||||
Logger.LogTrace("Creating deployment...");
|
||||
try
|
||||
{
|
||||
compileJob.GitHubDeploymentId = await authenticatedGitHubService.CreateDeployment(
|
||||
compileJob.GitHubDeploymentId = await authenticatedGitHubService!.CreateDeployment(
|
||||
new NewDeployment(compileJob.RevisionInformation.CommitSha)
|
||||
{
|
||||
AutoMerge = false,
|
||||
@@ -113,8 +113,8 @@ namespace Tgstation.Server.Host.Components.Deployment.Remote
|
||||
ProductionEnvironment = true,
|
||||
RequiredContexts = new Collection<string>(),
|
||||
},
|
||||
remoteInformation.RemoteRepositoryOwner,
|
||||
remoteInformation.RemoteRepositoryName,
|
||||
repoOwner,
|
||||
repoName,
|
||||
cancellationToken);
|
||||
|
||||
Logger.LogDebug("Created deployment ID {deploymentId}", compileJob.GitHubDeploymentId);
|
||||
@@ -125,8 +125,8 @@ namespace Tgstation.Server.Host.Components.Deployment.Remote
|
||||
Description = "The project is being deployed",
|
||||
AutoInactive = false,
|
||||
},
|
||||
remoteInformation.RemoteRepositoryOwner,
|
||||
remoteInformation.RemoteRepositoryName,
|
||||
repoOwner,
|
||||
repoName,
|
||||
compileJob.GitHubDeploymentId.Value,
|
||||
cancellationToken);
|
||||
|
||||
@@ -168,7 +168,7 @@ namespace Tgstation.Server.Host.Components.Deployment.Remote
|
||||
ArgumentNullException.ThrowIfNull(repositorySettings);
|
||||
ArgumentNullException.ThrowIfNull(revisionInformation);
|
||||
|
||||
if (revisionInformation.ActiveTestMerges?.Any() != true)
|
||||
if ((revisionInformation.ActiveTestMerges?.Count > 0) != true)
|
||||
{
|
||||
Logger.LogTrace("No test merges to remove.");
|
||||
return Array.Empty<TestMerge>();
|
||||
@@ -180,7 +180,11 @@ namespace Tgstation.Server.Host.Components.Deployment.Remote
|
||||
|
||||
var tasks = revisionInformation
|
||||
.ActiveTestMerges
|
||||
.Select(x => gitHubService.GetPullRequest(repository.RemoteRepositoryOwner, repository.RemoteRepositoryName, x.TestMerge.Number, cancellationToken));
|
||||
.Select(x => gitHubService.GetPullRequest(
|
||||
repository.RemoteRepositoryOwner!,
|
||||
repository.RemoteRepositoryName!,
|
||||
x.TestMerge.Number,
|
||||
cancellationToken));
|
||||
try
|
||||
{
|
||||
await Task.WhenAll(tasks);
|
||||
@@ -192,7 +196,7 @@ namespace Tgstation.Server.Host.Components.Deployment.Remote
|
||||
|
||||
var newList = revisionInformation.ActiveTestMerges.Select(x => x.TestMerge).ToList();
|
||||
|
||||
PullRequest lastMerged = null;
|
||||
PullRequest? lastMerged = null;
|
||||
async ValueTask CheckRemovePR(Task<PullRequest> task)
|
||||
{
|
||||
var pr = await task;
|
||||
@@ -251,7 +255,7 @@ namespace Tgstation.Server.Host.Components.Deployment.Remote
|
||||
int testMergeNumber,
|
||||
CancellationToken cancellationToken)
|
||||
{
|
||||
var gitHubService = gitHubServiceFactory.CreateService(repositorySettings.AccessToken);
|
||||
var gitHubService = gitHubServiceFactory.CreateService(repositorySettings.AccessToken!);
|
||||
|
||||
try
|
||||
{
|
||||
@@ -274,12 +278,12 @@ namespace Tgstation.Server.Host.Components.Deployment.Remote
|
||||
CultureInfo.InvariantCulture,
|
||||
"#### Test Merge {4}{0}{0}<details><summary>Details</summary>{0}{0}##### Server Instance{0}{5}{1}{0}{0}##### Revision{0}Origin: {6}{0}Pull Request: {2}{0}Server: {7}{3}{8}{0}</details>",
|
||||
Environment.NewLine,
|
||||
repositorySettings.ShowTestMergeCommitters.Value
|
||||
repositorySettings.ShowTestMergeCommitters!.Value
|
||||
? String.Format(
|
||||
CultureInfo.InvariantCulture,
|
||||
"{0}{0}##### Merged By{0}{1}",
|
||||
Environment.NewLine,
|
||||
testMerge.MergedBy.Name)
|
||||
testMerge.MergedBy!.Name)
|
||||
: String.Empty,
|
||||
testMerge.TargetCommitSha,
|
||||
testMerge.Comment != null
|
||||
@@ -294,7 +298,7 @@ namespace Tgstation.Server.Host.Components.Deployment.Remote
|
||||
compileJob.RevisionInformation.OriginCommitSha,
|
||||
compileJob.RevisionInformation.CommitSha,
|
||||
compileJob.GitHubDeploymentId.HasValue
|
||||
? $"{Environment.NewLine}[GitHub Deployments](https://github.com/{remoteRepositoryOwner}/{remoteRepositoryName}/deployments/activity_log?environment=TGS%3A+{Metadata.Name.Replace(" ", "+", StringComparison.Ordinal)})"
|
||||
? $"{Environment.NewLine}[GitHub Deployments](https://github.com/{remoteRepositoryOwner}/{remoteRepositoryName}/deployments/activity_log?environment=TGS%3A+{Metadata.Name!.Replace(" ", "+", StringComparison.Ordinal)})"
|
||||
: String.Empty);
|
||||
|
||||
/// <summary>
|
||||
@@ -321,7 +325,7 @@ namespace Tgstation.Server.Host.Components.Deployment.Remote
|
||||
|
||||
Logger.LogTrace("Updating deployment {gitHubDeploymentId} to {deploymentState}...", compileJob.GitHubDeploymentId.Value, deploymentState);
|
||||
|
||||
string gitHubAccessToken = null;
|
||||
string? gitHubAccessToken = null;
|
||||
await databaseContextFactory.UseContext(
|
||||
async databaseContext =>
|
||||
gitHubAccessToken = await databaseContext
|
||||
|
||||
Reference in New Issue
Block a user