Bind GerritChange in event context
Change-Id: I80ca16fdb760b19322ca2ad142c6e07fb3c47f1d
diff --git a/src/main/java/com/googlesource/gerrit/plugins/chatgpt/listener/EventHandlerExecutor.java b/src/main/java/com/googlesource/gerrit/plugins/chatgpt/listener/EventHandlerExecutor.java
index 9f6ce1a..4cce7cd 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/chatgpt/listener/EventHandlerExecutor.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/chatgpt/listener/EventHandlerExecutor.java
@@ -32,9 +32,9 @@
}
public void execute(Configuration config, Event event) {
- GerritEventContextModule contextModule = new GerritEventContextModule(config);
- EventHandlerTask.Factory taskHandlerFactory = injector.createChildInjector(contextModule)
- .getInstance(EventHandlerTask.Factory.class);
- executor.execute(taskHandlerFactory.create(event));
+ GerritEventContextModule contextModule = new GerritEventContextModule(config, event);
+ EventHandlerTask task = injector.createChildInjector(contextModule)
+ .getInstance(EventHandlerTask.class);
+ executor.execute(task);
}
}
diff --git a/src/main/java/com/googlesource/gerrit/plugins/chatgpt/listener/EventHandlerTask.java b/src/main/java/com/googlesource/gerrit/plugins/chatgpt/listener/EventHandlerTask.java
index 796e77f..fafe16c 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/chatgpt/listener/EventHandlerTask.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/chatgpt/listener/EventHandlerTask.java
@@ -3,13 +3,9 @@
import com.google.common.annotations.VisibleForTesting;
import com.google.common.base.Splitter;
import com.google.gerrit.extensions.client.ChangeKind;
-import com.google.gerrit.extensions.config.FactoryModule;
import com.google.gerrit.server.data.ChangeAttribute;
import com.google.gerrit.server.data.PatchSetAttribute;
-import com.google.gerrit.server.events.Event;
import com.google.inject.Inject;
-import com.google.inject.Module;
-import com.google.inject.assistedinject.Assisted;
import com.googlesource.gerrit.plugins.chatgpt.PatchSetReviewer;
import com.googlesource.gerrit.plugins.chatgpt.config.Configuration;
import com.googlesource.gerrit.plugins.chatgpt.data.ChangeSetDataHandler;
@@ -30,17 +26,6 @@
@Slf4j
public class EventHandlerTask implements Runnable {
- public static final Module MODULE = new FactoryModule() {
- @Override
- protected void configure() {
- factory(EventHandlerTask.Factory.class);
- }
- };
-
- public interface Factory {
- EventHandlerTask create(Event event);
- }
-
@VisibleForTesting
public enum Result {
OK, NOT_SUPPORTED, FAILURE
@@ -51,26 +36,26 @@
"comment-added", true
);
- private final Event event;
private final Configuration config;
private final GerritClient gerritClient;
private final GitRepoFiles gitRepoFiles;
+ private final GerritChange change;
private final PatchSetReviewer reviewer;
private final PluginDataHandler pluginDataHandler;
@Inject
EventHandlerTask(
Configuration config,
+ GerritChange change,
PatchSetReviewer reviewer,
GerritClient gerritClient,
GitRepoFiles gitRepoFiles,
- PluginDataHandler pluginDataHandler,
- @Assisted Event event
+ PluginDataHandler pluginDataHandler
) {
+ this.change = change;
this.reviewer = reviewer;
this.gerritClient = gerritClient;
this.config = config;
- this.event = event;
this.gitRepoFiles = gitRepoFiles;
this.pluginDataHandler = pluginDataHandler;
}
@@ -82,7 +67,6 @@
@VisibleForTesting
public Result execute() {
- GerritChange change = new GerritChange(event);
gerritClient.initialize(config, change);
Integer gptAccountId = gerritClient.getNotNullAccountId(change, config.getGerritUserName());
ChangeSetData changeSetData = ChangeSetDataHandler.getNewInstance(config, change, gptAccountId);
diff --git a/src/main/java/com/googlesource/gerrit/plugins/chatgpt/listener/GerritEventContextModule.java b/src/main/java/com/googlesource/gerrit/plugins/chatgpt/listener/GerritEventContextModule.java
index d71d69a..b25d564 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/chatgpt/listener/GerritEventContextModule.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/chatgpt/listener/GerritEventContextModule.java
@@ -1,19 +1,22 @@
package com.googlesource.gerrit.plugins.chatgpt.listener;
import com.google.gerrit.extensions.config.FactoryModule;
+import com.google.gerrit.server.events.Event;
import com.googlesource.gerrit.plugins.chatgpt.config.Configuration;
+import com.googlesource.gerrit.plugins.chatgpt.mode.common.client.api.gerrit.GerritChange;
public class GerritEventContextModule extends FactoryModule {
+ private final Event event;
private final Configuration config;
- public GerritEventContextModule(Configuration config) {
+ public GerritEventContextModule(Configuration config, Event event) {
+ this.event = event;
this.config = config;
}
@Override
protected void configure() {
- install(EventHandlerTask.MODULE);
-
bind(Configuration.class).toInstance(config);
+ bind(GerritChange.class).toInstance(new GerritChange(event));
}
}
diff --git a/src/test/java/com/googlesource/gerrit/plugins/chatgpt/ChatGptReviewTestBase.java b/src/test/java/com/googlesource/gerrit/plugins/chatgpt/ChatGptReviewTestBase.java
index 59d96de..55140c8 100644
--- a/src/test/java/com/googlesource/gerrit/plugins/chatgpt/ChatGptReviewTestBase.java
+++ b/src/test/java/com/googlesource/gerrit/plugins/chatgpt/ChatGptReviewTestBase.java
@@ -205,10 +205,10 @@
setupCommonEventMocks((PatchSetEvent) event); // Apply common mock configurations
typeSpecificSetup.accept(event);
- EventHandlerTask.Factory factory = Guice.createInjector(EventHandlerTask.MODULE, new AbstractModule() {
+ EventHandlerTask task = Guice.createInjector(new AbstractModule() {
@Override
protected void configure() {
- install(new GerritEventContextModule(config));
+ install(new GerritEventContextModule(config, event));
bind(GerritClient.class).toInstance(gerritClient);
bind(GitRepoFiles.class).toInstance(gitRepoFiles);
@@ -216,8 +216,8 @@
bind(PatchSetReviewer.class).toInstance(patchSetReviewer);
bind(PluginDataHandler.class).toInstance(pluginDataHandler);
}
- }).getInstance(EventHandlerTask.Factory.class);
- return factory.create(event).execute();
+ }).getInstance(EventHandlerTask.class);
+ return task.execute();
}
protected void testRequestSent() {