From 40937a5cc6132f6a786b50f275a1db74c68ebb23 Mon Sep 17 00:00:00 2001 From: Guillaume Smet Date: Fri, 19 Mar 2021 14:50:05 +0100 Subject: [PATCH] Add the missing fields for GHLabel Fixes #1059 --- src/main/java/org/kohsuke/github/GHLabel.java | 33 +++++++++++++++++++ src/test/java/org/kohsuke/github/AppTest.java | 8 +++++ .../org/kohsuke/github/GHPullRequestTest.java | 15 +++++++-- 3 files changed, 54 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/kohsuke/github/GHLabel.java b/src/main/java/org/kohsuke/github/GHLabel.java index 85628d5d33..db66b7f50d 100644 --- a/src/main/java/org/kohsuke/github/GHLabel.java +++ b/src/main/java/org/kohsuke/github/GHLabel.java @@ -2,6 +2,7 @@ import com.fasterxml.jackson.annotation.JacksonInject; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonProperty; import java.io.IOException; import java.util.ArrayList; @@ -22,6 +23,11 @@ */ public class GHLabel extends GitHubInteractiveObject { + private long id; + private String nodeId; + @JsonProperty("default") + private boolean default_; + @Nonnull private String url, name, color; @@ -42,6 +48,24 @@ GitHub getApiRoot() { return Objects.requireNonNull(root); } + /** + * Gets id. + * + * @return the id + */ + public long getId() { + return id; + } + + /** + * Gets node id. + * + * @return the node id. + */ + public String getNodeId() { + return nodeId; + } + /** * Gets url. * @@ -82,6 +106,15 @@ public String getDescription() { return description; } + /** + * If the label is one of the default labels created by GitHub automatically. + * + * @return true if the label is a default one + */ + public boolean isDefault() { + return default_; + } + /** * Sets color. * diff --git a/src/test/java/org/kohsuke/github/AppTest.java b/src/test/java/org/kohsuke/github/AppTest.java index a15e751caa..1c0d97bd83 100755 --- a/src/test/java/org/kohsuke/github/AppTest.java +++ b/src/test/java/org/kohsuke/github/AppTest.java @@ -965,6 +965,9 @@ public void testRepoLabel() throws IOException { GHLabel e = r.getLabel("enhancement"); assertEquals("enhancement", e.getName()); assertNotNull(e.getUrl()); + assertEquals(177339106, e.getId()); + assertEquals("MDU6TGFiZWwxNzczMzkxMDY=", e.getNodeId()); + assertTrue(e.isDefault()); assertTrue(Pattern.matches("[0-9a-fA-F]{6}", e.getColor())); GHLabel t = null; @@ -976,12 +979,17 @@ public void testRepoLabel() throws IOException { assertThat(t, not(sameInstance(t2))); assertThat(t, equalTo(t2)); + assertFalse(t2.isDefault()); + + assertEquals(t.getId(), t2.getId()); + assertEquals(t.getNodeId(), t2.getNodeId()); assertEquals(t.getName(), t2.getName()); assertEquals(t.getColor(), "123456"); assertEquals(t.getColor(), t2.getColor()); assertEquals(t.getDescription(), ""); assertEquals(t.getDescription(), t2.getDescription()); assertEquals(t.getUrl(), t2.getUrl()); + assertEquals(t.isDefault(), t2.isDefault()); // update works on multiple changes in one call t3 = t.update().color("000000").description("It is dark!").done(); diff --git a/src/test/java/org/kohsuke/github/GHPullRequestTest.java b/src/test/java/org/kohsuke/github/GHPullRequestTest.java index 70f339327a..87a2c5f10b 100644 --- a/src/test/java/org/kohsuke/github/GHPullRequestTest.java +++ b/src/test/java/org/kohsuke/github/GHPullRequestTest.java @@ -9,7 +9,14 @@ import java.util.Collections; import java.util.List; -import static org.hamcrest.Matchers.*; +import static org.hamcrest.Matchers.containsInAnyOrder; +import static org.hamcrest.Matchers.containsString; +import static org.hamcrest.Matchers.equalTo; +import static org.hamcrest.Matchers.hasProperty; +import static org.hamcrest.Matchers.instanceOf; +import static org.hamcrest.Matchers.is; +import static org.hamcrest.Matchers.notNullValue; +import static org.hamcrest.Matchers.nullValue; /** * @author Kohsuke Kawaguchi @@ -418,7 +425,11 @@ public void setLabels() throws Exception { Collection labels = getRepository().getPullRequest(p.getNumber()).getLabels(); assertEquals(1, labels.size()); - assertEquals(label, labels.iterator().next().getName()); + GHLabel savedLabel = labels.iterator().next(); + assertEquals(label, savedLabel.getName()); + assertNotNull(savedLabel.getId()); + assertNotNull(savedLabel.getNodeId()); + assertFalse(savedLabel.isDefault()); } @Test