private bool EnsurePrTriggerDefaults(PullRequestTrigger target) { var hasChanges = false; if (!target.Forks.AllowSecrets) { target.Forks.AllowSecrets = true; hasChanges = true; } if (!target.Forks.Enabled) { target.Forks.Enabled = true; hasChanges = true; } if (target.RequireCommentsForNonTeamMembersOnly) { target.RequireCommentsForNonTeamMembersOnly = false; hasChanges = true; } if (!target.IsCommentRequiredForPullRequest) { target.IsCommentRequiredForPullRequest = true; hasChanges = true; } return(hasChanges); }
private PullRequestTrigger GetDefaultPrTrigger() { var newTrigger = new PullRequestTrigger { Forks = new Forks { AllowSecrets = true, Enabled = true }, RequireCommentsForNonTeamMembersOnly = false, IsCommentRequiredForPullRequest = true, }; newTrigger.BranchFilters.Add("+master"); return(newTrigger); }
protected bool EnsureDefautPullRequestTrigger(BuildDefinition definition, bool overrideYaml = true, bool securePipeline = true) { bool hasChanges = false; var prTriggers = definition.Triggers.OfType <PullRequestTrigger>(); if (prTriggers == default || !prTriggers.Any()) { var newTrigger = new PullRequestTrigger(); if (overrideYaml) { newTrigger.SettingsSourceType = 1; // Override what is in the yaml file and use what is in the pipeline definition newTrigger.BranchFilters.Add("+*"); } else { newTrigger.SettingsSourceType = 2; // Pull settings from yaml } newTrigger.Forks = new Forks { AllowSecrets = securePipeline, Enabled = true }; newTrigger.RequireCommentsForNonTeamMembersOnly = false; newTrigger.IsCommentRequiredForPullRequest = securePipeline; definition.Triggers.Add(newTrigger); hasChanges = true; } else { foreach (var trigger in prTriggers) { if (overrideYaml) { if (trigger.SettingsSourceType != 1 || trigger.BranchFilters.Contains("+*")) { // Override what is in the yaml file and use what is in the pipeline definition trigger.SettingsSourceType = 1; trigger.BranchFilters.Add("+*"); } } else { if (trigger.SettingsSourceType != 2) { // Pull settings from yaml trigger.SettingsSourceType = 2; hasChanges = true; } } if (trigger.RequireCommentsForNonTeamMembersOnly != false || trigger.Forks.AllowSecrets != securePipeline || trigger.Forks.Enabled != true || trigger.IsCommentRequiredForPullRequest != securePipeline ) { trigger.Forks.AllowSecrets = securePipeline; trigger.Forks.Enabled = true; trigger.RequireCommentsForNonTeamMembersOnly = false; trigger.IsCommentRequiredForPullRequest = securePipeline; hasChanges = true; } } } return(hasChanges); }
protected bool EnsureDefaultPullRequestTrigger(BuildDefinition definition, bool overrideYaml = true, bool securePipeline = true) { bool hasChanges = false; var prTriggers = definition.Triggers.OfType <PullRequestTrigger>(); if (prTriggers == default || !prTriggers.Any()) { var newTrigger = new PullRequestTrigger(); if (overrideYaml) { newTrigger.SettingsSourceType = 1; // Override what is in the yaml file and use what is in the pipeline definition newTrigger.BranchFilters.Add("+*"); } else { newTrigger.SettingsSourceType = 2; // Pull settings from yaml } newTrigger.Forks = new Forks { AllowSecrets = securePipeline, Enabled = true }; newTrigger.RequireCommentsForNonTeamMembersOnly = false; newTrigger.IsCommentRequiredForPullRequest = securePipeline; definition.Triggers.Add(newTrigger); hasChanges = true; } else { foreach (var trigger in prTriggers) { if (overrideYaml) { // Override what is in the yaml file and use what is in the pipeline definition if (trigger.SettingsSourceType != 1) { trigger.SettingsSourceType = 1; hasChanges = true; } // If any branch filters exist then overwrite them to the most generous filter. // The filter should support all branches because PR triggers with a yaml override // like this are expected to be manually invoked by `/azp run` comments, and these PRs // may be targeting development branches. if (!trigger.BranchFilters.SequenceEqual(new List <string> { "+*" })) { var filters = trigger.BranchFilters.Select(f => $"'{f}'"); Logger.LogInformation($"Overwriting branch filters ({String.Join(", ", filters)}) for PR trigger with '+*'"); trigger.BranchFilters.Clear(); trigger.BranchFilters.Add("+*"); hasChanges = true; } } else if (trigger.SettingsSourceType != 2) { // Pull settings from yaml trigger.SettingsSourceType = 2; hasChanges = true; } if (trigger.RequireCommentsForNonTeamMembersOnly != false || trigger.Forks.AllowSecrets != securePipeline || trigger.Forks.Enabled != true || trigger.IsCommentRequiredForPullRequest != securePipeline ) { trigger.Forks.AllowSecrets = securePipeline; trigger.Forks.Enabled = true; trigger.RequireCommentsForNonTeamMembersOnly = false; trigger.IsCommentRequiredForPullRequest = securePipeline; hasChanges = true; } } } return(hasChanges); }