Adds warnings when the repository takes it's HEAD as an OriginCommitSha

This commit is contained in:
Cyberboss
2018-09-13 10:31:52 -04:00
parent e5d14aaef0
commit de495b1417
4 changed files with 17 additions and 4 deletions
@@ -186,6 +186,7 @@ namespace Tgstation.Server.Host.Components
Id = metadata.Id
}
};
logger.LogWarning(Repository.Repository.OriginTrackingErrorTemplate, currentSha);
db.Instances.Attach(revInfo.Instance);
}
@@ -18,13 +18,18 @@ namespace Tgstation.Server.Host.Components.Repository
/// </summary>
public const string GitHubUrl = "://github.com/";
const string UnknownReference = "<UNKNOWN>";
/// <summary>
/// Template error message for when tracking of the most recent origin commit fails
/// </summary>
public const string OriginTrackingErrorTemplate = "Unable to determine most recent origin commit of {0}. Marking it as an origin commit. This may result in invalid git metadata until the next hard reset to an origin reference.";
/// <summary>
/// The branch name used for publishing testmerge commits
/// </summary>
public const string RemoteTemporaryBranchName = "___TGSTempBranch";
const string UnknownReference = "<UNKNOWN>";
/// <inheritdoc />
public bool IsGitHubRepository { get; }
@@ -10,6 +10,7 @@ using System.Threading.Tasks;
using Tgstation.Server.Api;
using Tgstation.Server.Api.Rights;
using Tgstation.Server.Host.Components;
using Tgstation.Server.Host.Components.Repository;
using Tgstation.Server.Host.Core;
using Tgstation.Server.Host.Models;
using Tgstation.Server.Host.Security;
@@ -179,6 +180,7 @@ namespace Tgstation.Server.Host.Controllers
Id = Instance.Id
}
};
Logger.LogWarning(Repository.OriginTrackingErrorTemplate, repoSha);
databaseContext.Instances.Attach(revInfo.Instance);
}
@@ -67,7 +67,7 @@ namespace Tgstation.Server.Host.Controllers
generalConfiguration = generalConfigurationOptions?.Value ?? throw new ArgumentNullException(nameof(generalConfigurationOptions));
}
static async Task<bool> LoadRevisionInformation(Components.Repository.IRepository repository, IDatabaseContext databaseContext, Models.Instance instance, string lastOriginCommitSha, Action<Models.RevisionInformation> revInfoSink, CancellationToken cancellationToken)
async Task<bool> LoadRevisionInformation(Components.Repository.IRepository repository, IDatabaseContext databaseContext, Models.Instance instance, string lastOriginCommitSha, Action<Models.RevisionInformation> revInfoSink, CancellationToken cancellationToken)
{
var repoSha = repository.Head;
@@ -96,12 +96,17 @@ namespace Tgstation.Server.Host.Controllers
lock (databaseContext) //cleaner this way
databaseContext.RevisionInformations.Add(revisionInfo);
}
revisionInfo.OriginCommitSha = revisionInfo.OriginCommitSha ?? lastOriginCommitSha ?? repository.Head;
revisionInfo.OriginCommitSha = revisionInfo.OriginCommitSha ?? lastOriginCommitSha;
if (revisionInfo.OriginCommitSha == null)
{
revisionInfo.OriginCommitSha = repoSha;
Logger.LogWarning(Components.Repository.Repository.OriginTrackingErrorTemplate, repoSha);
}
revInfoSink?.Invoke(revisionInfo);
return needsDbUpdate;
}
static async Task<bool> PopulateApi(Repository model, Components.Repository.IRepository repository, IDatabaseContext databaseContext, Models.Instance instance, CancellationToken cancellationToken)
async Task<bool> PopulateApi(Repository model, Components.Repository.IRepository repository, IDatabaseContext databaseContext, Models.Instance instance, CancellationToken cancellationToken)
{
if (repository.IsGitHubRepository)
{