Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit b8f00bc

Browse filesBrowse files
committed
Adjust GHCheckRun so that status and conclusion are returned as enums
Provide bridge methods for compatibility.
1 parent 042038f commit b8f00bc
Copy full SHA for b8f00bc

File tree

Expand file treeCollapse file tree

5 files changed

+52
-13
lines changed
Filter options
Expand file treeCollapse file tree

5 files changed

+52
-13
lines changed

‎src/main/java/org/kohsuke/github/GHCheckRun.java

Copy file name to clipboardExpand all lines: src/main/java/org/kohsuke/github/GHCheckRun.java
+39-4Lines changed: 39 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,12 @@
11
package org.kohsuke.github;
22

33
import com.fasterxml.jackson.annotation.JsonProperty;
4+
import com.infradna.tool.bridge_method_injector.WithBridgeMethods;
45
import edu.umd.cs.findbugs.annotations.NonNull;
56
import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
7+
import org.kohsuke.github.GHWorkflowRun.Conclusion;
8+
import org.kohsuke.github.GHWorkflowRun.Status;
9+
import org.kohsuke.github.internal.EnumUtils;
610
import org.kohsuke.github.internal.Previews;
711

812
import java.io.IOException;
@@ -11,6 +15,7 @@
1115
import java.util.Collections;
1216
import java.util.Date;
1317
import java.util.List;
18+
import java.util.Locale;
1419

