Merge branch 'stable-2.14' into stable-2.15 * stable-2.14: [HookTask] Avoid shadowing field [HookTask] Close readers in try-with-resources Change-Id: I4cc4b9dc7aafe058839ba373b741f9daa3a94160
diff --git a/src/main/java/com/googlesource/gerrit/plugins/hooks/AgreementSignup.java b/src/main/java/com/googlesource/gerrit/plugins/hooks/AgreementSignup.java index 3953bf6..0eb9b6f 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/hooks/AgreementSignup.java +++ b/src/main/java/com/googlesource/gerrit/plugins/hooks/AgreementSignup.java
@@ -21,7 +21,7 @@ @Singleton class AgreementSignup implements AgreementSignupListener { - private final AsynchronousHook hook; + private final Hook hook; private final HookFactory hookFactory; @Inject @@ -40,7 +40,7 @@ args.add("--user-id", submitter._accountId); args.add("--cla-name", event.getAgreementName()); - hook.submit(args); + hook.execute(args); } } }
diff --git a/src/main/java/com/googlesource/gerrit/plugins/hooks/AsynchronousHook.java b/src/main/java/com/googlesource/gerrit/plugins/hooks/AsynchronousHook.java index c581642..4e74ece 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/hooks/AsynchronousHook.java +++ b/src/main/java/com/googlesource/gerrit/plugins/hooks/AsynchronousHook.java
@@ -16,7 +16,7 @@ import java.nio.file.Path; -public class AsynchronousHook extends Hook { +class AsynchronousHook extends Hook { private final HookQueue queue; AsynchronousHook(HookQueue queue, Path path) { @@ -24,11 +24,15 @@ this.queue = queue; } - void submit(HookArgs args) { + @Override + HookResult execute(HookArgs args) { queue.submit(path, args); + return null; } - void submit(String projectName, HookArgs args) { + @Override + HookResult execute(String projectName, HookArgs args) { queue.submit(projectName, path, args); + return null; } }
diff --git a/src/main/java/com/googlesource/gerrit/plugins/hooks/ChangeAbandoned.java b/src/main/java/com/googlesource/gerrit/plugins/hooks/ChangeAbandoned.java index 19e6753..20ace66 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/hooks/ChangeAbandoned.java +++ b/src/main/java/com/googlesource/gerrit/plugins/hooks/ChangeAbandoned.java
@@ -21,7 +21,7 @@ @Singleton class ChangeAbandoned implements ChangeAbandonedListener { - private final AsynchronousHook hook; + private final Hook hook; private final HookFactory hookFactory; @Inject @@ -45,6 +45,6 @@ args.add("--commit", c.currentRevision); args.add("--reason", event.getReason()); - hook.submit(c.project, args); + hook.execute(c.project, args); } }
diff --git a/src/main/java/com/googlesource/gerrit/plugins/hooks/ChangeMerged.java b/src/main/java/com/googlesource/gerrit/plugins/hooks/ChangeMerged.java index 6e28143..6ef03e0 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/hooks/ChangeMerged.java +++ b/src/main/java/com/googlesource/gerrit/plugins/hooks/ChangeMerged.java
@@ -21,7 +21,7 @@ @Singleton class ChangeMerged implements ChangeMergedListener { - private final AsynchronousHook hook; + private final Hook hook; private final HookFactory hookFactory; @Inject @@ -45,6 +45,6 @@ args.add("--commit", c.currentRevision); args.add("--newrev", event.getNewRevisionId()); - hook.submit(c.project, args); + hook.execute(c.project, args); } }
diff --git a/src/main/java/com/googlesource/gerrit/plugins/hooks/ChangeRestored.java b/src/main/java/com/googlesource/gerrit/plugins/hooks/ChangeRestored.java index af0f9a8..27b1c07 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/hooks/ChangeRestored.java +++ b/src/main/java/com/googlesource/gerrit/plugins/hooks/ChangeRestored.java
@@ -21,7 +21,7 @@ @Singleton class ChangeRestored implements ChangeRestoredListener { - private final AsynchronousHook hook; + private final Hook hook; private final HookFactory hookFactory; @Inject @@ -45,6 +45,6 @@ args.add("--commit", c.currentRevision); args.add("--reason", event.getReason()); - hook.submit(c.project, args); + hook.execute(c.project, args); } }
diff --git a/src/main/java/com/googlesource/gerrit/plugins/hooks/CommentAdded.java b/src/main/java/com/googlesource/gerrit/plugins/hooks/CommentAdded.java index cea65d1..7dc1624 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/hooks/CommentAdded.java +++ b/src/main/java/com/googlesource/gerrit/plugins/hooks/CommentAdded.java
@@ -21,7 +21,7 @@ @Singleton class CommentAdded implements CommentAddedListener { - private final AsynchronousHook hook; + private final Hook hook; private final HookFactory hookFactory; @Inject @@ -36,7 +36,6 @@ ChangeInfo c = event.getChange(); args.add("--change", c.id); - args.add("--is-draft", event.getRevision().draft); args.addUrl(c); args.add("--change-owner", c.owner); args.add("--project", c.project); @@ -47,6 +46,6 @@ args.add("--comment", event.getComment()); args.addApprovals(event.getApprovals(), event.getOldApprovals()); - hook.submit(c.project, args); + hook.execute(c.project, args); } }
diff --git a/src/main/java/com/googlesource/gerrit/plugins/hooks/CommitReceived.java b/src/main/java/com/googlesource/gerrit/plugins/hooks/CommitReceived.java index e08a043..b03a77b 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/hooks/CommitReceived.java +++ b/src/main/java/com/googlesource/gerrit/plugins/hooks/CommitReceived.java
@@ -27,7 +27,7 @@ @Singleton public class CommitReceived implements CommitValidationListener { - private final SynchronousHook hook; + private final Hook hook; private final HookFactory hookFactory; @Inject @@ -51,11 +51,12 @@ args.add("--project", projectName); args.add("--refname", refname); args.add("--uploader", receiveEvent.user.getNameEmail()); + args.add("--uploader-username", receiveEvent.user.getUserName()); args.add("--oldrev", old.name()); args.add("--newrev", receiveEvent.commit.name()); args.add("--cmdref", commandRef); - HookResult result = hook.run(projectName, args); + HookResult result = hook.execute(projectName, args); if (result != null) { String output = result.toString(); if (result.getExitValue() != 0) {
diff --git a/src/main/java/com/googlesource/gerrit/plugins/hooks/DraftPublished.java b/src/main/java/com/googlesource/gerrit/plugins/hooks/DraftPublished.java deleted file mode 100644 index 7ae68f2..0000000 --- a/src/main/java/com/googlesource/gerrit/plugins/hooks/DraftPublished.java +++ /dev/null
@@ -1,50 +0,0 @@ -// Copyright (C) 2016 The Android Open Source Project -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package com.googlesource.gerrit.plugins.hooks; - -import com.google.gerrit.extensions.common.ChangeInfo; -import com.google.gerrit.extensions.events.DraftPublishedListener; -import com.google.inject.Inject; -import com.google.inject.Singleton; - -@Singleton -class DraftPublished implements DraftPublishedListener { - private final AsynchronousHook hook; - private final HookFactory hookFactory; - - @Inject - DraftPublished(HookFactory hookFactory) { - this.hook = hookFactory.createAsync("draftPublishedHook", "draft-published"); - this.hookFactory = hookFactory; - } - - @Override - public void onDraftPublished(DraftPublishedListener.Event event) { - HookArgs args = hookFactory.createArgs(); - - ChangeInfo c = event.getChange(); - args.add("--change", c.id); - args.addUrl(c); - args.add("--change-owner", c.owner); - args.add("--project", c.project); - args.add("--branch", c.branch); - args.add("--topic", c.topic); - args.add("--uploader", event.getWho()); - args.add("--commit", event.getRevision().commit.commit); - args.add("--patchset", event.getRevision()._number); - - hook.submit(c.project, args); - } -}
diff --git a/src/main/java/com/googlesource/gerrit/plugins/hooks/GitReferenceUpdated.java b/src/main/java/com/googlesource/gerrit/plugins/hooks/GitReferenceUpdated.java index cf1a10d..07fff1e 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/hooks/GitReferenceUpdated.java +++ b/src/main/java/com/googlesource/gerrit/plugins/hooks/GitReferenceUpdated.java
@@ -20,7 +20,7 @@ @Singleton class GitReferenceUpdated implements GitReferenceUpdatedListener { - private final AsynchronousHook hook; + private final Hook hook; private final HookFactory hookFactory; @Inject @@ -39,6 +39,6 @@ args.add("--project", event.getProjectName()); args.add("--submitter", event.getUpdater()); - hook.submit(event.getProjectName(), args); + hook.execute(event.getProjectName(), args); } }
diff --git a/src/main/java/com/googlesource/gerrit/plugins/hooks/HashtagsEdited.java b/src/main/java/com/googlesource/gerrit/plugins/hooks/HashtagsEdited.java index 9bb40c1..7735b38 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/hooks/HashtagsEdited.java +++ b/src/main/java/com/googlesource/gerrit/plugins/hooks/HashtagsEdited.java
@@ -22,7 +22,7 @@ @Singleton class HashtagsEdited implements HashtagsEditedListener { - private final AsynchronousHook hook; + private final Hook hook; private final HookFactory hookFactory; @Inject @@ -45,7 +45,7 @@ add(args, "--added", event.getAddedHashtags()); add(args, "--removed", event.getRemovedHashtags()); - hook.submit(c.project, args); + hook.execute(c.project, args); } private void add(HookArgs args, String name, Collection<String> hashtags) {
diff --git a/src/main/java/com/googlesource/gerrit/plugins/hooks/Hook.java b/src/main/java/com/googlesource/gerrit/plugins/hooks/Hook.java index 87fb4f4..fc84b9e 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/hooks/Hook.java +++ b/src/main/java/com/googlesource/gerrit/plugins/hooks/Hook.java
@@ -14,12 +14,17 @@ package com.googlesource.gerrit.plugins.hooks; +import com.google.gerrit.common.Nullable; import java.nio.file.Path; -public class Hook { +abstract class Hook { protected final Path path; Hook(Path path) { this.path = path; } + + abstract @Nullable HookResult execute(HookArgs args); + + abstract @Nullable HookResult execute(String projectName, HookArgs args); }
diff --git a/src/main/java/com/googlesource/gerrit/plugins/hooks/HookArgs.java b/src/main/java/com/googlesource/gerrit/plugins/hooks/HookArgs.java index 6c4b2fd..91d3696 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/hooks/HookArgs.java +++ b/src/main/java/com/googlesource/gerrit/plugins/hooks/HookArgs.java
@@ -18,19 +18,26 @@ import com.google.common.base.Strings; import com.google.common.collect.ImmutableList; +import com.google.gerrit.common.Nullable; import com.google.gerrit.extensions.common.AccountInfo; import com.google.gerrit.extensions.common.ApprovalInfo; import com.google.gerrit.extensions.common.ChangeInfo; import com.google.gerrit.reviewdb.client.Account; import com.google.gerrit.server.IdentifiedUser; +import com.google.gerrit.server.config.CanonicalWebUrl; import com.google.gerrit.server.config.SitePaths; import com.google.gerrit.server.git.GitRepositoryManager; +import com.google.inject.Inject; import com.google.inject.Provider; import java.util.ArrayList; import java.util.List; import java.util.Map; class HookArgs { + interface Factory { + HookArgs create(); + } + final IdentifiedUser.GenericFactory identifiedUserFactory; final Provider<String> urlProvider; final HookMetrics metrics; @@ -39,9 +46,10 @@ private final List<String> args; + @Inject HookArgs( IdentifiedUser.GenericFactory identifiedUserFactory, - Provider<String> urlProvider, + @CanonicalWebUrl @Nullable Provider<String> urlProvider, HookMetrics metrics, GitRepositoryManager gitManager, SitePaths sitePaths) { @@ -82,6 +90,8 @@ if (account != null) { args.add(name); args.add(format(account)); + + add(name + "-username", account.username); } }
diff --git a/src/main/java/com/googlesource/gerrit/plugins/hooks/HookFactory.java b/src/main/java/com/googlesource/gerrit/plugins/hooks/HookFactory.java index 81d1400..f3d8293 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/hooks/HookFactory.java +++ b/src/main/java/com/googlesource/gerrit/plugins/hooks/HookFactory.java
@@ -16,14 +16,9 @@ import static com.google.common.base.MoreObjects.firstNonNull; -import com.google.gerrit.common.Nullable; -import com.google.gerrit.server.IdentifiedUser; -import com.google.gerrit.server.config.CanonicalWebUrl; import com.google.gerrit.server.config.GerritServerConfig; import com.google.gerrit.server.config.SitePaths; -import com.google.gerrit.server.git.GitRepositoryManager; import com.google.inject.Inject; -import com.google.inject.Provider; import com.google.inject.Singleton; import java.nio.file.Path; import java.nio.file.Paths; @@ -38,31 +33,20 @@ private final HookQueue queue; private final HookExecutor syncHookExecutor; private final Config config; - private final IdentifiedUser.GenericFactory identifiedUserFactory; - private final HookMetrics metrics; - private final Provider<String> urlProvider; private final Path hooksPath; - private final GitRepositoryManager gitManager; - private final SitePaths sitePaths; + private final HookArgs.Factory argsFactory; @Inject HookFactory( HookQueue queue, HookExecutor syncHookExecutor, @GerritServerConfig Config config, - IdentifiedUser.GenericFactory identifiedUserFactory, - @CanonicalWebUrl @Nullable Provider<String> urlProvider, - HookMetrics metrics, SitePaths sitePaths, - GitRepositoryManager gitManager) { + HookArgs.Factory argsFactory) { this.queue = queue; this.syncHookExecutor = syncHookExecutor; this.config = config; - this.identifiedUserFactory = identifiedUserFactory; - this.metrics = metrics; - this.urlProvider = urlProvider; - this.gitManager = gitManager; - this.sitePaths = sitePaths; + this.argsFactory = argsFactory; String v = config.getString("hooks", null, "path"); if (v != null) { @@ -80,15 +64,15 @@ return hookPath; } - public AsynchronousHook createAsync(String configName, String defaultName) { + public Hook createAsync(String configName, String defaultName) { return new AsynchronousHook(queue, getHookPath(configName, defaultName)); } - public SynchronousHook createSync(String configName, String defaultName) { + public Hook createSync(String configName, String defaultName) { return new SynchronousHook(syncHookExecutor, getHookPath(configName, defaultName)); } public HookArgs createArgs() { - return new HookArgs(identifiedUserFactory, urlProvider, metrics, gitManager, sitePaths); + return argsFactory.create(); } }
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 82b2151..1b2a307 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/hooks/HookQueue.java +++ b/src/main/java/com/googlesource/gerrit/plugins/hooks/HookQueue.java
@@ -19,6 +19,7 @@ import com.google.inject.Inject; import java.nio.file.Files; import java.nio.file.Path; +import java.util.concurrent.ScheduledExecutorService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -27,7 +28,7 @@ private final WorkQueue workQueue; - private WorkQueue.Executor queue; + private ScheduledExecutorService queue; @Inject HookQueue(WorkQueue workQueue) { @@ -54,7 +55,6 @@ @Override public void stop() { if (queue != null) { - queue.unregisterWorkQueue(); queue.shutdownNow(); queue = null; }
diff --git a/src/main/java/com/googlesource/gerrit/plugins/hooks/Module.java b/src/main/java/com/googlesource/gerrit/plugins/hooks/Module.java index bb2ee4c..aeea41e 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/hooks/Module.java +++ b/src/main/java/com/googlesource/gerrit/plugins/hooks/Module.java
@@ -14,12 +14,12 @@ package com.googlesource.gerrit.plugins.hooks; +import com.google.gerrit.extensions.config.FactoryModule; import com.google.gerrit.extensions.events.AgreementSignupListener; import com.google.gerrit.extensions.events.ChangeAbandonedListener; import com.google.gerrit.extensions.events.ChangeMergedListener; import com.google.gerrit.extensions.events.ChangeRestoredListener; import com.google.gerrit.extensions.events.CommentAddedListener; -import com.google.gerrit.extensions.events.DraftPublishedListener; import com.google.gerrit.extensions.events.GitReferenceUpdatedListener; import com.google.gerrit.extensions.events.HashtagsEditedListener; import com.google.gerrit.extensions.events.LifecycleListener; @@ -32,11 +32,10 @@ import com.google.gerrit.server.git.validators.CommitValidationListener; import com.google.gerrit.server.git.validators.MergeValidationListener; import com.google.gerrit.server.git.validators.RefOperationValidationListener; -import com.google.inject.AbstractModule; import com.google.inject.Scopes; import com.google.inject.internal.UniqueAnnotations; -class Module extends AbstractModule { +class Module extends FactoryModule { @Override protected void configure() { bind(HookQueue.class).in(Scopes.SINGLETON); @@ -44,13 +43,14 @@ bind(HookExecutor.class).in(Scopes.SINGLETON); bind(LifecycleListener.class).annotatedWith(UniqueAnnotations.create()).to(HookExecutor.class); + factory(HookArgs.Factory.class); + DynamicSet.bind(binder(), AgreementSignupListener.class).to(AgreementSignup.class); DynamicSet.bind(binder(), ChangeAbandonedListener.class).to(ChangeAbandoned.class); DynamicSet.bind(binder(), ChangeMergedListener.class).to(ChangeMerged.class); DynamicSet.bind(binder(), ChangeRestoredListener.class).to(ChangeRestored.class); DynamicSet.bind(binder(), CommentAddedListener.class).to(CommentAdded.class); DynamicSet.bind(binder(), CommitValidationListener.class).to(CommitReceived.class); - DynamicSet.bind(binder(), DraftPublishedListener.class).to(DraftPublished.class); DynamicSet.bind(binder(), GitReferenceUpdatedListener.class).to(GitReferenceUpdated.class); DynamicSet.bind(binder(), HashtagsEditedListener.class).to(HashtagsEdited.class); DynamicSet.bind(binder(), MergeValidationListener.class).to(Submit.class);
diff --git a/src/main/java/com/googlesource/gerrit/plugins/hooks/NewProjectCreated.java b/src/main/java/com/googlesource/gerrit/plugins/hooks/NewProjectCreated.java index 5ff73f7..0cf0e88 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/hooks/NewProjectCreated.java +++ b/src/main/java/com/googlesource/gerrit/plugins/hooks/NewProjectCreated.java
@@ -20,7 +20,7 @@ @Singleton class NewProjectCreated implements NewProjectCreatedListener { - private final AsynchronousHook hook; + private final Hook hook; private final HookFactory hookFactory; @Inject @@ -34,6 +34,6 @@ HookArgs args = hookFactory.createArgs(); args.add("--project", event.getProjectName()); args.add("--head", event.getHeadName()); - hook.submit(event.getProjectName(), args); + hook.execute(event.getProjectName(), args); } }
diff --git a/src/main/java/com/googlesource/gerrit/plugins/hooks/RefUpdate.java b/src/main/java/com/googlesource/gerrit/plugins/hooks/RefUpdate.java index 2182614..7eedfa5 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/hooks/RefUpdate.java +++ b/src/main/java/com/googlesource/gerrit/plugins/hooks/RefUpdate.java
@@ -28,7 +28,7 @@ @Singleton public class RefUpdate implements RefOperationValidationListener { - private final SynchronousHook hook; + private final Hook hook; private final HookFactory hookFactory; @Inject @@ -49,11 +49,12 @@ HookArgs args = hookFactory.createArgs(); args.add("--project", projectName); args.add("--uploader", refEvent.user.getNameEmail()); + args.add("--uploader-username", refEvent.user.getUserName()); args.add("--oldrev", getObjectId(refEvent.command.getOldId()).getName()); args.add("--newrev", getObjectId(refEvent.command.getNewId()).getName()); args.add("--refname", refEvent.command.getRefName()); - HookResult result = hook.run(projectName, args); + HookResult result = hook.execute(projectName, args); if (result != null) { String output = result.toString(); if (result.getExitValue() != 0) {
diff --git a/src/main/java/com/googlesource/gerrit/plugins/hooks/ReviewerAdded.java b/src/main/java/com/googlesource/gerrit/plugins/hooks/ReviewerAdded.java index fca527d..9929255 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/hooks/ReviewerAdded.java +++ b/src/main/java/com/googlesource/gerrit/plugins/hooks/ReviewerAdded.java
@@ -22,7 +22,7 @@ @Singleton class ReviewerAdded implements ReviewerAddedListener { - private final AsynchronousHook hook; + private final Hook hook; private final HookFactory hookFactory; @Inject @@ -44,7 +44,7 @@ args.add("--branch", c.branch); args.add("--reviewer", reviewer); - hook.submit(c.project, args); + hook.execute(c.project, args); } } }
diff --git a/src/main/java/com/googlesource/gerrit/plugins/hooks/ReviewerDeleted.java b/src/main/java/com/googlesource/gerrit/plugins/hooks/ReviewerDeleted.java index e23677d..0cf6ce7 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/hooks/ReviewerDeleted.java +++ b/src/main/java/com/googlesource/gerrit/plugins/hooks/ReviewerDeleted.java
@@ -21,7 +21,7 @@ @Singleton class ReviewerDeleted implements ReviewerDeletedListener { - private final AsynchronousHook hook; + private final Hook hook; private final HookFactory hookFactory; @Inject @@ -43,6 +43,6 @@ args.add("--reviewer", event.getReviewer()); args.addApprovals(event.getNewApprovals(), event.getOldApprovals()); - hook.submit(c.project, args); + hook.execute(c.project, args); } }
diff --git a/src/main/java/com/googlesource/gerrit/plugins/hooks/RevisionCreated.java b/src/main/java/com/googlesource/gerrit/plugins/hooks/RevisionCreated.java index cd4a9d1..8ccc226 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/hooks/RevisionCreated.java +++ b/src/main/java/com/googlesource/gerrit/plugins/hooks/RevisionCreated.java
@@ -21,7 +21,7 @@ @Singleton public class RevisionCreated implements RevisionCreatedListener { - private final AsynchronousHook hook; + private final Hook hook; private final HookFactory hookFactory; @Inject @@ -36,7 +36,6 @@ ChangeInfo c = event.getChange(); args.add("--change", c.id); - args.add("--is-draft", event.getRevision().draft); args.add("--kind", String.valueOf(event.getRevision().kind)); args.addUrl(c); args.add("--change-owner", c.owner); @@ -47,6 +46,6 @@ args.add("--commit", event.getRevision().commit.commit); args.add("--patchset", event.getRevision()._number); - hook.submit(c.project, args); + hook.execute(c.project, args); } }
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 59cfc43..8e2f1e0 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/hooks/Submit.java +++ b/src/main/java/com/googlesource/gerrit/plugins/hooks/Submit.java
@@ -27,7 +27,7 @@ @Singleton public class Submit implements MergeValidationListener { - private final SynchronousHook hook; + private final Hook hook; private final HookFactory hookFactory; @Inject @@ -55,7 +55,7 @@ args.add("--patchset", patchSetId.get()); args.add("--commit", commit.getId().name()); - HookResult result = hook.run(projectName, args); + HookResult result = hook.execute(projectName, args); if (result != null && result.getExitValue() != 0) { throw new MergeValidationException(result.toString()); }
diff --git a/src/main/java/com/googlesource/gerrit/plugins/hooks/SynchronousHook.java b/src/main/java/com/googlesource/gerrit/plugins/hooks/SynchronousHook.java index 03cbc40..d4dfaf8 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/hooks/SynchronousHook.java +++ b/src/main/java/com/googlesource/gerrit/plugins/hooks/SynchronousHook.java
@@ -24,11 +24,13 @@ this.executor = executor; } - HookResult run(HookArgs args) { + @Override + HookResult execute(HookArgs args) { return executor.submit(path, args); } - HookResult run(String projectName, HookArgs args) { + @Override + HookResult execute(String projectName, HookArgs args) { return executor.submit(projectName, path, args); } }
diff --git a/src/main/java/com/googlesource/gerrit/plugins/hooks/TopicEdited.java b/src/main/java/com/googlesource/gerrit/plugins/hooks/TopicEdited.java index e608694..62407dd 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/hooks/TopicEdited.java +++ b/src/main/java/com/googlesource/gerrit/plugins/hooks/TopicEdited.java
@@ -21,7 +21,7 @@ @Singleton class TopicEdited implements TopicEditedListener { - private final AsynchronousHook hook; + private final Hook hook; private final HookFactory hookFactory; @Inject @@ -43,6 +43,6 @@ args.add("--old-topic", event.getOldTopic()); args.add("--new-topic", event.getChange().topic); - hook.submit(c.project, args); + hook.execute(c.project, args); } }
diff --git a/src/main/resources/Documentation/hooks.md b/src/main/resources/Documentation/hooks.md index 4fd192d..fd92b63 100644 --- a/src/main/resources/Documentation/hooks.md +++ b/src/main/resources/Documentation/hooks.md
@@ -19,7 +19,7 @@ from the hook will be returned to the user, regardless of the return code. ``` - ref-update --project <project name> --refname <refname> --uploader <uploader> --oldrev <sha1> --newrev <sha1> + ref-update --project <project name> --refname <refname> --uploader <uploader> --uploader-username <username> --oldrev <sha1> --newrev <sha1> ``` ### commit-received @@ -31,7 +31,7 @@ from the hook will be returned to the user, regardless of the return code. ``` - commit-received --project <project name> --refname <refname> --uploader <uploader> --oldrev <sha1> --newrev <sha1> --cmdref <refname> + commit-received --project <project name> --refname <refname> --uploader <uploader> --uploader-username <username> --oldrev <sha1> --newrev <sha1> --cmdref <refname> ``` ### submit @@ -52,29 +52,21 @@ ### patchset-created -Called whenever a patchset is created (this includes new changes and drafts). +Called whenever a patchset is created (this includes new changes). ``` - patchset-created --change <change id> --is-draft <boolean> --kind <change kind> --change-url <change url> --change-owner <change owner> --project <project name> --branch <branch> --topic <topic> --uploader <uploader> --commit <sha1> --patchset <patchset id> + patchset-created --change <change id> --kind <change kind> --change-url <change url> --change-owner <change owner> --change-owner-username <username> --project <project name> --branch <branch> --topic <topic> --uploader <uploader> --uploader-username <username> --commit <sha1> --patchset <patchset id> ``` The `--kind` parameter represents the kind of change uploaded. See documentation of [`patchSet`][2] for details. -### draft-published - -Called whenever a draft change is published. - -``` - draft-published --change <change id> --change-url <change url> --change-owner <change owner> --project <project name> --branch <branch> --topic <topic> --uploader <uploader> --commit <sha1> --patchset <patchset id> -``` - ### comment-added Called whenever a comment is added to a change. ``` - comment-added --change <change id> --is-draft <boolean> --change-url <change url> --change-owner <change owner> --project <project name> --branch <branch> --topic <topic> --author <comment author> --commit <commit> --comment <comment> [--<approval category id> <score> --<approval category id> <score> --<approval category id>-oldValue <score> ...] + comment-added --change <change id> --change-url <change url> --change-owner <change owner> --change-owner-username <username> --project <project name> --branch <branch> --topic <topic> --author <comment author> --author-username <username> --commit <commit> --comment <comment> [--<approval category id> <score> --<approval category id> <score> --<approval category id>-oldValue <score> ...] ``` ### change-merged @@ -82,7 +74,7 @@ Called whenever a change has been merged. ``` - change-merged --change <change id> --change-url <change url> --change-owner <change owner> --project <project name> --branch <branch> --topic <topic> --submitter <submitter> --commit <sha1> --newrev <sha1> + change-merged --change <change id> --change-url <change url> --change-owner <change owner> --change-owner-username <username> --project <project name> --branch <branch> --topic <topic> --submitter <submitter> --submitter-username <username> --commit <sha1> --newrev <sha1> ``` ### change-abandoned @@ -90,7 +82,7 @@ Called whenever a change has been abandoned. ``` - change-abandoned --change <change id> --change-url <change url> --change-owner <change owner> --project <project name> --branch <branch> --topic <topic> --abandoner <abandoner> --commit <sha1> --reason <reason> + change-abandoned --change <change id> --change-url <change url> --change-owner <change owner> --change-owner-username <username> --project <project name> --branch <branch> --topic <topic> --abandoner <abandoner> --abandoner-username <username> --commit <sha1> --reason <reason> ``` ### change-restored @@ -98,7 +90,7 @@ Called whenever a change has been restored. ``` - change-restored --change <change id> --change-url <change url> --change-owner <change owner> --project <project name> --branch <branch> --topic <topic> --restorer <restorer> --commit <sha1> --reason <reason> + change-restored --change <change id> --change-url <change url> --change-owner <change owner> --change-owner-username <username> --project <project name> --branch <branch> --topic <topic> --restorer <restorer> --restorer-username <username> --commit <sha1> --reason <reason> ``` ### ref-updated @@ -106,7 +98,7 @@ Called whenever a ref has been updated. ``` - ref-updated --oldrev <old rev> --newrev <new rev> --refname <ref name> --project <project name> --submitter <submitter> + ref-updated --oldrev <old rev> --newrev <new rev> --refname <ref name> --project <project name> --submitter <submitter> --submitter-username <username> ``` ### project-created @@ -122,7 +114,7 @@ Called whenever a reviewer is added to a change. ``` - reviewer-added --change <change id> --change-url <change url> --change-owner <change owner> --project <project name> --branch <branch> --reviewer <reviewer> + reviewer-added --change <change id> --change-url <change url> --change-owner <change owner> --change-owner-username <username> --project <project name> --branch <branch> --reviewer <reviewer> --reviewer-username <username> ``` ### reviewer-deleted @@ -130,7 +122,7 @@ Called whenever a reviewer (with a vote) is removed from a change. ``` - reviewer-deleted --change <change id> --change-url <change url> --change-owner <change owner> --project <project name> --branch <branch> --reviewer <reviewer> [--<approval category id> <score> --<approval category id> <score> ...] + reviewer-deleted --change <change id> --change-url <change url> --change-owner <change owner> --change-owner-username <username> --project <project name> --branch <branch> --reviewer <reviewer> [--<approval category id> <score> --<approval category id> <score> ...] ``` ### topic-changed @@ -138,7 +130,7 @@ Called whenever a change's topic is changed from the Web UI or via the REST API. ``` - topic-changed --change <change id> --change-owner <change owner> --project <project name> --branch <branch> --changer <changer> --old-topic <old topic> --new-topic <new topic> + topic-changed --change <change id> --change-owner <change owner> --change-owner-username <username> --project <project name> --branch <branch> --changer <changer> --changer-username <username> --old-topic <old topic> --new-topic <new topic> ``` ### hashtags-changed @@ -147,7 +139,7 @@ or via the REST API. ``` - hashtags-changed --change <change id> --change-owner <change owner> --project <project name> --branch <branch> --editor <editor> --added <hashtag> --removed <hashtag> --hashtag <hashtag> + hashtags-changed --change <change id> --change-owner <change owner> --change-owner-username <username> --project <project name> --branch <branch> --editor <editor> --editor-username <username> --added <hashtag> --removed <hashtag> --hashtag <hashtag> ``` The `--added` parameter may be passed multiple times, once for each