Do not attempt to checkout a detached SHA on reclone

This commit is contained in:
Jordan Dominion
2024-10-27 11:56:05 -04:00
parent 2aa16e84da
commit 08f0cafb55
2 changed files with 4 additions and 18 deletions
@@ -642,11 +642,10 @@ namespace Tgstation.Server.Host.Components.Repository
await deleteTask;
}
IRepository newRepo;
try
{
using var cloneReporter = progressReporter.CreateSection("Cloning New Repository", 0.8);
newRepo = await instance.RepositoryManager.CloneRepository(
using var cloneReporter = progressReporter.CreateSection("Cloning New Repository", 0.9);
using var newRepo = await instance.RepositoryManager.CloneRepository(
origin,
oldReference,
currentModel.AccessUser,
@@ -671,19 +670,6 @@ namespace Tgstation.Server.Host.Components.Repository
throw;
}
using (newRepo)
using (var checkoutReporter = progressReporter.CreateSection("Checking out previous Detached Commit", 0.1))
{
await newRepo.CheckoutObject(
oldSha,
currentModel.AccessUser,
currentModel.AccessToken,
false,
oldReference != null,
checkoutReporter,
cancellationToken);
}
}
}
}
@@ -116,8 +116,6 @@ namespace Tgstation.Server.Tests.Live.Instance
await ApiAssert.ThrowsException<ApiConflictException, RepositoryResponse>(() => Checkout(new RepositoryUpdateRequest { Reference = "master", CheckoutSha = "286bb75" }, false, false, cancellationToken), ErrorCode.RepoMismatchShaAndReference);
var updated = await Checkout(new RepositoryUpdateRequest { CheckoutSha = "286bb75" }, false, false, cancellationToken);
await RecloneTest(cancellationToken);
// Fake SHA
updated = await Checkout(new RepositoryUpdateRequest { CheckoutSha = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" }, true, false, cancellationToken);
@@ -127,6 +125,8 @@ namespace Tgstation.Server.Tests.Live.Instance
// Back
updated = await Checkout(new RepositoryUpdateRequest { Reference = "master" }, false, true, cancellationToken);
await RecloneTest(cancellationToken);
// enable the good shit if possible
if (!String.IsNullOrWhiteSpace(Environment.GetEnvironmentVariable("TGS_TEST_GITHUB_TOKEN"))
&& !(Boolean.TryParse(Environment.GetEnvironmentVariable("TGS_TEST_OD_EXCLUSIVE"), out var odExclusive) && odExclusive))