public override Validation CheckRule(TeamFoundationRequestContext requestContext, PushNotification pushNotification, TfsGitRepository repository) { var result = new Validation(); foreach (var refUpdateResult in pushNotification.RefUpdateResults) { // new or deleted refs have id==0 if (IsNullHash(refUpdateResult.OldObjectId) || IsNullHash(refUpdateResult.NewObjectId)) { continue; } TfsGitCommit gitCommit = repository.LookupObject(requestContext, refUpdateResult.NewObjectId) as TfsGitCommit; if (gitCommit == null) { continue; } string authorEmail = gitCommit.GetAuthorEmail(requestContext); if (!AuthorEmail.Any(pattern => Regex.IsMatch(authorEmail, pattern))) { result.Fails = true; result.ReasonCode = 2; result.ReasonMessage = string.Format( "Author email '{0}' on commit {1} is not admitted", authorEmail, gitCommit.ObjectId.DisplayHash()); break; } string committerEmail = gitCommit.GetCommitterEmail(requestContext); if (!CommitterEmail.Any(pattern => Regex.IsMatch(committerEmail, pattern))) { result.Fails = true; result.ReasonCode = 3; result.ReasonMessage = string.Format( "Committer email '{0}' on commit {1} is not admitted", authorEmail, gitCommit.ObjectId.DisplayHash()); break; } //if } //for changes return(result); }
public void clearNewBookFields() { //Book Info Title.Clear(); Author.Clear(); Pages.Clear(); Genre.Clear(); Publisher.Clear(); Price.Clear(); //author info AuthorName.Clear(); AuthorEmail.Clear(); AuthorAddress.Clear(); AuthorPNum.Clear(); AuthorAccNum.Clear(); AuthorCut.Clear(); authorList.Items.Clear(); }
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)); }