package argelbargel.jenkins.plugins.gitlab_branch_source.settings; import argelbargel.jenkins.plugins.gitlab_branch_source.Messages; import hudson.Extension; import hudson.util.FormValidation; import org.kohsuke.accmod.Restricted; import org.kohsuke.accmod.restrictions.NoExternalUse; import org.kohsuke.stapler.DataBoundConstructor; import org.kohsuke.stapler.DataBoundSetter; import org.kohsuke.stapler.QueryParameter; import javax.annotation.Nonnull; public final class GitLabSCMBranchMonitorStrategy extends MonitorStrategy { private String includes; private String excludes; private boolean buildBranchesWithMergeRequests; @DataBoundConstructor public GitLabSCMBranchMonitorStrategy(boolean monitored, BuildStatusPublishMode buildStatusPublishMode) { super(monitored, monitored, buildStatusPublishMode); this.includes = DescriptorImpl.DEFAULT_INCLUDES; this.excludes = DescriptorImpl.DEFAULT_EXCLUDES; this.buildBranchesWithMergeRequests = false; } GitLabSCMBranchMonitorStrategy() { this(true, BuildStatusPublishMode.stages); } public String getIncludes() { return includes; } @DataBoundSetter public void setIncludes(String includes) { this.includes = (includes != null) ? includes : DescriptorImpl.DEFAULT_INCLUDES; } public String getExcludes() { return excludes; } @DataBoundSetter public void setExcludes(String excludes) { this.excludes = (excludes != null) ? excludes : DescriptorImpl.DEFAULT_EXCLUDES; } public boolean getBuildBranchesWithMergeRequests() { return buildBranchesWithMergeRequests; } @DataBoundSetter public void setBuildBranchesWithMergeRequests(boolean value) { buildBranchesWithMergeRequests = value; } @SuppressWarnings({"unused", "WeakerAccess"}) @Extension public static final class DescriptorImpl extends MonitorStrategyDescriptor<GitLabSCMBranchMonitorStrategy> { public static final String DEFAULT_INCLUDES = "*"; public static final String DEFAULT_EXCLUDES = ""; @Nonnull @Override public GitLabSCMBranchMonitorStrategy getDefaults() { return new GitLabSCMBranchMonitorStrategy(); } @Restricted(NoExternalUse.class) public FormValidation doCheckIncludes(@QueryParameter String includes) { if (includes.isEmpty()) { return FormValidation.warning(Messages.GitLabSCMBranchMonitorStrategy_did_you_mean_to_use_to_match_all_branches()); } return FormValidation.ok(); } } }