Add REST API for /restore
Changes can be restored via REST api. The web UI now uses this API, and the ssh command line uses the same backend. Change-Id: I7a7e8706a52289f87ace5a60ef3bcd6dd2a2dbde
This commit is contained in:

committed by
Shawn O. Pearce

parent
aab01c4701
commit
117a39b316
@@ -33,9 +33,9 @@ import com.google.gerrit.server.change.Abandon;
|
||||
import com.google.gerrit.server.change.ChangeResource;
|
||||
import com.google.gerrit.server.change.PostReview;
|
||||
import com.google.gerrit.server.change.RevisionResource;
|
||||
import com.google.gerrit.server.change.Restore;
|
||||
import com.google.gerrit.server.changedetail.DeleteDraftPatchSet;
|
||||
import com.google.gerrit.server.changedetail.PublishDraft;
|
||||
import com.google.gerrit.server.changedetail.RestoreChange;
|
||||
import com.google.gerrit.server.changedetail.Submit;
|
||||
import com.google.gerrit.server.project.ChangeControl;
|
||||
import com.google.gerrit.server.project.InvalidChangeOperationException;
|
||||
@@ -134,7 +134,7 @@ public class ReviewCommand extends SshCommand {
|
||||
private PublishDraft.Factory publishDraftFactory;
|
||||
|
||||
@Inject
|
||||
private Provider<RestoreChange> restoreChangeProvider;
|
||||
private Provider<Restore> restoreProvider;
|
||||
|
||||
@Inject
|
||||
private Submit.Factory submitFactory;
|
||||
@@ -230,11 +230,16 @@ public class ReviewCommand extends SshCommand {
|
||||
writeError("error: " + parseError(Type.CHANGE_IS_CLOSED) + "\n");
|
||||
}
|
||||
} else if (restoreChange) {
|
||||
final RestoreChange restoreChange = restoreChangeProvider.get();
|
||||
restoreChange.setChangeId(patchSetId.getParentKey());
|
||||
restoreChange.setMessage(changeComment);
|
||||
final ReviewResult result = restoreChange.call();
|
||||
handleReviewResultErrors(result);
|
||||
final Restore restore = restoreProvider.get();
|
||||
final Restore.Input input = new Restore.Input();
|
||||
input.message = changeComment;
|
||||
try {
|
||||
restore.apply(new ChangeResource(ctl), input);
|
||||
} catch(AuthException e) {
|
||||
writeError("error: " + parseError(Type.RESTORE_NOT_PERMITTED) + "\n");
|
||||
} catch(ResourceConflictException e) {
|
||||
writeError("error: " + parseError(Type.CHANGE_NOT_ABANDONED) + "\n");
|
||||
}
|
||||
}
|
||||
if (submitChange) {
|
||||
final ReviewResult result = submitFactory.create(patchSetId).call();
|
||||
|
Reference in New Issue
Block a user