Consume only relevant stream events

The pull-replication plugin is uninterested in the vast majority of
ProjectEvent specifications, which include numerous types such as
ChangeAbandoned, CommentAdded, and FetchRefReplicatedEvent, among
others.

Instead, pull-replication focuses solely on events that trigger the
creation, update, or removal of Git repositories. Specifically, these
events are:

- ProjectDeletedEvent
- ProjectCreatedEvent
- RefUpdatedEvent
- ProjectHeadUpdatedEvent

All other ProjectEvent types are unnecessary for pull-replication and
can be safely ignored when consuming stream events. This change ensures
that only relevant events are processed, improving efficiency and
reducing noise.

Change-Id: I5914f3752d44776eb6e2c25ec9b7ca60a0e6eeee
diff --git a/src/main/java/com/googlesource/gerrit/plugins/replication/pull/event/StreamEventListener.java b/src/main/java/com/googlesource/gerrit/plugins/replication/pull/event/StreamEventListener.java
index 4c9793c..eb2d7e0 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/replication/pull/event/StreamEventListener.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/replication/pull/event/StreamEventListener.java
@@ -212,7 +212,7 @@
   }
 
   private boolean shouldReplicateProject(Event event) {
-    if (!(event instanceof ProjectEvent)) {
+    if (!isInterestingEventType(event)) {
       return false;
     }
 
@@ -243,6 +243,13 @@
     return source.wouldFetchProject(projectEvent.getProjectNameKey());
   }
 
+  private static boolean isInterestingEventType(Event event) {
+    return event instanceof ProjectDeletedEvent
+        || event instanceof ProjectCreatedEvent
+        || event instanceof RefUpdatedEvent
+        || event instanceof ProjectHeadUpdatedEvent;
+  }
+
   private boolean isRefDelete(RefUpdatedEvent event) {
     return ZERO_ID_NAME.equals(event.refUpdate.get().newRev);
   }