public async Task RunAsync(IAzureDevOpsClient azDoclient, GitPushEventPayload payload) { _logger.LogInformation(new EventId(1, "RunningPolicies"), "Running policies for {RepositoryId} with {UpdateCount}", payload.Resource.Repository.Id, payload.Resource.RefUpdates.Count); //run policies serially to avoid race conditions in AzDO like duplicate pull request creation. foreach (var policy in _policies) { _logger.LogDebug(new EventId(2, "RunningPolicy"), "Running {Policy}", policy.Name); foreach (var update in payload.Resource.RefUpdates) { if (IsNewBranch(update.OldObjectId)) { _logger.LogInformation(new EventId(2, "SkippingNewBranch"), "Skipping new branch push"); continue; } var context = new MergePolicyContext(azDoclient, update, payload); try { await policy.HandleAsync(context); } catch (Exception e) { _logger.LogError(new EventId(7, "PolicyFailure"), e, "Policy {@Policy} for {RepositoryId} failed: {Message}", policy, payload.Resource.Repository.Id, e.Message); } } } }
public Task RunAsync(IAzureDevOpsClient azDoclient, GitPushEventPayload payload) { return(Task.CompletedTask); }