Merge branch 'stable-2.15' into stable-2.16 * stable-2.15: Support adding reviewers in batch mode Change-Id: Ia05ed4282b46c6b2b8b1d75c00ea16b6be94815f
diff --git a/src/main/java/com/googlesource/gerrit/plugins/reviewersbyblame/ReviewersByBlame.java b/src/main/java/com/googlesource/gerrit/plugins/reviewersbyblame/ReviewersByBlame.java index 8af0a7b..7b3b31d 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/reviewersbyblame/ReviewersByBlame.java +++ b/src/main/java/com/googlesource/gerrit/plugins/reviewersbyblame/ReviewersByBlame.java
@@ -17,7 +17,9 @@ import com.google.common.collect.Maps; import com.google.common.collect.Ordering; import com.google.common.collect.Sets; +import com.google.gerrit.extensions.api.GerritApi; import com.google.gerrit.extensions.api.changes.AddReviewerInput; +import com.google.gerrit.extensions.api.changes.ReviewInput; import com.google.gerrit.reviewdb.client.Account; import com.google.gerrit.reviewdb.client.Change; import com.google.gerrit.reviewdb.client.Patch.ChangeType; @@ -25,7 +27,6 @@ import com.google.gerrit.server.account.AccountCache; import com.google.gerrit.server.account.AccountState; import com.google.gerrit.server.account.Emails; -import com.google.gerrit.server.change.ChangeResource; import com.google.gerrit.server.patch.PatchList; import com.google.gerrit.server.patch.PatchListCache; import com.google.gerrit.server.patch.PatchListEntry; @@ -34,9 +35,9 @@ import com.google.gerrit.server.restapi.change.PostReviewers; import com.google.gwtorm.server.OrmException; import com.google.inject.Inject; -import com.google.inject.Provider; import com.google.inject.assistedinject.Assisted; import java.io.IOException; +import java.util.ArrayList; import java.util.Comparator; import java.util.List; import java.util.Map; @@ -66,8 +67,7 @@ private final Emails emails; private final AccountCache accountCache; private final PatchListCache patchListCache; - private final Provider<PostReviewers> reviewersProvider; - private final ChangesCollection changes; + private final GerritApi gApi; public interface Factory { ReviewersByBlame create( @@ -83,9 +83,8 @@ public ReviewersByBlame( final Emails emails, final AccountCache accountCache, - final ChangesCollection changes, - final Provider<PostReviewers> reviewersProvider, final PatchListCache patchListCache, + GerritApi gApi, @Assisted final RevCommit commit, @Assisted final Change change, @Assisted final PatchSet ps, @@ -94,9 +93,8 @@ @Assisted final String ignoreFileRegEx) { this.emails = emails; this.accountCache = accountCache; - this.changes = changes; - this.reviewersProvider = reviewersProvider; this.patchListCache = patchListCache; + this.gApi = gApi; this.commit = commit; this.change = change; this.ps = ps; @@ -141,13 +139,14 @@ */ private void addReviewers(Set<Account.Id> topReviewers, Change change) { try { - ChangeResource changeResource = changes.parse(change.getId()); - PostReviewers post = reviewersProvider.get(); - for (Account.Id accountId : topReviewers) { - AddReviewerInput input = new AddReviewerInput(); - input.reviewer = accountId.toString(); - post.apply(changeResource, input); + ReviewInput in = new ReviewInput(); + in.reviewers = new ArrayList<>(topReviewers.size()); + for (Account.Id account : topReviewers) { + AddReviewerInput addReviewerInput = new AddReviewerInput(); + addReviewerInput.reviewer = account.toString(); + in.reviewers.add(addReviewerInput); } + gApi.changes().id(change.getChangeId()).current().review(in); } catch (Exception ex) { log.error("Couldn't add reviewers to the change", ex); }