package org.kohsuke.github; import com.fasterxml.jackson.annotation.JsonProperty; import org.apache.commons.lang3.StringUtils; import org.kohsuke.github.function.InputStreamFunction; import org.kohsuke.github.internal.EnumUtils; import java.io.IOException; import java.net.URL; import java.util.Arrays; import java.util.Collections; import java.util.Date; import java.util.List; import java.util.Locale; import java.util.Objects; import static java.util.Objects.requireNonNull; /** * A workflow run. * * @author Guillaume Smet * @see GHRepository#getWorkflowRun(long) */ public class GHWorkflowRun extends GHObject { @JsonProperty("repository") private GHRepository owner; private String name; private long runNumber; private long workflowId; private String htmlUrl; private String jobsUrl; private String logsUrl; private String checkSuiteUrl; private String artifactsUrl; private String cancelUrl; private String rerunUrl; private String workflowUrl; private String headBranch; private String headSha; private GHRepository headRepository; private HeadCommit headCommit; private String event; private String status; private String conclusion; private GHPullRequest[] pullRequests; /** * The name of the workflow run. * * @return the name */ public String getName() { return name; } /** * The run number. * * @return the run number */ public long getRunNumber() { return runNumber; } /** * The workflow id. * * @return the workflow id */ public long getWorkflowId() { return workflowId; } @Override public URL getHtmlUrl() throws IOException { return GitHubClient.parseURL(htmlUrl); } /** * The jobs URL, like https://api.github.com/repos/octo-org/octo-repo/actions/runs/30433642/jobs * * @return the jobs url */ public URL getJobsUrl() { return GitHubClient.parseURL(jobsUrl); } /** * The logs URL, like https://api.github.com/repos/octo-org/octo-repo/actions/runs/30433642/logs * * @return the logs url */ public URL getLogsUrl() { return GitHubClient.parseURL(logsUrl); } /** * The check suite URL, like https://api.github.com/repos/octo-org/octo-repo/check-suites/414944374 * * @return the check suite url */ public URL getCheckSuiteUrl() { return GitHubClient.parseURL(checkSuiteUrl); } /** * The artifacts URL, like https://api.github.com/repos/octo-org/octo-repo/actions/runs/30433642/artifacts * * @return the artifacts url */ public URL getArtifactsUrl() { return GitHubClient.parseURL(artifactsUrl); } /** * The cancel URL, like https://api.github.com/repos/octo-org/octo-repo/actions/runs/30433642/cancel * * @return the cancel url */ public URL getCancelUrl() { return GitHubClient.parseURL(cancelUrl); } /** * The rerun URL, like https://api.github.com/repos/octo-org/octo-repo/actions/runs/30433642/rerun * * @return the rerun url */ public URL getRerunUrl() { return GitHubClient.parseURL(rerunUrl); } /** * The workflow URL, like https://api.github.com/repos/octo-org/octo-repo/actions/workflows/159038 * * @return the workflow url */ public URL getWorkflowUrl() { return GitHubClient.parseURL(workflowUrl); } /** * The head branch name the changes are on. * * @return head branch name */ public String getHeadBranch() { return headBranch; } /** * Gets the HEAD SHA. * * @return sha for the HEAD commit */ public String getHeadSha() { return headSha; } /** * The commit of current head. * * @return head commit */ public HeadCommit getHeadCommit() { return headCommit; } /** * The repository of current head. * * @return head repository */ public GHRepository getHeadRepository() { return headRepository; } /** * The type of event that triggered the build. * * @return type of event */ public GHEvent getEvent() { return EnumUtils.getNullableEnumOrDefault(GHEvent.class, event, GHEvent.UNKNOWN); } /** * Gets status of the workflow run. *
* Can be {@code UNKNOWN} if the value returned by GitHub is unknown from the API. * * @return status of the workflow run */ public Status getStatus() { return Status.from(status); } /** * Gets the conclusion of the workflow run. *
* Can be {@code UNKNOWN} if the value returned by GitHub is unknown from the API.
*
* @return conclusion of the workflow run
*/
public Conclusion getConclusion() {
return Conclusion.from(conclusion);
}
/**
* Repository to which the workflow run belongs.
*
* @return the repository
*/
public GHRepository getRepository() {
return owner;
}
/**
* Gets the pull requests participated in this workflow run.
*
* Note this field is only populated for events. When getting a {@link GHWorkflowRun} outside of an event, this is
* always empty.
*
* @return the list of {@link GHPullRequest}s for this workflow run. Only populated for events.
* @throws IOException
* the io exception
*/
public List
* The logs are in the form of a zip archive.
*
* Note that the archive is the same as the one downloaded from a workflow run so it contains the logs for all jobs.
*
* @param