public static IEnumerable <Commit> QueryByPath(this IQueryableCommitLog commitLog, string path, CommitFilter commitFilter) { if (string.IsNullOrEmpty(path)) { return(commitLog.QueryBy(commitFilter)); } return(commitLog.QueryBy(path, commitFilter).Select(c => c.Commit)); }
private void FillInEvidence(IQueryableCommitLog commitLog, string output) { if (LastCommitWasByNonEmployee(commitLog)) { GitEvidence.FeatureRating = 1; GitEvidence.SetPassed(new SimpleEvidenceBuilder("Commits:" + Environment.NewLine + output)); } else { GitEvidence.SetFailed(new SimpleEvidenceBuilder("Last Commit By Waters Employee")); } }
private static string CollectGitLogOutput(IQueryableCommitLog commitLog) { const string RFC2822Format = "ddd dd MMM HH:mm:ss yyyy K"; var output = new List <string>(); foreach (var c in commitLog.Where(c => !c.Author.Email.ContainsAny(GetHostDomains()))) { output.Add(string.Format("commit {0}", c.Id)); if (c.Parents.Count() > 1) { output.Add($"Merge: {string.Join(" ", c.Parents.Select(p => p.Id.Sha.Substring(0, 7)).ToArray())}"); } output.Add(string.Format("Author: {0} <{1}>", c.Author.Name, c.Author.Email)); output.Add($"Date: {c.Author.When.ToString(RFC2822Format, CultureInfo.InvariantCulture)}" + Environment.NewLine); output.Add(c.Message + Environment.NewLine); } return(string.Join(Environment.NewLine, output)); }
public static bool LastCommitWasByNonEmployee(IQueryableCommitLog c) { return(!c.First().Author.Email.ContainsAny(GetHostDomains())); }
public static ICommitLog OrderTopological(this IQueryableCommitLog commits) => commits.QueryBy( new CommitFilter { SortBy = CommitSortStrategies.Topological });