package org.jenkinsci.plugins.ghprb; import com.google.common.collect.ListMultimap; import hudson.Extension; import hudson.model.AbstractBuild; import hudson.model.TaskListener; import org.jenkinsci.plugins.tokenmacro.DataBoundTokenMacro; import org.jenkinsci.plugins.tokenmacro.MacroEvaluationException; import java.io.IOException; import java.util.Map; /** * {@code PR_Name} token that expands to the PR Name. {@code PR_User} token that expands to the PR Opener's email. * * @author Josh Caldwell */ @Extension(optional = true) public class GhprbTokenMacro extends DataBoundTokenMacro { @Override public boolean acceptsMacroName(String macroName) { return macroName.equals("PR_Title") || macroName.equals("PR_Email"); } @Override public String evaluate(AbstractBuild<?, ?> abstractBuild, TaskListener taskListener, String s) throws MacroEvaluationException, IOException, InterruptedException { return null; } @Override public String evaluate(AbstractBuild<?, ?> context, TaskListener listener, String macroName, Map<String, String> arguments, ListMultimap<String, String> argumentMultimap) throws MacroEvaluationException, IOException, InterruptedException { GhprbCause cause = (GhprbCause) context.getCause(GhprbCause.class); if (cause == null) { return ""; } if (macroName.equals("PR_Title")) { return cause.getTitle(); } else if (macroName.equals("PR_Email")) { return cause.getAuthorEmail(); } else { return ""; } } }