public override IReadOnlyList <string> MergedQualifiers() { var parameters = new List <string>(); if (User.IsNotBlank()) { parameters.Add($"user:{User}"); } if (Author.IsNotBlank()) { parameters.Add($"author:{Author}"); } if (Committer.IsNotBlank()) { parameters.Add($"committer:{Committer}"); } if (AuthorName.IsNotBlank()) { parameters.Add($"author-name:{AuthorName}"); } if (CommitterName.IsNotBlank()) { parameters.Add($"committer-name:{CommitterName}"); } if (AuthorEmail.IsNotBlank()) { parameters.Add($"author-email:{AuthorEmail}"); } if (CommitterEmail.IsNotBlank()) { parameters.Add($"committer-email:{CommitterEmail}"); } if (AuthoredDate.IsNotDefault()) { parameters.Add($"author-date:{QueryDateTime(AuthoredDate)}"); } if (CommittedDate.IsNotDefault()) { parameters.Add($"committer-date:{QueryDateTime(CommittedDate)}"); } if (IsMerge.IsNotNull()) { parameters.Add($"merge:{IsMerge.ToString()}"); } if (CommitHash.IsNotBlank()) { parameters.Add($"hash:{CommitHash}"); } if (Parent.IsNotBlank()) { parameters.Add($"parent:{Parent}"); } if (Tree.IsNotBlank()) { parameters.Add($"tree:{Tree}"); } if (Repos.Any()) { var invalidFormatRepos = Repos.Where(x => !x.IsNameWithOwnerFormat()); if (invalidFormatRepos.Any()) { throw new RepositoryFormatException(invalidFormatRepos); } parameters.Add( string.Join("+", Repos.Select(x => "repo:" + x))); } if (Organization.IsNotBlank()) { parameters.Add($"org:{Organization}"); } return(new ReadOnlyCollection <string>(parameters)); }