Merge "Expose whether project state predicate is enabled"
diff --git a/Documentation/config-gerrit.txt b/Documentation/config-gerrit.txt
index 4d2fd35..6b3b79f 100644
--- a/Documentation/config-gerrit.txt
+++ b/Documentation/config-gerrit.txt
@@ -2595,6 +2595,18 @@
link:access-control.html#capability_queryLimit[queryLimit]
which is defaulted to 500 entries.
+[[gerrit.projectStatePredicateEnabled]]
++
+Indicates whether the link:rest-api-projects.html[/projects/] REST API endpoint
+supports filtering projects by state. The value is exposed in
+link:rest-api-config.html[/config/server/info] REST API endpoint.
++
+Instances having a custom implementation of ProjectQueryBuilder might have
+disabled the `state` predicate in which case the setting should be set to
+`false`.
++
+Default: `true`.
+
[[gerrit.primaryWeblinkName]]gerrit.primaryWeblinkName::
+
Name of the link:dev-plugins.html#links-to-external-tools[Weblink] that should
diff --git a/Documentation/rest-api-config.txt b/Documentation/rest-api-config.txt
index a963edb..b893245 100644
--- a/Documentation/rest-api-config.txt
+++ b/Documentation/rest-api-config.txt
@@ -152,7 +152,8 @@
"gerrit": {
"all_projects": "All-Projects",
"all_users": "All-Users"
- "doc_search": true
+ "doc_search": true,
+ "project_state_predicate_enabled": true
},
"sshd": {},
"suggest": {
@@ -2296,6 +2297,8 @@
Gerrit base path even if this value is unset.)
|`edit_gpg_keys` |not set if `false`|
Whether to enable the web UI for editing GPG keys.
+|`project_state_predicate_enabled` ||
+link:config-gerrit.html#gerrit.projectStatePredicateEnabled[Whether the instance supports filtering projects by state].
|`report_bug_url` |optional|
link:config-gerrit.html#gerrit.reportBugUrl[URL to report bugs].
|`instance_id` |optional|
diff --git a/java/com/google/gerrit/extensions/common/GerritInfo.java b/java/com/google/gerrit/extensions/common/GerritInfo.java
index 547e606..fd682c1 100644
--- a/java/com/google/gerrit/extensions/common/GerritInfo.java
+++ b/java/com/google/gerrit/extensions/common/GerritInfo.java
@@ -25,4 +25,5 @@
public String primaryWeblinkName;
public String instanceId;
public String defaultBranch;
+ public Boolean projectStatePredicateEnabled;
}
diff --git a/java/com/google/gerrit/server/query/project/ProjectQueryBuilder.java b/java/com/google/gerrit/server/query/project/ProjectQueryBuilder.java
index ade6606..c70f00f 100644
--- a/java/com/google/gerrit/server/query/project/ProjectQueryBuilder.java
+++ b/java/com/google/gerrit/server/query/project/ProjectQueryBuilder.java
@@ -23,6 +23,8 @@
* Provides methods required for parsing projects queries.
*
* <p>Internally (at google), this interface has a different implementation, comparing to upstream.
+ * For example, Google disables the `state` predicate which can expose it by setting
+ * `gerrit.projectStatePredicateEnabled = false`.
*/
public interface ProjectQueryBuilder {
String FIELD_LIMIT = "limit";
diff --git a/java/com/google/gerrit/server/restapi/config/GetServerInfo.java b/java/com/google/gerrit/server/restapi/config/GetServerInfo.java
index a9f16e7..91d24b9 100644
--- a/java/com/google/gerrit/server/restapi/config/GetServerInfo.java
+++ b/java/com/google/gerrit/server/restapi/config/GetServerInfo.java
@@ -296,6 +296,8 @@
info.primaryWeblinkName = config.getString("gerrit", null, "primaryWeblinkName");
info.instanceId = instanceId;
info.defaultBranch = config.getString("gerrit", null, "defaultBranch");
+ info.projectStatePredicateEnabled =
+ config.getBoolean("gerrit", null, "projectStatePredicateEnabled", true);
return info;
}
diff --git a/polygerrit-ui/app/api/rest-api.ts b/polygerrit-ui/app/api/rest-api.ts
index c354d2e..a99771b 100644
--- a/polygerrit-ui/app/api/rest-api.ts
+++ b/polygerrit-ui/app/api/rest-api.ts
@@ -708,6 +708,7 @@
doc_search: boolean;
doc_url?: string;
edit_gpg_keys?: boolean;
+ project_state_predicate_enabled: boolean;
report_bug_url?: string;
// The following property is missed in doc
primary_weblink_name?: string;
diff --git a/polygerrit-ui/app/test/test-data-generators.ts b/polygerrit-ui/app/test/test-data-generators.ts
index 7d666e8..22dbe7c1 100644
--- a/polygerrit-ui/app/test/test-data-generators.ts
+++ b/polygerrit-ui/app/test/test-data-generators.ts
@@ -490,6 +490,7 @@
all_projects: 'All-Projects',
all_users: 'All-Users',
doc_search: false,
+ project_state_predicate_enabled: true,
};
}