/// <inheritdoc /> public async Task ProcessPayload(PullRequestEventPayload payload, CancellationToken cancellationToken) { if (payload == null) { throw new ArgumentNullException(nameof(payload)); } if (payload.Action != "opened") { throw new NotSupportedException(); } if (await gitHubManager.UserHasWriteAccess(payload.PullRequest.User).ConfigureAwait(false)) { return; } var allPrs = await gitHubManager.GetOpenPullRequests().ConfigureAwait(false); string result = null; foreach (var I in allPrs.Where(x => x.User.Id == payload.PullRequest.User.Id && x.Id != payload.PullRequest.Id).Select(x => x.Number)) { result = (result != null) ? result + String.Format(CultureInfo.InvariantCulture, ", #{0}", I) : String.Format(CultureInfo.InvariantCulture, "#{0}", I); } if (result != null) { await gitHubManager.CreateComment(payload.PullRequest.Number, stringLocalizer["TooManyPRs", result]).ConfigureAwait(false); await gitHubManager.Close(payload.PullRequest.Number).ConfigureAwait(false); } }