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
This commit is contained in:
@@ -3548,6 +3548,7 @@ describing the related changes.
|
|||||||
{
|
{
|
||||||
"changes": [
|
"changes": [
|
||||||
{
|
{
|
||||||
|
"project": "gerrit",
|
||||||
"change_id": "Ic62ae3103fca2214904dbf2faf4c861b5f0ae9b5",
|
"change_id": "Ic62ae3103fca2214904dbf2faf4c861b5f0ae9b5",
|
||||||
"commit": {
|
"commit": {
|
||||||
"commit": "78847477532e386f5a2185a4e8c90b2509e354e3",
|
"commit": "78847477532e386f5a2185a4e8c90b2509e354e3",
|
||||||
@@ -3570,6 +3571,7 @@ describing the related changes.
|
|||||||
"status": "NEW"
|
"status": "NEW"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
"project": "gerrit",
|
||||||
"change_id": "I5e4fc08ce34d33c090c9e0bf320de1b17309f774",
|
"change_id": "I5e4fc08ce34d33c090c9e0bf320de1b17309f774",
|
||||||
"commit": {
|
"commit": {
|
||||||
"commit": "b1cb4caa6be46d12b94c25aa68aebabcbb3f53fe",
|
"commit": "b1cb4caa6be46d12b94c25aa68aebabcbb3f53fe",
|
||||||
@@ -6577,6 +6579,7 @@ a related change and commit.
|
|||||||
[options="header",cols="1,^1,5"]
|
[options="header",cols="1,^1,5"]
|
||||||
|===========================
|
|===========================
|
||||||
|Field Name ||Description
|
|Field Name ||Description
|
||||||
|
|`project` ||The project of the change or commit.
|
||||||
|`change_id` |optional|The Change-Id of the change.
|
|`change_id` |optional|The Change-Id of the change.
|
||||||
|`commit` ||The commit as a
|
|`commit` ||The commit as a
|
||||||
link:#commit-info[CommitInfo] entity.
|
link:#commit-info[CommitInfo] entity.
|
||||||
|
|||||||
@@ -563,9 +563,10 @@ public class GetRelatedIT extends AbstractDaemonTest {
|
|||||||
return Iterables.getOnlyElement(queryProvider.get().byCommit(c));
|
return Iterables.getOnlyElement(queryProvider.get().byCommit(c));
|
||||||
}
|
}
|
||||||
|
|
||||||
private static ChangeAndCommit changeAndCommit(
|
private ChangeAndCommit changeAndCommit(
|
||||||
PatchSet.Id psId, ObjectId commitId, int currentRevisionNum) {
|
PatchSet.Id psId, ObjectId commitId, int currentRevisionNum) {
|
||||||
ChangeAndCommit result = new ChangeAndCommit();
|
ChangeAndCommit result = new ChangeAndCommit();
|
||||||
|
result.project = project.get();
|
||||||
result._changeNumber = psId.getParentKey().get();
|
result._changeNumber = psId.getParentKey().get();
|
||||||
result.commit = new CommitInfo();
|
result.commit = new CommitInfo();
|
||||||
result.commit.commit = commitId.name();
|
result.commit.commit = commitId.name();
|
||||||
@@ -599,6 +600,7 @@ public class GetRelatedIT extends AbstractDaemonTest {
|
|||||||
String name = "index " + i + " related to " + psId;
|
String name = "index " + i + " related to " + psId;
|
||||||
ChangeAndCommit a = actual.get(i);
|
ChangeAndCommit a = actual.get(i);
|
||||||
ChangeAndCommit e = expected[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);
|
assertThat(a._changeNumber).named("change ID of " + name).isEqualTo(e._changeNumber);
|
||||||
// Don't bother checking changeId; assume _changeNumber is sufficient.
|
// Don't bother checking changeId; assume _changeNumber is sufficient.
|
||||||
assertThat(a._revisionNumber).named("revision of " + name).isEqualTo(e._revisionNumber);
|
assertThat(a._revisionNumber).named("revision of " + name).isEqualTo(e._revisionNumber);
|
||||||
|
|||||||
@@ -21,6 +21,7 @@ import com.google.gerrit.extensions.common.CommitInfo;
|
|||||||
import com.google.gerrit.extensions.restapi.RestReadView;
|
import com.google.gerrit.extensions.restapi.RestReadView;
|
||||||
import com.google.gerrit.reviewdb.client.Change;
|
import com.google.gerrit.reviewdb.client.Change;
|
||||||
import com.google.gerrit.reviewdb.client.PatchSet;
|
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.reviewdb.server.ReviewDb;
|
||||||
import com.google.gerrit.server.CommonConverters;
|
import com.google.gerrit.server.CommonConverters;
|
||||||
import com.google.gerrit.server.PatchSetUtil;
|
import com.google.gerrit.server.PatchSetUtil;
|
||||||
@@ -102,7 +103,7 @@ public class GetRelated implements RestReadView<RevisionResource> {
|
|||||||
} else {
|
} else {
|
||||||
commit = d.commit();
|
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) {
|
if (result.size() == 1) {
|
||||||
@@ -137,6 +138,7 @@ public class GetRelated implements RestReadView<RevisionResource> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static class ChangeAndCommit {
|
public static class ChangeAndCommit {
|
||||||
|
public String project;
|
||||||
public String changeId;
|
public String changeId;
|
||||||
public CommitInfo commit;
|
public CommitInfo commit;
|
||||||
public Integer _changeNumber;
|
public Integer _changeNumber;
|
||||||
@@ -146,7 +148,10 @@ public class GetRelated implements RestReadView<RevisionResource> {
|
|||||||
|
|
||||||
public ChangeAndCommit() {}
|
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) {
|
if (change != null) {
|
||||||
changeId = change.getKey().get();
|
changeId = change.getKey().get();
|
||||||
_changeNumber = change.getChangeId();
|
_changeNumber = change.getChangeId();
|
||||||
@@ -171,6 +176,7 @@ public class GetRelated implements RestReadView<RevisionResource> {
|
|||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
return MoreObjects.toStringHelper(this)
|
return MoreObjects.toStringHelper(this)
|
||||||
|
.add("project", project)
|
||||||
.add("changeId", changeId)
|
.add("changeId", changeId)
|
||||||
.add("commit", toString(commit))
|
.add("commit", toString(commit))
|
||||||
.add("_changeNumber", _changeNumber)
|
.add("_changeNumber", _changeNumber)
|
||||||
|
|||||||
Reference in New Issue
Block a user