From 97652c680358327b73e5a13bc42d94d7c6700cb8 Mon Sep 17 00:00:00 2001 From: Guillaume Smet Date: Sat, 3 Apr 2021 20:54:31 +0200 Subject: [PATCH] Expose repository for artifacts, workflows and workflow runs --- src/main/java/org/kohsuke/github/GHArtifact.java | 9 +++++++++ src/main/java/org/kohsuke/github/GHWorkflow.java | 9 +++++++++ src/main/java/org/kohsuke/github/GHWorkflowRun.java | 9 +++++++++ src/test/java/org/kohsuke/github/GHWorkflowRunTest.java | 4 ++++ src/test/java/org/kohsuke/github/GHWorkflowTest.java | 1 + 5 files changed, 32 insertions(+) diff --git a/src/main/java/org/kohsuke/github/GHArtifact.java b/src/main/java/org/kohsuke/github/GHArtifact.java index a83aaa840..e570abedd 100644 --- a/src/main/java/org/kohsuke/github/GHArtifact.java +++ b/src/main/java/org/kohsuke/github/GHArtifact.java @@ -73,6 +73,15 @@ public class GHArtifact extends GHObject { return GitHubClient.parseDate(expiresAt); } + /** + * Repository to which the artifact belongs. + * + * @return the repository + */ + public GHRepository getRepository() { + return owner; + } + /** * @deprecated This object has no HTML URL. */ diff --git a/src/main/java/org/kohsuke/github/GHWorkflow.java b/src/main/java/org/kohsuke/github/GHWorkflow.java index 97a696c65..1d8548ecc 100644 --- a/src/main/java/org/kohsuke/github/GHWorkflow.java +++ b/src/main/java/org/kohsuke/github/GHWorkflow.java @@ -60,6 +60,15 @@ public class GHWorkflow extends GHObject { return GitHubClient.parseURL(htmlUrl); } + /** + * Repository to which the workflow belongs. + * + * @return the repository + */ + public GHRepository getRepository() { + return owner; + } + /** * The badge URL, like https://github.com/octo-org/octo-repo/workflows/CI/badge.svg * diff --git a/src/main/java/org/kohsuke/github/GHWorkflowRun.java b/src/main/java/org/kohsuke/github/GHWorkflowRun.java index 92019169a..af301dcd6 100644 --- a/src/main/java/org/kohsuke/github/GHWorkflowRun.java +++ b/src/main/java/org/kohsuke/github/GHWorkflowRun.java @@ -213,6 +213,15 @@ public class GHWorkflowRun extends GHObject { 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. * diff --git a/src/test/java/org/kohsuke/github/GHWorkflowRunTest.java b/src/test/java/org/kohsuke/github/GHWorkflowRunTest.java index afb71e975..73bd2f9a4 100644 --- a/src/test/java/org/kohsuke/github/GHWorkflowRunTest.java +++ b/src/test/java/org/kohsuke/github/GHWorkflowRunTest.java @@ -62,6 +62,9 @@ public class GHWorkflowRunTest extends AbstractGitHubWireMockTest { () -> new IllegalStateException("We must have a valid workflow run starting from here")); assertEquals(workflow.getId(), workflowRun.getWorkflowId()); + assertNotNull(workflowRun.getId()); + assertNotNull(workflowRun.getNodeId()); + assertEquals(REPO_NAME, workflowRun.getRepository().getFullName()); assertTrue(workflowRun.getUrl().getPath().contains("/actions/runs/")); assertTrue(workflowRun.getHtmlUrl().getPath().contains("/actions/runs/")); assertTrue(workflowRun.getJobsUrl().getPath().endsWith("/jobs")); @@ -379,6 +382,7 @@ public class GHWorkflowRunTest extends AbstractGitHubWireMockTest { private static void checkArtifactProperties(GHArtifact artifact, String artifactName) throws IOException { assertNotNull(artifact.getId()); assertNotNull(artifact.getNodeId()); + assertEquals(REPO_NAME, artifact.getRepository().getFullName()); assertThat(artifact.getName(), is(artifactName)); assertThat(artifact.getArchiveDownloadUrl().getPath(), containsString("actions/artifacts")); assertNotNull(artifact.getCreatedAt()); diff --git a/src/test/java/org/kohsuke/github/GHWorkflowTest.java b/src/test/java/org/kohsuke/github/GHWorkflowTest.java index 7e71315da..ab19f94f7 100644 --- a/src/test/java/org/kohsuke/github/GHWorkflowTest.java +++ b/src/test/java/org/kohsuke/github/GHWorkflowTest.java @@ -43,6 +43,7 @@ public class GHWorkflowTest extends AbstractGitHubWireMockTest { GHWorkflow workflow = repo.getWorkflow("test-workflow.yml"); assertEquals("test-workflow", workflow.getName()); + assertEquals(REPO_NAME, workflow.getRepository().getFullName()); assertEquals(".github/workflows/test-workflow.yml", workflow.getPath()); assertEquals("active", workflow.getState()); assertEquals("/repos/hub4j-test-org/GHWorkflowTest/actions/workflows/6817859", workflow.getUrl().getPath());