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 {