Merge branch 'stable-2.15' into stable-2.16
* stable-2.15: ChangeApi: Add method to list change reviewers Change-Id: I257a2a37ac90e1a86cc0fa7590b7a891f6ddb529
This commit is contained in:
commit
df74d0d848
|
@ -184,6 +184,11 @@ public interface ChangeApi {
|
|||
|
||||
SuggestedReviewersRequest suggestReviewers(String query) throws RestApiException;
|
||||
|
||||
/**
|
||||
* Retrieve reviewers ({@code ReviewerState.REVIEWER} and {@code ReviewerState.CC}) on the change.
|
||||
*/
|
||||
List<ReviewerInfo> reviewers() throws RestApiException;
|
||||
|
||||
ChangeInfo get(EnumSet<ListChangesOption> options) throws RestApiException;
|
||||
|
||||
default ChangeInfo get(Iterable<ListChangesOption> options) throws RestApiException {
|
||||
|
@ -481,6 +486,11 @@ public interface ChangeApi {
|
|||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ReviewerInfo> reviewers() throws RestApiException {
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
@Override
|
||||
public ChangeInfo get(EnumSet<ListChangesOption> options) throws RestApiException {
|
||||
throw new NotImplementedException();
|
||||
|
|
|
@ -33,6 +33,7 @@ import com.google.gerrit.extensions.api.changes.RebaseInput;
|
|||
import com.google.gerrit.extensions.api.changes.RestoreInput;
|
||||
import com.google.gerrit.extensions.api.changes.RevertInput;
|
||||
import com.google.gerrit.extensions.api.changes.ReviewerApi;
|
||||
import com.google.gerrit.extensions.api.changes.ReviewerInfo;
|
||||
import com.google.gerrit.extensions.api.changes.RevisionApi;
|
||||
import com.google.gerrit.extensions.api.changes.SubmittedTogetherInfo;
|
||||
import com.google.gerrit.extensions.api.changes.SubmittedTogetherOption;
|
||||
|
@ -76,6 +77,7 @@ import com.google.gerrit.server.restapi.change.Index;
|
|||
import com.google.gerrit.server.restapi.change.ListChangeComments;
|
||||
import com.google.gerrit.server.restapi.change.ListChangeDrafts;
|
||||
import com.google.gerrit.server.restapi.change.ListChangeRobotComments;
|
||||
import com.google.gerrit.server.restapi.change.ListReviewers;
|
||||
import com.google.gerrit.server.restapi.change.MarkAsReviewed;
|
||||
import com.google.gerrit.server.restapi.change.MarkAsUnreviewed;
|
||||
import com.google.gerrit.server.restapi.change.Move;
|
||||
|
@ -118,6 +120,7 @@ class ChangeApiImpl implements ChangeApi {
|
|||
private final ChangeMessageApiImpl.Factory changeMessageApi;
|
||||
private final ChangeMessages changeMessages;
|
||||
private final SuggestChangeReviewers suggestReviewers;
|
||||
private final ListReviewers listReviewers;
|
||||
private final ChangeResource change;
|
||||
private final Abandon abandon;
|
||||
private final Revert revert;
|
||||
|
@ -166,6 +169,7 @@ class ChangeApiImpl implements ChangeApi {
|
|||
ChangeMessageApiImpl.Factory changeMessageApi,
|
||||
ChangeMessages changeMessages,
|
||||
SuggestChangeReviewers suggestReviewers,
|
||||
ListReviewers listReviewers,
|
||||
Abandon abandon,
|
||||
Revert revert,
|
||||
Restore restore,
|
||||
|
@ -212,6 +216,7 @@ class ChangeApiImpl implements ChangeApi {
|
|||
this.changeMessageApi = changeMessageApi;
|
||||
this.changeMessages = changeMessages;
|
||||
this.suggestReviewers = suggestReviewers;
|
||||
this.listReviewers = listReviewers;
|
||||
this.abandon = abandon;
|
||||
this.restore = restore;
|
||||
this.updateByMerge = updateByMerge;
|
||||
|
@ -507,6 +512,15 @@ class ChangeApiImpl implements ChangeApi {
|
|||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ReviewerInfo> reviewers() throws RestApiException {
|
||||
try {
|
||||
return listReviewers.apply(change);
|
||||
} catch (Exception e) {
|
||||
throw asRestApiException("Cannot retrieve reviewers", e);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public ChangeInfo get(EnumSet<ListChangesOption> s) throws RestApiException {
|
||||
try {
|
||||
|
|
|
@ -33,7 +33,7 @@ import java.util.List;
|
|||
import java.util.Map;
|
||||
|
||||
@Singleton
|
||||
class ListReviewers implements RestReadView<ChangeResource> {
|
||||
public class ListReviewers implements RestReadView<ChangeResource> {
|
||||
private final Provider<ReviewDb> dbProvider;
|
||||
private final ApprovalsUtil approvalsUtil;
|
||||
private final ReviewerJson json;
|
||||
|
|
|
@ -1681,6 +1681,29 @@ public class ChangeIT extends AbstractDaemonTest {
|
|||
assertThat(rsrc.getETag()).isNotEqualTo(oldETag);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void listReviewers() throws Exception {
|
||||
PushOneCommit.Result r = createChange();
|
||||
AddReviewerInput in = new AddReviewerInput();
|
||||
in.reviewer = user.email;
|
||||
gApi.changes().id(r.getChangeId()).addReviewer(in);
|
||||
assertThat(gApi.changes().id(r.getChangeId()).reviewers()).hasSize(1);
|
||||
|
||||
String username1 = name("user1");
|
||||
String email1 = username1 + "@example.com";
|
||||
accountOperations
|
||||
.newAccount()
|
||||
.username(username1)
|
||||
.preferredEmail(email1)
|
||||
.fullname("User 1")
|
||||
.create();
|
||||
in.reviewer = email1;
|
||||
in.state = ReviewerState.CC;
|
||||
gApi.changes().id(r.getChangeId()).addReviewer(in);
|
||||
assertThat(gApi.changes().id(r.getChangeId()).reviewers().stream().map(a -> a.username))
|
||||
.containsExactly(user.username, username1);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void notificationsForAddedWorkInProgressReviewers() throws Exception {
|
||||
AddReviewerInput in = new AddReviewerInput();
|
||||
|
|
Loading…
Reference in New Issue