dashboard: Fix NPE when event array is empty. (#2136)

diff --git a/dashboard/server/src/main/java/build/bazel/dashboard/github/sync/event/PollGithubEventsTask.java b/dashboard/server/src/main/java/build/bazel/dashboard/github/sync/event/PollGithubEventsTask.java
index 80d6167..1d5d29d 100644
--- a/dashboard/server/src/main/java/build/bazel/dashboard/github/sync/event/PollGithubEventsTask.java
+++ b/dashboard/server/src/main/java/build/bazel/dashboard/github/sync/event/PollGithubEventsTask.java
@@ -150,7 +150,7 @@
         }
         var response = doRequest(owner, repo, perPage, page, etag);
         var body = response.getBody();
-        if (body != null) {
+        if (body != null && body.isArray() && !body.isEmpty()) {
           if (page == 1) {
             newState =
                 JsonState.<PollState>builder()
@@ -186,10 +186,14 @@
         JsonNode body = response.getBody();
         checkState(body != null && body.isArray());
 
-        for (JsonNode event : body) {
-          if (event.get("id").asLong() <= state.getEventId()) {
-            terminate = true;
-            break;
+        if (body.isEmpty()) {
+          terminate = true;
+        } else {
+          for (JsonNode event : body) {
+            if (event.get("id").asLong() <= state.getEventId()) {
+              terminate = true;
+              break;
+            }
           }
         }
       } else {