Store GHEvents as strings so that we properly handle the unknown values

This commit is contained in:
Guillaume Smet
2021-05-26 19:25:22 +02:00
parent 1a56f9d093
commit a79971e406
3 changed files with 19 additions and 7 deletions

View File

@@ -1,9 +1,13 @@
package org.kohsuke.github;
import org.kohsuke.github.internal.EnumUtils;
import java.io.IOException;
import java.net.URL;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.stream.Collectors;
import static org.kohsuke.github.internal.Previews.MACHINE_MAN;
@@ -20,7 +24,7 @@ public class GHApp extends GHObject {
private String description;
private String externalUrl;
private Map<String, String> permissions;
private List<GHEvent> events;
private List<String> events;
private long installationsCount;
private String htmlUrl;
@@ -114,7 +118,9 @@ public class GHApp extends GHObject {
* @return the events
*/
public List<GHEvent> getEvents() {
return events;
return events.stream()
.map(e -> EnumUtils.getEnumOrDefault(GHEvent.class, e.toUpperCase(Locale.ROOT), GHEvent.UNKNOWN))
.collect(Collectors.toList());
}
/**
@@ -126,7 +132,7 @@ public class GHApp extends GHObject {
*/
@Deprecated
public void setEvents(List<GHEvent> events) {
this.events = events;
this.events = events.stream().map(GHEvent::symbol).collect(Collectors.toList());
}
/**

View File

@@ -1,12 +1,15 @@
package org.kohsuke.github;
import com.fasterxml.jackson.annotation.JsonProperty;
import org.kohsuke.github.internal.EnumUtils;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.stream.Collectors;
import static org.kohsuke.github.internal.Previews.GAMBIT;
import static org.kohsuke.github.internal.Previews.MACHINE_MAN;
@@ -35,7 +38,7 @@ public class GHAppInstallation extends GHObject {
@JsonProperty("target_type")
private GHTargetType targetType;
private Map<String, GHPermissionType> permissions;
private List<GHEvent> events;
private List<String> events;
@JsonProperty("single_file_name")
private String singleFileName;
@JsonProperty("repository_selection")
@@ -250,7 +253,9 @@ public class GHAppInstallation extends GHObject {
* @return the events
*/
public List<GHEvent> getEvents() {
return events;
return events.stream()
.map(e -> EnumUtils.getEnumOrDefault(GHEvent.class, e.toUpperCase(Locale.ROOT), GHEvent.UNKNOWN))
.collect(Collectors.toList());
}
/**
@@ -262,7 +267,7 @@ public class GHAppInstallation extends GHObject {
*/
@Deprecated
public void setEvents(List<GHEvent> events) {
this.events = events;
this.events = events.stream().map(GHEvent::symbol).collect(Collectors.toList());
}
/**

View File

@@ -1,6 +1,7 @@
package org.kohsuke.github;
import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
import org.kohsuke.github.internal.EnumUtils;
import java.io.IOException;
import java.net.URL;
@@ -43,7 +44,7 @@ public abstract class GHHook extends GHObject {
if (e.equals("*"))
s.add(GHEvent.ALL);
else
s.add(Enum.valueOf(GHEvent.class, e.toUpperCase(Locale.ENGLISH)));
s.add(EnumUtils.getEnumOrDefault(GHEvent.class, e.toUpperCase(Locale.ROOT), GHEvent.UNKNOWN));
}
return s;
}