Merge "Expect API field to be null"
diff --git a/src/main/java/com/googlesource/gerrit/plugins/automerger/DownstreamCreator.java b/src/main/java/com/googlesource/gerrit/plugins/automerger/DownstreamCreator.java
index b61675c..63416a4 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/automerger/DownstreamCreator.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/automerger/DownstreamCreator.java
@@ -100,10 +100,15 @@
public void onChangeAbandoned(ChangeAbandonedListener.Event event) {
try (ManualRequestContext ctx = oneOffRequestContext.openAs(config.getContextUserId())) {
ChangeInfo change = event.getChange();
- String revision = event.getRevision().commit.commit;
+ String revision =
+ gApi.changes()
+ .id(change._number)
+ .revision(event.getRevision()._number)
+ .commit(false)
+ .commit;
log.debug("Detected revision {} abandoned on {}.", revision, change.project);
abandonDownstream(change, revision);
- } catch (ConfigInvalidException | StorageException e) {
+ } catch (ConfigInvalidException | StorageException | RestApiException e) {
log.error("Automerger plugin failed onChangeAbandoned for {}", event.getChange().id, e);
}
}
@@ -191,7 +196,7 @@
return;
}
ChangeInfo change = event.getChange();
- String revision = change.currentRevision;
+ String revision = gApi.changes().id(event.getChange()._number).current().commit(false).commit;
Set<String> downstreamBranches;
downstreamBranches = config.getDownstreamBranches(change.branch, change.project);
@@ -558,7 +563,8 @@
private void automergeChanges(ChangeInfo change, RevisionInfo revisionInfo)
throws RestApiException, IOException, ConfigInvalidException, InvalidQueryParameterException,
StorageException {
- String currentRevision = revisionInfo.commit.commit;
+ String currentRevision =
+ gApi.changes().id(change._number).revision(revisionInfo._number).commit(false).commit;
log.debug(
"Handling patchsetevent with change id {} and revision {}", change.id, currentRevision);
diff --git a/src/test/java/com/googlesource/gerrit/plugins/automerger/DownstreamCreatorIT.java b/src/test/java/com/googlesource/gerrit/plugins/automerger/DownstreamCreatorIT.java
index a59bff8..c472128 100644
--- a/src/test/java/com/googlesource/gerrit/plugins/automerger/DownstreamCreatorIT.java
+++ b/src/test/java/com/googlesource/gerrit/plugins/automerger/DownstreamCreatorIT.java
@@ -56,6 +56,7 @@
import com.google.gerrit.extensions.restapi.BinaryResult;
import com.google.gerrit.extensions.restapi.RestApiException;
import com.google.gerrit.server.group.SystemGroupBackend;
+import com.google.gerrit.testing.ConfigSuite;
import com.google.inject.Inject;
import com.googlesource.gerrit.plugins.automerger.helpers.ConfigOption;
import java.io.InputStream;
@@ -76,6 +77,18 @@
@Inject private GroupOperations groupOperations;
@Inject private ProjectOperations projectOperations;
+ @ConfigSuite.Default
+ public static Config minimalEventPayload() {
+ Config cfg = new Config();
+ // Expect only identifiers in internal Gerrit events
+ cfg.setStringList(
+ "event",
+ "payload",
+ "listChangeOptions",
+ ImmutableList.of("SKIP_MERGEABLE", "SKIP_DIFFSTAT"));
+ return cfg;
+ }
+
@Test
public void testExpectedFlow() throws Exception {
Project.NameKey manifestNameKey = defaultSetup();