blob: d5f982fd0a763bf47829681f583af7ecf0ea0c01 [file] [log] [blame]
package com.criteo.gerrit.plugins.automerge;
import com.google.gerrit.extensions.api.changes.ReviewInput;
import com.google.gerrit.extensions.restapi.RestApiException;
import com.google.gerrit.server.change.PostReview;
import com.google.gerrit.server.change.RevisionResource;
import com.google.gerrit.server.update.UpdateException;
import com.google.gwtorm.server.OrmException;
import com.google.inject.Inject;
import com.google.inject.Provider;
import java.io.IOException;
public class ReviewUpdater {
/**
* Prefix used in front of messages pushed to Gerrit by this plugin. This prefix is used to
* discriminate the messages emitted by the plugin from the other messages and avoid infinite
* loops.
*/
public static final String commentsPrefix = "[Autosubmitter] ";
@Inject Provider<PostReview> reviewer;
@Inject private AtomicityHelper atomicityHelper;
public void commentOnReview(String project, int number, String comment)
throws RestApiException, OrmException, IOException, UpdateException {
ReviewInput reviewInput = createComment(comment);
applyComment(project, number, reviewInput);
}
private ReviewInput createComment(String comment) {
return new ReviewInput().message(commentsPrefix + comment);
}
private void applyComment(String project, int number, ReviewInput comment)
throws RestApiException, OrmException, IOException, UpdateException {
RevisionResource r = atomicityHelper.getRevisionResource(project, number);
reviewer.get().apply(r, comment);
}
}