From cab63519a68d5fb53bd7ad2c7877865353ed37b9 Mon Sep 17 00:00:00 2001 From: Patrick Hiesel Date: Fri, 28 Jul 2017 10:25:42 +0200 Subject: [PATCH] Return project in GetRelated This commit adds project as a mandatory return field in RelatedChangeAndCommitInfo returned by GetRelated to fix a bug where links to related changes would have 'undefined' as the project component. Since we now always want to have the project along the change number it seems to be a good practice to also return the project along with a change number in the API similar to ChangeInfo. Bug: Issue 6876 Change-Id: I64ac0d1b30a3b8034cf16afe96c9d1168cbde193 --- Documentation/rest-api-changes.txt | 3 +++ .../gerrit/acceptance/server/change/GetRelatedIT.java | 4 +++- .../com/google/gerrit/server/change/GetRelated.java | 10 ++++++++-- 3 files changed, 14 insertions(+), 3 deletions(-) diff --git a/Documentation/rest-api-changes.txt b/Documentation/rest-api-changes.txt index b307efaaae..50565f85f3 100644 --- a/Documentation/rest-api-changes.txt +++ b/Documentation/rest-api-changes.txt @@ -3548,6 +3548,7 @@ describing the related changes. { "changes": [ { + "project": "gerrit", "change_id": "Ic62ae3103fca2214904dbf2faf4c861b5f0ae9b5", "commit": { "commit": "78847477532e386f5a2185a4e8c90b2509e354e3", @@ -3570,6 +3571,7 @@ describing the related changes. "status": "NEW" }, { + "project": "gerrit", "change_id": "I5e4fc08ce34d33c090c9e0bf320de1b17309f774", "commit": { "commit": "b1cb4caa6be46d12b94c25aa68aebabcbb3f53fe", @@ -6577,6 +6579,7 @@ a related change and commit. [options="header",cols="1,^1,5"] |=========================== |Field Name ||Description +|`project` ||The project of the change or commit. |`change_id` |optional|The Change-Id of the change. |`commit` ||The commit as a link:#commit-info[CommitInfo] entity. diff --git a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/server/change/GetRelatedIT.java b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/server/change/GetRelatedIT.java index be3d17f600..d4019ec341 100644 --- a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/server/change/GetRelatedIT.java +++ b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/server/change/GetRelatedIT.java @@ -563,9 +563,10 @@ public class GetRelatedIT extends AbstractDaemonTest { return Iterables.getOnlyElement(queryProvider.get().byCommit(c)); } - private static ChangeAndCommit changeAndCommit( + private ChangeAndCommit changeAndCommit( PatchSet.Id psId, ObjectId commitId, int currentRevisionNum) { ChangeAndCommit result = new ChangeAndCommit(); + result.project = project.get(); result._changeNumber = psId.getParentKey().get(); result.commit = new CommitInfo(); result.commit.commit = commitId.name(); @@ -599,6 +600,7 @@ public class GetRelatedIT extends AbstractDaemonTest { String name = "index " + i + " related to " + psId; ChangeAndCommit a = actual.get(i); ChangeAndCommit e = expected[i]; + assertThat(a.project).named("project of " + name).isEqualTo(e.project); assertThat(a._changeNumber).named("change ID of " + name).isEqualTo(e._changeNumber); // Don't bother checking changeId; assume _changeNumber is sufficient. assertThat(a._revisionNumber).named("revision of " + name).isEqualTo(e._revisionNumber); diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/change/GetRelated.java b/gerrit-server/src/main/java/com/google/gerrit/server/change/GetRelated.java index 10c7a5a986..a6ed806a13 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/change/GetRelated.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/change/GetRelated.java @@ -21,6 +21,7 @@ import com.google.gerrit.extensions.common.CommitInfo; import com.google.gerrit.extensions.restapi.RestReadView; import com.google.gerrit.reviewdb.client.Change; import com.google.gerrit.reviewdb.client.PatchSet; +import com.google.gerrit.reviewdb.client.Project; import com.google.gerrit.reviewdb.server.ReviewDb; import com.google.gerrit.server.CommonConverters; import com.google.gerrit.server.PatchSetUtil; @@ -102,7 +103,7 @@ public class GetRelated implements RestReadView { } else { commit = d.commit(); } - result.add(new ChangeAndCommit(d.data().change(), ps, commit)); + result.add(new ChangeAndCommit(rsrc.getProject(), d.data().change(), ps, commit)); } if (result.size() == 1) { @@ -137,6 +138,7 @@ public class GetRelated implements RestReadView { } public static class ChangeAndCommit { + public String project; public String changeId; public CommitInfo commit; public Integer _changeNumber; @@ -146,7 +148,10 @@ public class GetRelated implements RestReadView { public ChangeAndCommit() {} - ChangeAndCommit(@Nullable Change change, @Nullable PatchSet ps, RevCommit c) { + ChangeAndCommit( + Project.NameKey project, @Nullable Change change, @Nullable PatchSet ps, RevCommit c) { + this.project = project.get(); + if (change != null) { changeId = change.getKey().get(); _changeNumber = change.getChangeId(); @@ -171,6 +176,7 @@ public class GetRelated implements RestReadView { @Override public String toString() { return MoreObjects.toStringHelper(this) + .add("project", project) .add("changeId", changeId) .add("commit", toString(commit)) .add("_changeNumber", _changeNumber)