Add ref to RevisionInfo
Currently the ref of a revision is only returned as part of the fetch
info. This is bad because the fetch info is only available if
download commands are installed. Even if download commands are
installed it's difficult to access the ref in the FetchInfo because
the FetchInfos are provided as a map with the protocol name as key and
one needs to guess a key or pick a random entry.
Change-Id: I7d95af9777c03bcb48464996774a7a20a36e6e06
Signed-off-by: Edwin Kempin <edwin.kempin@sap.com>
diff --git a/Documentation/rest-api-changes.txt b/Documentation/rest-api-changes.txt
index bbb4eff..ea3a6b6 100644
--- a/Documentation/rest-api-changes.txt
+++ b/Documentation/rest-api-changes.txt
@@ -334,6 +334,7 @@
"revisions": {
"184ebe53805e102605d11f6b143486d15c23a09c": {
"_number": 1,
+ "ref": "refs/changes/97/97/1",
"fetch": {
"git": {
"url": "git://localhost/gerrit",
@@ -883,6 +884,7 @@
"revisions": {
"27cc4558b5a3d3387dd11ee2df7a117e7e581822": {
"_number": 2,
+ "ref": "refs/changes/99/4799/2",
"fetch": {
"http": {
"url": "http://gerrit:8080/myProject",
@@ -1764,6 +1766,7 @@
"revisions": {
"674ac754f91e64a0efb8087e59a176484bd534d1": {
"_number": 2,
+ "ref": "refs/changes/65/3965/2",
"fetch": {
"http": {
"url": "http://gerrit/myProject",
@@ -1954,6 +1957,7 @@
"revisions": {
"27cc4558b5a3d3387dd11ee2df7a117e7e581822": {
"_number": 2,
+ "ref": "refs/changes/99/4799/2",
"fetch": {
"http": {
"url": "http://gerrit:8080/myProject",
@@ -3666,6 +3670,7 @@
set has one or more draft comments by the calling user. Only set if
link:#draft_comments[DRAFT_COMMENTS] option is requested.
|`_number` ||The patch set number.
+|`ref` ||The Git reference for the patch set.
|`fetch` ||
Information about how to fetch this patch set. The fetch information is
provided as a map that maps the protocol name ("`git`", "`http`",
diff --git a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/api/change/ChangeIT.java b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/api/change/ChangeIT.java
index bc08fcd..f1454c5 100644
--- a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/api/change/ChangeIT.java
+++ b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/api/change/ChangeIT.java
@@ -247,6 +247,7 @@
RevisionInfo rev = Iterables.getOnlyElement(result.revisions.values());
assertThat(rev._number).isEqualTo(r.getPatchSetId().get());
+ assertThat(rev.ref).isEqualTo(r.getPatchSetId().toRefName());
assertThat(rev.actions).isNotEmpty();
}
diff --git a/gerrit-extension-api/src/main/java/com/google/gerrit/extensions/common/RevisionInfo.java b/gerrit-extension-api/src/main/java/com/google/gerrit/extensions/common/RevisionInfo.java
index 8f61aa2..471d519 100644
--- a/gerrit-extension-api/src/main/java/com/google/gerrit/extensions/common/RevisionInfo.java
+++ b/gerrit-extension-api/src/main/java/com/google/gerrit/extensions/common/RevisionInfo.java
@@ -22,6 +22,7 @@
public Boolean draft;
public Boolean hasDraftComments;
public int _number;
+ public String ref;
public Map<String, FetchInfo> fetch;
public CommitInfo commit;
public Map<String, FileInfo> files;
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/change/ChangeJson.java b/gerrit-server/src/main/java/com/google/gerrit/server/change/ChangeJson.java
index 55f65d5..844ff6f 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/change/ChangeJson.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/change/ChangeJson.java
@@ -792,6 +792,7 @@
RevisionInfo out = new RevisionInfo();
out.isCurrent = in.getId().equals(cd.change().currentPatchSetId());
out._number = in.getId().get();
+ out.ref = in.getRefName();
out.draft = in.isDraft() ? true : null;
out.fetch = makeFetchMap(ctl, in);