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.GitHubCommitShaSource; import org.kohsuke.stapler.DataBoundConstructor; import javax.annotation.Nonnull; import java.io.IOException; /** * Allows to enter sha manually * * @author lanwen (Merkushev Kirill) * @since 1.19.0 */ public class ManuallyEnteredShaSource extends GitHubCommitShaSource { private String sha; @DataBoundConstructor public ManuallyEnteredShaSource(String sha) { this.sha = sha; } public String getSha() { return sha; } /** * Expands env vars and token macro in entered sha */ @Override public String get(@Nonnull Run<?, ?> run, @Nonnull TaskListener listener) throws IOException, InterruptedException { return new ExpandableMessage(sha).expandAll(run, listener); } @Extension public static class ManuallyEnteredShaSourceDescriptor extends Descriptor<GitHubCommitShaSource> { @Override public String getDisplayName() { return "Manually entered SHA"; } } }