package org.jenkinsci.plugins.github.status.sources; import hudson.Extension; import hudson.model.Descriptor; import hudson.model.Run; import hudson.model.TaskListener; import org.jenkinsci.plugins.github.common.ExpandableMessage; import org.jenkinsci.plugins.github.extension.status.GitHubStatusContextSource; import org.kohsuke.stapler.DataBoundConstructor; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import javax.annotation.Nonnull; /** * Allows to manually enter context * * @author lanwen (Merkushev Kirill) * @since 1.19.0 */ public class ManuallyEnteredCommitContextSource extends GitHubStatusContextSource { private static final Logger LOG = LoggerFactory.getLogger(ManuallyEnteredCommitContextSource.class); private String context; @DataBoundConstructor public ManuallyEnteredCommitContextSource(String context) { this.context = context; } public String getContext() { return context; } /** * Just returns what user entered. Expands env vars and token macro */ @Override public String context(@Nonnull Run<?, ?> run, @Nonnull TaskListener listener) { try { return new ExpandableMessage(context).expandAll(run, listener); } catch (Exception e) { LOG.debug("Can't expand context, returning as is", e); return context; } } @Extension public static class ManuallyEnteredCommitContextSourceDescriptor extends Descriptor<GitHubStatusContextSource> { @Override public String getDisplayName() { return "Manually entered context name"; } } }