package org.jenkinsci.plugins.github.status.sources;
import hudson.Extension;
import hudson.model.Descriptor;
import hudson.model.Run;
import hudson.model.TaskListener;
import org.eclipse.jgit.lib.ObjectId;
import org.jenkinsci.plugins.github.extension.status.GitHubCommitShaSource;
import org.jenkinsci.plugins.github.util.BuildDataHelper;
import org.kohsuke.stapler.DataBoundConstructor;
import javax.annotation.Nonnull;
import java.io.IOException;
/**
* Gets sha from build data
*
* @author lanwen (Merkushev Kirill)
* @since 1.19.0
*/
public class BuildDataRevisionShaSource extends GitHubCommitShaSource {
@DataBoundConstructor
public BuildDataRevisionShaSource() {
}
/**
* @return sha from git's scm build data action
*/
@Override
public String get(@Nonnull Run<?, ?> run, @Nonnull TaskListener listener) throws IOException {
return ObjectId.toString(BuildDataHelper.getCommitSHA1(run));
}
@Extension
public static class BuildDataRevisionShaSourceDescriptor extends Descriptor<GitHubCommitShaSource> {
@Override
public String getDisplayName() {
return "Latest build revision";
}
}
}