Exclude WIP Change Sets from automated review

Automated reviews are now skipped for Change Sets marked as
Work-In-Progress (WIP).

Jira-Id: IT-103
Change-Id: If08b3717682122185bcaf49d4bf3a2cbb20381d8
Signed-off-by: Patrizio <patrizio.gelosi@amarulasolutions.com>
diff --git a/src/main/java/com/googlesource/gerrit/plugins/chatgpt/client/gerrit/GerritClient.java b/src/main/java/com/googlesource/gerrit/plugins/chatgpt/client/gerrit/GerritClient.java
index 4b8b072..f88cfbe 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/chatgpt/client/gerrit/GerritClient.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/chatgpt/client/gerrit/GerritClient.java
@@ -54,6 +54,11 @@
         return gerritClientFacade.isDisabledTopic(topic);
     }
 
+    public boolean isWorkInProgress(GerritChange change) {
+        updateGerritClientFacade(change);
+        return gerritClientFacade.isWorkInProgress();
+    }
+
     public HashMap<String, FileDiffProcessed> getFileDiffsProcessed(GerritChange change) {
         updateGerritClientFacade(change);
         return gerritClientFacade.getFileDiffsProcessed();
diff --git a/src/main/java/com/googlesource/gerrit/plugins/chatgpt/client/gerrit/GerritClientDetail.java b/src/main/java/com/googlesource/gerrit/plugins/chatgpt/client/gerrit/GerritClientDetail.java
index db0d302..c8ac30e 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/chatgpt/client/gerrit/GerritClientDetail.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/chatgpt/client/gerrit/GerritClientDetail.java
@@ -33,6 +33,10 @@
         return gerritPatchSetDetail.getMessages();
     }
 
+    public boolean isWorkInProgress() {
+        return gerritPatchSetDetail.getWorkInProgress() != null && gerritPatchSetDetail.getWorkInProgress();
+    }
+
     public GerritPermittedVotingRange getPermittedVotingRange() {
         List<GerritPatchSetDetail.Permission> permissions = gerritPatchSetDetail.getLabels().getCodeReview().getAll();
         if (permissions == null) {
diff --git a/src/main/java/com/googlesource/gerrit/plugins/chatgpt/client/gerrit/GerritClientFacade.java b/src/main/java/com/googlesource/gerrit/plugins/chatgpt/client/gerrit/GerritClientFacade.java
index 7876735..bdc2418 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/chatgpt/client/gerrit/GerritClientFacade.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/chatgpt/client/gerrit/GerritClientFacade.java
@@ -44,6 +44,10 @@
         return gerritClientPatchSet.isDisabledTopic(topic);
     }
 
+    public boolean isWorkInProgress() {
+        return gerritClientDetail.isWorkInProgress();
+    }
+
     public HashMap<String, FileDiffProcessed> getFileDiffsProcessed() {
         return gerritClientPatchSet.getFileDiffsProcessed();
     }
diff --git a/src/main/java/com/googlesource/gerrit/plugins/chatgpt/listener/EventListenerHandler.java b/src/main/java/com/googlesource/gerrit/plugins/chatgpt/listener/EventListenerHandler.java
index 5a67abd..22a8d59 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/chatgpt/listener/EventListenerHandler.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/chatgpt/listener/EventListenerHandler.java
@@ -140,6 +140,10 @@
             log.info("PatchSetAttribute event properties not retrieved");
             return false;
         }
+        if (gerritClient.isWorkInProgress(change)) {
+            log.debug("Skipping Patch Set processing due to its WIP status.");
+            return false;
+        }
         PatchSetAttribute patchSetAttribute = patchSetAttributeOptional.get();
         ChangeKind patchSetEventKind = patchSetAttribute.kind;
         if (patchSetEventKind != REWORK) {
diff --git a/src/main/java/com/googlesource/gerrit/plugins/chatgpt/model/gerrit/GerritPatchSetDetail.java b/src/main/java/com/googlesource/gerrit/plugins/chatgpt/model/gerrit/GerritPatchSetDetail.java
index 8803b18..c2d13e1 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/chatgpt/model/gerrit/GerritPatchSetDetail.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/chatgpt/model/gerrit/GerritPatchSetDetail.java
@@ -9,6 +9,8 @@
 public class GerritPatchSetDetail {
     private Labels labels;
     private List<GerritComment> messages;
+    @SerializedName("work_in_progress")
+    private Boolean workInProgress;
 
     @Data
     public static class Labels {