Reveal Submission Id in ChangeInfo
As a follow-up for RevertSubmission (b81f56c469),
it is useful to reveal the submission_id to the
frontend so that the frontend can suggest better
commit message to the user.
Change-Id: Ic557e0c948bd5029478e5538785cf4b9943396bf
diff --git a/Documentation/rest-api-changes.txt b/Documentation/rest-api-changes.txt
index 4165f93..69a7641 100644
--- a/Documentation/rest-api-changes.txt
+++ b/Documentation/rest-api-changes.txt
@@ -6010,6 +6010,8 @@
When present, change has been marked Ready at some point in time.
|`revert_of` |optional|
The numeric Change-Id of the change that this change reverts.
+|`submission_id` |optional|
+ID of the submission of this change. Only set if the status is `MERGED`.
|==================================
[[change-input]]
diff --git a/java/com/google/gerrit/extensions/common/ChangeInfo.java b/java/com/google/gerrit/extensions/common/ChangeInfo.java
index 9a739ef..0d7c5c7 100644
--- a/java/com/google/gerrit/extensions/common/ChangeInfo.java
+++ b/java/com/google/gerrit/extensions/common/ChangeInfo.java
@@ -52,6 +52,7 @@
public Boolean workInProgress;
public Boolean hasReviewStarted;
public Integer revertOf;
+ public String submissionId;
public int _number;
diff --git a/java/com/google/gerrit/server/change/ActionJson.java b/java/com/google/gerrit/server/change/ActionJson.java
index d493b31..031c1f2 100644
--- a/java/com/google/gerrit/server/change/ActionJson.java
+++ b/java/com/google/gerrit/server/change/ActionJson.java
@@ -136,6 +136,7 @@
copy._number = changeInfo._number;
copy.requirements = changeInfo.requirements;
copy.revertOf = changeInfo.revertOf;
+ copy.submissionId = changeInfo.submissionId;
copy.starred = changeInfo.starred;
copy.stars = changeInfo.stars;
copy.submitted = changeInfo.submitted;
diff --git a/java/com/google/gerrit/server/change/ChangeJson.java b/java/com/google/gerrit/server/change/ChangeJson.java
index 3b7a2c4..9937fd0 100644
--- a/java/com/google/gerrit/server/change/ChangeJson.java
+++ b/java/com/google/gerrit/server/change/ChangeJson.java
@@ -586,6 +586,7 @@
out.plugins = pluginDefinedAttributesFactory.get().create(cd);
}
out.revertOf = cd.change().getRevertOf() != null ? cd.change().getRevertOf().get() : null;
+ out.submissionId = cd.change().getSubmissionId();
if (has(REVIEWER_UPDATES)) {
out.reviewerUpdates = reviewerUpdates(cd);
diff --git a/javatests/com/google/gerrit/acceptance/api/change/ChangeIT.java b/javatests/com/google/gerrit/acceptance/api/change/ChangeIT.java
index f176663..a19ca55 100644
--- a/javatests/com/google/gerrit/acceptance/api/change/ChangeIT.java
+++ b/javatests/com/google/gerrit/acceptance/api/change/ChangeIT.java
@@ -249,6 +249,7 @@
assertThat(c.owner.email).isNull();
assertThat(c.owner.username).isNull();
assertThat(c.owner.avatars).isNull();
+ assertThat(c.submissionId).isNull();
}
@Test
@@ -314,6 +315,15 @@
}
@Test
+ public void getSubmissionId() throws Exception {
+ PushOneCommit.Result changeResult = createChange();
+ String changeId = changeResult.getChangeId();
+
+ merge(changeResult);
+ assertThat(gApi.changes().id(changeId).get().submissionId).isNotNull();
+ }
+
+ @Test
public void setWorkInProgressNotAllowedWithoutPermission() throws Exception {
PushOneCommit.Result rwip = createChange();
String changeId = rwip.getChangeId();