protected override async Task <string> ExecuteRuleAsync(IRule rule, RuleExecutionContext executionContext, CancellationToken cancellationToken = default) { var result = await rule.ApplyAsync(executionContext, cancellationToken); var store = executionContext.store; var(created, updated) = await store.SaveChanges(saveMode, !dryRun, rule.ImpersonateExecution, cancellationToken); if (created + updated > 0) { logger.WriteInfo($"Changes saved to Azure DevOps (mode {saveMode}): {created} created, {updated} updated."); } else { logger.WriteInfo($"No changes saved to Azure DevOps."); } return(result.Value); }