1520
/**
1621
* Represents a check run.
@@ -80,12 +85,27 @@ GHPullRequest[] wrap() {
8085
* @return Status of the check run
8186
* @see Status
8287
*/
83-
public String getStatus() {
88+
@WithBridgeMethods(value = String.class, adapterMethod = "statusAsStr")
89+
public Status getStatus() {
90+
return Status.from(status);
91+
}
92+
93+
@SuppressFBWarnings(value = "UPM_UNCALLED_PRIVATE_METHOD", justification = "Bridge method of getStatus")
94+
private Object statusAsStr(Status status, Class type) {
8495
return status;
8596
}
8697

8798
public static enum Status {
88-
QUEUED, IN_PROGRESS, COMPLETED
99+
QUEUED, IN_PROGRESS, COMPLETED, UNKNOWN;
100+
101+
public static Status from(String value) {
102+
return EnumUtils.getEnum(Status.class, value, Status.UNKNOWN);
103+
}
104+
105+
@Override
106+
public String toString() {
107+
return name().toLowerCase(Locale.ROOT);
108+
}
89109
}
90110

91111
/**
@@ -94,7 +114,13 @@ public static enum Status {
94114
* @return Status of the check run
95115
* @see Conclusion
96116
*/
97-
public String getConclusion() {
117+
@WithBridgeMethods(value = String.class, adapterMethod = "conclusionAsStr")
118+
public Conclusion getConclusion() {
119+
return Conclusion.from(conclusion);
120+
}
121+
122+
@SuppressFBWarnings(value = "UPM_UNCALLED_PRIVATE_METHOD", justification = "Bridge method of getConclusion")
123+
private Object conclusionAsStr(Conclusion conclusion, Class type) {
98124
return conclusion;
99125
}
100126

@@ -105,7 +131,16 @@ public String getConclusion() {
105131
* Parameters - <code>conclusion</code></a>.
106132
*/
107133
public static enum Conclusion {
108-
SUCCESS, FAILURE, NEUTRAL, CANCELLED, TIMED_OUT, ACTION_REQUIRED, SKIPPED
134+
ACTION_REQUIRED, CANCELLED, FAILURE, NEUTRAL, SUCCESS, SKIPPED, STALE, TIMED_OUT, UNKNOWN;
135+
136+
public static Conclusion from(String value) {
137+
return EnumUtils.getEnum(Conclusion.class, value, Conclusion.UNKNOWN);
138+
}
139+
140+
@Override
141+
public String toString() {
142+
return name().toLowerCase(Locale.ROOT);
143+
}
109144
}
110145

111146
/**

‎src/test/java/org/kohsuke/github/EnumTest.java

Copy file name to clipboardExpand all lines: src/test/java/org/kohsuke/github/EnumTest.java
+2-2Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@ public class EnumTest extends AbstractGitHubWireMockTest {
1414
@Test
1515
public void touchEnums() {
1616
assertThat(GHCheckRun.AnnotationLevel.values().length, equalTo(3));
17-
assertThat(GHCheckRun.Conclusion.values().length, equalTo(7));
18-
assertThat(GHCheckRun.Status.values().length, equalTo(3));
17+
assertThat(GHCheckRun.Conclusion.values().length, equalTo(9));
18+
assertThat(GHCheckRun.Status.values().length, equalTo(4));
1919

2020
assertThat(GHCommentAuthorAssociation.values().length, equalTo(7));
2121

‎src/test/java/org/kohsuke/github/GHCheckRunBuilderTest.java

Copy file name to clipboardExpand all lines: src/test/java/org/kohsuke/github/GHCheckRunBuilderTest.java
+5-4Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
package org.kohsuke.github;
2626

2727
import org.junit.Test;
28+
import org.kohsuke.github.GHCheckRun.Status;
2829

2930
import java.io.IOException;
3031
import java.util.Date;
@@ -59,7 +60,7 @@ public void createCheckRun() throws Exception {
5960
.withCaption("Princess Unikitty")))
6061
.add(new GHCheckRunBuilder.Action("Help", "what I need help with", "doit"))
6162
.create();
62-
assertEquals("completed", checkRun.getStatus());
63+
assertEquals(Status.COMPLETED, checkRun.getStatus());
6364
assertEquals(1, checkRun.getOutput().getAnnotationsCount());
6465
assertEquals(1424883286, checkRun.getId());
6566
assertEquals("Hello Text!", checkRun.getOutput().getText());
@@ -79,7 +80,7 @@ public void createCheckRunManyAnnotations() throws Exception {
7980
.withConclusion(GHCheckRun.Conclusion.SUCCESS)
8081
.add(output)
8182
.create();
82-
assertEquals("completed", checkRun.getStatus());
83+
assertEquals(Status.COMPLETED, checkRun.getStatus());
8384
assertEquals("Big Run", checkRun.getOutput().getTitle());
8485
assertEquals("Lots of stuff here »", checkRun.getOutput().getSummary());
8586
assertEquals(101, checkRun.getOutput().getAnnotationsCount());
@@ -94,7 +95,7 @@ public void createCheckRunNoAnnotations() throws Exception {
9495
.withConclusion(GHCheckRun.Conclusion.NEUTRAL)
9596
.add(new GHCheckRunBuilder.Output("Quick note", "nothing more to see here"))
9697
.create();
97-
assertEquals("completed", checkRun.getStatus());
98+
assertEquals(Status.COMPLETED, checkRun.getStatus());
9899
assertEquals(0, checkRun.getOutput().getAnnotationsCount());
99100
assertEquals(1424883957, checkRun.getId());
100101
}
@@ -105,7 +106,7 @@ public void createPendingCheckRun() throws Exception {
105106
.createCheckRun("outstanding", "89a9ae301e35e667756034fdc933b1fc94f63fc1")
106107
.withStatus(GHCheckRun.Status.IN_PROGRESS)
107108
.create();
108-
assertEquals("in_progress", checkRun.getStatus());
109+
assertEquals(Status.IN_PROGRESS, checkRun.getStatus());
109110
assertNull(checkRun.getConclusion());
110111
assertEquals(1424883451, checkRun.getId());
111112
}

‎src/test/java/org/kohsuke/github/GHEventPayloadTest.java

Copy file name to clipboardExpand all lines: src/test/java/org/kohsuke/github/GHEventPayloadTest.java
+4-2Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
import org.junit.Rule;
44
import org.junit.Test;
5+
import org.kohsuke.github.GHCheckRun.Conclusion;
6+
import org.kohsuke.github.GHCheckRun.Status;
57

68
import java.io.IOException;
79
import java.text.SimpleDateFormat;
@@ -563,7 +565,7 @@ private GHCheckRun verifyBasicCheckRunEvent(GHEventPayload.CheckRun event) throw
563565
GHCheckRun checkRun = event.getCheckRun();
564566
assertThat(checkRun.getName(), is("Octocoders-linter"));
565567
assertThat(checkRun.getHeadSha(), is("ec26c3e57ca3a959ca5aad62de7213c562f8c821"));
566-
assertThat(checkRun.getStatus(), is("completed"));
568+
assertThat(checkRun.getStatus(), is(Status.COMPLETED));
567569
assertThat(checkRun.getNodeId(), is("MDg6Q2hlY2tSdW4xMjg2MjAyMjg="));
568570
assertThat(checkRun.getExternalId(), is(""));
569571

@@ -572,7 +574,7 @@ private GHCheckRun verifyBasicCheckRunEvent(GHEventPayload.CheckRun event) throw
572574
assertThat(formatter.format(checkRun.getStartedAt()), is("2019-05-15T15:21:12Z"));
573575
assertThat(formatter.format(checkRun.getCompletedAt()), is("2019-05-15T20:22:22Z"));
574576

575-
assertThat(checkRun.getConclusion(), is("success"));
577+
assertThat(checkRun.getConclusion(), is(Conclusion.SUCCESS));
576578
assertThat(checkRun.getUrl().toString(), endsWith("/repos/Codertocat/Hello-World/check-runs/128620228"));
577579
assertThat(checkRun.getHtmlUrl().toString(),
578580
endsWith("https://github.com/Codertocat/Hello-World/runs/128620228"));

‎src/test/java/org/kohsuke/github/GHRepositoryTest.java

Copy file name to clipboardExpand all lines: src/test/java/org/kohsuke/github/GHRepositoryTest.java
+2-1Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import com.fasterxml.jackson.databind.JsonMappingException;
44
import org.apache.commons.io.IOUtils;
55
import org.junit.Test;
6+
import org.kohsuke.github.GHCheckRun.Conclusion;
67

78
import java.io.ByteArrayInputStream;
89
import java.io.FileNotFoundException;
@@ -743,7 +744,7 @@ public void getCheckRuns() throws Exception {
743744
// Check if the checkruns are all succeeded and if we got all of them
744745
int checkRunsCount = 0;
745746
for (GHCheckRun checkRun : checkRuns) {
746-
assertThat(checkRun.getConclusion(), equalTo("success"));
747+
assertThat(checkRun.getConclusion(), equalTo(Conclusion.SUCCESS));
747748
checkRunsCount++;
748749
}
749750
assertThat(checkRunsCount, equalTo(expectedCount));

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.