mirror of
https://github.com/tgstation/tgstation-server.git
synced 2026-07-14 01:23:02 +01:00
Fix issue with CheckoutSha requests
This commit is contained in:
@@ -524,8 +524,13 @@ namespace Tgstation.Server.Host.Controllers
|
||||
// checkout/hard reset
|
||||
if (modelHasShaOrReference)
|
||||
{
|
||||
if ((model.CheckoutSha != null && repo.Head.ToUpperInvariant().StartsWith(model.CheckoutSha.ToUpperInvariant(), StringComparison.Ordinal))
|
||||
|| (model.Reference != null && repo.Reference.ToUpperInvariant() != model.Reference.ToUpperInvariant()))
|
||||
var validCheckoutSha =
|
||||
model.CheckoutSha != null
|
||||
&& !repo.Head.StartsWith(model.CheckoutSha, StringComparison.OrdinalIgnoreCase);
|
||||
var validCheckoutReference =
|
||||
model.Reference != null
|
||||
&& !repo.Reference.Equals(model.Reference, StringComparison.OrdinalIgnoreCase);
|
||||
if (validCheckoutSha || validCheckoutReference)
|
||||
{
|
||||
var committish = model.CheckoutSha ?? model.Reference;
|
||||
var isSha = await repo.IsSha(committish, cancellationToken).ConfigureAwait(false);
|
||||
|
||||
@@ -88,6 +88,7 @@ namespace Tgstation.Server.Tests.Instance
|
||||
updated = await Checkout(updated, false, false, cancellationToken);
|
||||
|
||||
// Fake SHA
|
||||
updated.Reference = null;
|
||||
updated.CheckoutSha = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
|
||||
updated = await Checkout(updated, true, false, cancellationToken);
|
||||
|
||||
@@ -97,7 +98,7 @@ namespace Tgstation.Server.Tests.Instance
|
||||
|
||||
// Back
|
||||
updated.Reference = workingBranch;
|
||||
updated = await Checkout(updated, true, true, cancellationToken);
|
||||
updated = await Checkout(updated, false, true, cancellationToken);
|
||||
|
||||
var testPRString = Environment.GetEnvironmentVariable("TGS4_TEST_PULL_REQUEST_NUMBER");
|
||||
if (String.IsNullOrWhiteSpace(testPRString))
|
||||
|
||||
Reference in New Issue
Block a user