Merge branch 'stable-2.12' into stable-2.13
* stable-2.12:
Update reviewers on DraftPublishedEvent
Change-Id: Ic25c5e69c4d019554284c562bdda90833a366091
diff --git a/src/main/java/com/googlesource/gerrit/plugins/reviewers/ChangeEventListener.java b/src/main/java/com/googlesource/gerrit/plugins/reviewers/ChangeEventListener.java
index e4c5771..3811d01 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/reviewers/ChangeEventListener.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/reviewers/ChangeEventListener.java
@@ -33,6 +33,7 @@
import com.google.gerrit.server.account.AccountResolver;
import com.google.gerrit.server.account.GroupMembers;
import com.google.gerrit.server.data.ChangeAttribute;
+import com.google.gerrit.server.events.DraftPublishedEvent;
import com.google.gerrit.server.events.Event;
import com.google.gerrit.server.events.PatchSetCreatedEvent;
import com.google.gerrit.server.git.GitRepositoryManager;
@@ -115,12 +116,22 @@
@Override
public void onEvent(Event event) {
- if (!(event instanceof PatchSetCreatedEvent)) {
- return;
+ if (event instanceof PatchSetCreatedEvent) {
+ PatchSetCreatedEvent e = (PatchSetCreatedEvent) event;
+ ChangeAttribute c = e.change.get();
+ onEvent(new Project.NameKey(c.project),
+ Integer.parseInt(e.change.get().number), e.uploader.get().email);
+ } else if (event instanceof DraftPublishedEvent) {
+ DraftPublishedEvent e = (DraftPublishedEvent) event;
+ ChangeAttribute c = e.change.get();
+ onEvent(new Project.NameKey(c.project),
+ Integer.parseInt(e.change.get().number), e.uploader.get().email);
}
- PatchSetCreatedEvent e = (PatchSetCreatedEvent) event;
- ChangeAttribute c = e.change.get();
- Project.NameKey projectName = new Project.NameKey(c.project);
+ }
+
+ private void onEvent(Project.NameKey projectName, int changeNumber,
+ String email) {
+
// TODO(davido): we have to cache per project configuration
ReviewersConfig config = configFactory.create(projectName);
List<ReviewerFilterSection> sections = config.getReviewerFilterSections();
@@ -133,7 +144,7 @@
RevWalk rw = new RevWalk(git);
ReviewDb reviewDb = schemaFactory.open()) {
ChangeData changeData = changeDataFactory.create(
- reviewDb, projectName, new Change.Id(Integer.parseInt(c.number)));
+ reviewDb, projectName, new Change.Id(changeNumber));
Set<String> reviewers = findReviewers(sections, changeData);
if (reviewers.isEmpty()) {
return;
@@ -141,8 +152,7 @@
final Change change = changeData.change();
final Runnable task = reviewersFactory.create(change,
- toAccounts(reviewDb, reviewers, projectName,
- e.uploader.get().email));
+ toAccounts(reviewDb, reviewers, projectName, email));
workQueue.getDefaultQueue().submit(new Runnable() {
ReviewDb db = null;