Merge branch 'stable-3.0' * stable-3.0: Allow to configure the number of hook execution workers Submit: Handle potentially missing username Change-Id: Ib92b3db88ad33e56b3f7bfcf1ba8069a318125e4
diff --git a/src/main/java/com/googlesource/gerrit/plugins/hooks/HookQueue.java b/src/main/java/com/googlesource/gerrit/plugins/hooks/HookQueue.java index 3c376bd..c8f154a 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/hooks/HookQueue.java +++ b/src/main/java/com/googlesource/gerrit/plugins/hooks/HookQueue.java
@@ -16,22 +16,26 @@ import com.google.common.flogger.FluentLogger; import com.google.gerrit.extensions.events.LifecycleListener; +import com.google.gerrit.server.config.GerritServerConfig; import com.google.gerrit.server.git.WorkQueue; import com.google.inject.Inject; import java.nio.file.Files; import java.nio.file.Path; import java.util.concurrent.Future; import java.util.concurrent.ScheduledExecutorService; +import org.eclipse.jgit.lib.Config; class HookQueue implements LifecycleListener { private static final FluentLogger logger = FluentLogger.forEnclosingClass(); private final WorkQueue workQueue; + private final int executorThreads; private ScheduledExecutorService queue; @Inject - HookQueue(WorkQueue workQueue) { + HookQueue(WorkQueue workQueue, @GerritServerConfig Config config) { + this.executorThreads = config.getInt("hooks", "executorThreads", 1); this.workQueue = workQueue; } @@ -50,7 +54,7 @@ @Override public void start() { - queue = workQueue.createQueue(1, "HookQueue"); + queue = workQueue.createQueue(executorThreads, "HookQueue"); } @Override
diff --git a/src/main/java/com/googlesource/gerrit/plugins/hooks/Submit.java b/src/main/java/com/googlesource/gerrit/plugins/hooks/Submit.java index 0a56dad..f23cfa7 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/hooks/Submit.java +++ b/src/main/java/com/googlesource/gerrit/plugins/hooks/Submit.java
@@ -51,7 +51,7 @@ args.add("--project", projectName); args.add("--branch", destBranch.branch()); args.add("--submitter", caller.getNameEmail()); - args.add("--submitter-username", caller.getUserName().get()); + args.add("--submitter-username", caller.getUserName().orElse(null)); args.add("--patchset", patchSetId.get()); args.add("--commit", commit.getId().name());
diff --git a/src/main/resources/Documentation/config.md b/src/main/resources/Documentation/config.md index 9303587..2aea566 100644 --- a/src/main/resources/Documentation/config.md +++ b/src/main/resources/Documentation/config.md
@@ -37,6 +37,9 @@ : Timeout value in seconds for synchronous hooks. If not set, defaults to 30 seconds. +hooks.executorThreads +: Number of workers to use for hook execution. If not set, defaults to 1. + hooks.changeAbandonedHook : Filename for the change abandoned hook. If not set, defaults to `change-abandoned`.