diff --git a/Documentation/rest-api-config.txt b/Documentation/rest-api-config.txt index ee7129b810..52c393f9ee 100644 --- a/Documentation/rest-api-config.txt +++ b/Documentation/rest-api-config.txt @@ -1539,11 +1539,15 @@ button]. |`update_delay` || link:config-gerrit.html#change.updateDelay[How often in seconds the web interface should poll for updates to the currently open change]. -|`submit_whole_topic` || +|`submit_whole_topic` |not set if `false`| link:config-gerrit.html#change.submitWholeTopic[A configuration if the whole topic is submitted]. |`disable_private_changes` |not set if `false`| Returns true if private changes are disabled. +|`exclude_mergeable_in_change_info` |not set if `false`| +Value of the link:config-gerrit.html#change.api.excludeMergeableInChangeInfo[ +configuration parameter] that controls whether the mergeability bit in +link:rest-api-changes.html#change-info[ChangeInfo] will never be set. |============================= [[check-account-external-ids-input]] diff --git a/java/com/google/gerrit/extensions/common/ChangeConfigInfo.java b/java/com/google/gerrit/extensions/common/ChangeConfigInfo.java index 1e822e37e6..e8aeb40eb8 100644 --- a/java/com/google/gerrit/extensions/common/ChangeConfigInfo.java +++ b/java/com/google/gerrit/extensions/common/ChangeConfigInfo.java @@ -23,4 +23,5 @@ public class ChangeConfigInfo { public String replyTooltip; public int updateDelay; public Boolean submitWholeTopic; + public Boolean excludeMergeableInChangeInfo; } diff --git a/java/com/google/gerrit/server/restapi/config/GetServerInfo.java b/java/com/google/gerrit/server/restapi/config/GetServerInfo.java index 32d6f17b2e..a36e75c1c3 100644 --- a/java/com/google/gerrit/server/restapi/config/GetServerInfo.java +++ b/java/com/google/gerrit/server/restapi/config/GetServerInfo.java @@ -234,7 +234,9 @@ public class GetServerInfo implements RestReadView { + "\u2026"; info.updateDelay = (int) ConfigUtil.getTimeUnit(config, "change", null, "updateDelay", 300, TimeUnit.SECONDS); - info.submitWholeTopic = MergeSuperSet.wholeTopicEnabled(config); + info.submitWholeTopic = toBoolean(MergeSuperSet.wholeTopicEnabled(config)); + info.excludeMergeableInChangeInfo = + toBoolean(this.config.getBoolean("change", "api", "excludeMergeableInChangeInfo", false)); info.disablePrivateChanges = toBoolean(this.config.getBoolean("change", null, "disablePrivateChanges", false)); return info; diff --git a/javatests/com/google/gerrit/acceptance/rest/config/ServerInfoIT.java b/javatests/com/google/gerrit/acceptance/rest/config/ServerInfoIT.java index 4a740182e2..1d87ca1af0 100644 --- a/javatests/com/google/gerrit/acceptance/rest/config/ServerInfoIT.java +++ b/javatests/com/google/gerrit/acceptance/rest/config/ServerInfoIT.java @@ -168,6 +168,8 @@ public class ServerInfoIT extends AbstractDaemonTest { assertThat(i.change.replyLabel).isEqualTo("Reply\u2026"); assertThat(i.change.updateDelay).isEqualTo(300); assertThat(i.change.disablePrivateChanges).isNull(); + assertThat(i.change.submitWholeTopic).isNull(); + assertThat(i.change.excludeMergeableInChangeInfo).isNull(); // download assertThat(i.download.archives).containsExactly("tar", "tbz2", "tgz", "txz"); @@ -190,4 +192,18 @@ public class ServerInfoIT extends AbstractDaemonTest { // user assertThat(i.user.anonymousCowardName).isEqualTo(AnonymousCowardNameProvider.DEFAULT); } + + @Test + @GerritConfig(name = "change.submitWholeTopic", value = "true") + public void serverConfigWithSubmitWholeTopic() throws Exception { + ServerInfo i = gApi.config().server().getInfo(); + assertThat(i.change.submitWholeTopic).isTrue(); + } + + @Test + @GerritConfig(name = "change.api.excludeMergeableInChangeInfo", value = "true") + public void serverConfigWithExcludeMergeableInChangeInfo() throws Exception { + ServerInfo i = gApi.config().server().getInfo(); + assertThat(i.change.excludeMergeableInChangeInfo).isTrue(); + } }