diff --git a/app/assets/javascripts/work_items/index.js b/app/assets/javascripts/work_items/index.js
index 008f5e2a4b2..1874d8e4a73 100644
--- a/app/assets/javascripts/work_items/index.js
+++ b/app/assets/javascripts/work_items/index.js
@@ -42,6 +42,7 @@ export const initWorkItemsRoot = ({ workItemType, workspaceType, withTabs } = {}
hasOkrsFeature,
hasSubepicsFeature,
hasIssuableHealthStatusFeature,
+ hasCustomFieldsFeature,
newCommentTemplatePaths,
reportAbusePath,
defaultBranch,
@@ -113,6 +114,7 @@ export const initWorkItemsRoot = ({ workItemType, workspaceType, withTabs } = {}
signInPath,
hasIterationsFeature: parseBoolean(hasIterationsFeature),
hasIssuableHealthStatusFeature: parseBoolean(hasIssuableHealthStatusFeature),
+ hasCustomFieldsFeature: parseBoolean(hasCustomFieldsFeature),
reportAbusePath,
groupPath,
groupId,
diff --git a/app/assets/javascripts/work_items/pages/work_items_list_app.vue b/app/assets/javascripts/work_items/pages/work_items_list_app.vue
index 3b9aa833044..39cb1cc6907 100644
--- a/app/assets/javascripts/work_items/pages/work_items_list_app.vue
+++ b/app/assets/javascripts/work_items/pages/work_items_list_app.vue
@@ -82,6 +82,7 @@ import DateToken from '~/vue_shared/components/filtered_search_bar/tokens/date_t
import IssuableList from '~/vue_shared/issuable/list/components/issuable_list_root.vue';
import { DEFAULT_PAGE_SIZE, issuableListTabs } from '~/vue_shared/issuable/list/constants';
import glFeatureFlagMixin from '~/vue_shared/mixins/gl_feature_flags_mixin';
+import getWorkItemStateCountsQuery from 'ee_else_ce/work_items/graphql/list/get_work_item_state_counts.query.graphql';
import CreateWorkItemModal from '../components/create_work_item_modal.vue';
import WorkItemHealthStatus from '../components/work_item_health_status.vue';
import WorkItemDrawer from '../components/work_item_drawer.vue';
@@ -97,7 +98,6 @@ import {
WORK_ITEM_TYPE_NAME_KEY_RESULT,
WORK_ITEM_TYPE_NAME_OBJECTIVE,
} from '../constants';
-import getWorkItemStateCountsQuery from '../graphql/list/get_work_item_state_counts.query.graphql';
import getWorkItemsQuery from '../graphql/list/get_work_items.query.graphql';
import { sortOptions, urlSortParams } from './list/constants';
@@ -145,6 +145,7 @@ export default {
'hasIssueDateFilterFeature',
'hasOkrsFeature',
'hasQualityManagementFeature',
+ 'hasCustomFieldsFeature',
'initialSort',
'isGroup',
'isSignedIn',
@@ -333,7 +334,9 @@ export default {
return BASE_ALLOWED_CREATE_TYPES;
},
apiFilterParams() {
- return convertToApiParams(this.filterTokens);
+ return convertToApiParams(this.filterTokens, {
+ hasCustomFieldsFeature: this.hasCustomFieldsFeature,
+ });
},
defaultWorkItemTypes() {
return getDefaultWorkItemTypes({
@@ -611,7 +614,9 @@ export default {
});
},
urlFilterParams() {
- return convertToUrlParams(this.filterTokens);
+ return convertToUrlParams(this.filterTokens, {
+ hasCustomFieldsFeature: this.hasCustomFieldsFeature,
+ });
},
urlParams() {
return {
@@ -874,6 +879,7 @@ export default {
this.filterTokens = getFilterTokens(window.location.search, {
includeStateToken: !this.withTabs,
+ hasCustomFieldsFeature: this.hasCustomFieldsFeature,
});
if (!this.hasStateToken && this.state === STATUS_ALL) {
this.filterTokens = this.filterTokens.filter(
diff --git a/doc/administration/application_settings_cache.md b/doc/administration/application_settings_cache.md
index b083fa4337d..2ed92b696b4 100644
--- a/doc/administration/application_settings_cache.md
+++ b/doc/administration/application_settings_cache.md
@@ -1,6 +1,6 @@
---
-stage: Systems
-group: Cloud Connector
+stage: None
+group: Unassigned
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
title: Application cache interval
---
diff --git a/doc/development/cells/_index.md b/doc/development/cells/_index.md
index 72fbe753e6f..b006083a2ae 100644
--- a/doc/development/cells/_index.md
+++ b/doc/development/cells/_index.md
@@ -64,9 +64,12 @@ to think about:
## Static data
-Problem: A clusterwide database table is used to store static data.
-But, the primary key of the table is used as a global reference.
-This primary key is not globally consistent which creates problems.
+Problem: A database table is used to store static data.
+However, the primary key is not static because it uses an auto-incrementing sequence.
+This means the primary key is not globally consistent.
+
+References to this inconsistent primary key will create problems because the
+reference clashes across cells / organizations.
Example: The `plans` table on a given Cell has the following data:
diff --git a/doc/development/pry_debugging.md b/doc/development/pry_debugging.md
index e01d3c627a1..c663a280f9a 100644
--- a/doc/development/pry_debugging.md
+++ b/doc/development/pry_debugging.md
@@ -23,7 +23,7 @@ If needed, `binding.irb` can be used instead with a more limited feature set.
{{< /alert >}}
-## `byebug` vs `binding.pry` vs `binding.irb`
+## `byebug` vs `binding.irb` vs `binding.pry`
`byebug` has a very similar interface as `gdb`, but `byebug` does not
use the powerful Pry REPL.
@@ -39,6 +39,12 @@ Check out [the docs](https://github.com/deivid-rodriguez/byebug) for the full li
You can start the Pry REPL with the `pry` command.
+## `binding.irb`
+
+As of Ruby 2.7, IRB ships with a simple interactive debugger.
+
+Check out [the docs](https://ruby-doc.org/stdlib-2.7.0/libdoc/irb/rdoc/Binding.html) for more.
+
## `pry`
There are **a lot** of features present in `pry`, too much to cover in
@@ -47,12 +53,6 @@ this document, so for the full documentation head over to the [Pry wiki](https:/
Below are a few features definitely worth checking out, also run
`help` in a pry session to see what else you can do.
-## `binding.irb`
-
-As of Ruby 2.7, IRB ships with a simple interactive debugger.
-
-Check out [the docs](https://ruby-doc.org/stdlib-2.7.0/libdoc/irb/rdoc/Binding.html) for more.
-
### State navigation
With the [state navigation](https://github.com/pry/pry/wiki/State-navigation)
@@ -98,7 +98,7 @@ Similar to source browsing, is [Documentation browsing](https://github.com/pry/p
With Control + R you can search your [command history](https://github.com/pry/pry/wiki/History).
-## Stepping
+### Stepping
To step through the code, you can use the following commands:
@@ -110,7 +110,7 @@ To step through the code, you can use the following commands:
- `finish`: Execute until current stack frame returns.
- `continue`: Continue program execution and end the Pry session.
-## Callstack navigation
+### Callstack navigation
You also can move around in the callstack with these commands:
@@ -123,7 +123,7 @@ You also can move around in the callstack with these commands:
- `frame `: Moves to a specific frame. Called without arguments
displays the current frame.
-## Short commands
+### Short commands
When you use `binding.pry` instead of `byebug`, the short commands
like `s`, `n`, `f`, and `c` do not work. To reinstall them, add this
@@ -138,7 +138,7 @@ if defined?(PryByebug)
end
```
-## Repeat last command
+### Repeat last command
You can repeat the last command by just hitting the Enter
key (for example, with `step` or`next`), if you place the following snippet
diff --git a/doc/user/application_security/sast/_index.md b/doc/user/application_security/sast/_index.md
index 5bf4cde1936..8985918b77e 100644
--- a/doc/user/application_security/sast/_index.md
+++ b/doc/user/application_security/sast/_index.md
@@ -934,28 +934,28 @@ The following are Docker image-related CI/CD variables.
Some analyzers can be customized with CI/CD variables.
-| CI/CD variable | Analyzer | Default | Description |
-|-------------------------------------|----------------------|-------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
-| `GITLAB_ADVANCED_SAST_ENABLED` | GitLab Advanced SAST | `false` | Set to `true` to enable [GitLab Advanced SAST](gitlab_advanced_sast.md) scanning (available in GitLab Ultimate only). |
-| `SCAN_KUBERNETES_MANIFESTS` | Kubesec | `"false"` | Set to `"true"` to scan Kubernetes manifests. |
-| `KUBESEC_HELM_CHARTS_PATH` | Kubesec | | Optional path to Helm charts that `helm` uses to generate a Kubernetes manifest that `kubesec` scans. If dependencies are defined, `helm dependency build` should be ran in a `before_script` to fetch the necessary dependencies. |
-| `KUBESEC_HELM_OPTIONS` | Kubesec | | Additional arguments for the `helm` executable. |
-| `COMPILE` | SpotBugs | `true` | Set to `false` to disable project compilation and dependency fetching. |
-| `ANT_HOME` | SpotBugs | | The `ANT_HOME` variable. |
-| `ANT_PATH` | SpotBugs | `ant` | Path to the `ant` executable. |
-| `GRADLE_PATH` | SpotBugs | `gradle` | Path to the `gradle` executable. |
-| `JAVA_OPTS` | SpotBugs | `-XX:MaxRAMPercentage=80` | Additional arguments for the `java` executable. |
-| `JAVA_PATH` | SpotBugs | `java` | Path to the `java` executable. |
-| `SAST_JAVA_VERSION` | SpotBugs | `8` for GitLab < 15 `17` for GitLab >= 15 | Which Java version to use. [Starting in GitLab 15.0](https://gitlab.com/gitlab-org/gitlab/-/issues/352549), supported versions are `11` and `17`. Before GitLab 15.0, supported versions are `8` and `11`. |
-| `MAVEN_CLI_OPTS` | SpotBugs | `--batch-mode -DskipTests=true` | Additional arguments for the `mvn` or `mvnw` executable. |
-| `MAVEN_PATH` | SpotBugs | `mvn` | Path to the `mvn` executable. |
-| `MAVEN_REPO_PATH` | SpotBugs | `$HOME/.m2/repository` | Path to the Maven local repository (shortcut for the `maven.repo.local` property). |
-| `SBT_PATH` | SpotBugs | `sbt` | Path to the `sbt` executable. |
-| `FAIL_NEVER` | SpotBugs | `false` | Set to `true` or `1` to ignore compilation failure. |
-| `SAST_SEMGREP_METRICS` | Semgrep | `true` | Set to `false` to disable sending anonymized scan metrics to [r2c](https://semgrep.dev). |
+| CI/CD variable | Analyzer | Default | Description |
+|-------------------------------------|----------------------|-------------------------------------------------|-------------|
+| `GITLAB_ADVANCED_SAST_ENABLED` | GitLab Advanced SAST | `false` | Set to `true` to enable [GitLab Advanced SAST](gitlab_advanced_sast.md) scanning (available in GitLab Ultimate only). |
+| `SCAN_KUBERNETES_MANIFESTS` | Kubesec | `"false"` | Set to `"true"` to scan Kubernetes manifests. |
+| `KUBESEC_HELM_CHARTS_PATH` | Kubesec | | Optional path to Helm charts that `helm` uses to generate a Kubernetes manifest that `kubesec` scans. If dependencies are defined, `helm dependency build` should be ran in a `before_script` to fetch the necessary dependencies. |
+| `KUBESEC_HELM_OPTIONS` | Kubesec | | Additional arguments for the `helm` executable. |
+| `COMPILE` | SpotBugs | `true` | Set to `false` to disable project compilation and dependency fetching. |
+| `ANT_HOME` | SpotBugs | | The `ANT_HOME` variable. |
+| `ANT_PATH` | SpotBugs | `ant` | Path to the `ant` executable. |
+| `GRADLE_PATH` | SpotBugs | `gradle` | Path to the `gradle` executable. |
+| `JAVA_OPTS` | SpotBugs | `-XX:MaxRAMPercentage=80` | Additional arguments for the `java` executable. |
+| `JAVA_PATH` | SpotBugs | `java` | Path to the `java` executable. |
+| `SAST_JAVA_VERSION` | SpotBugs | `8` for GitLab < 15 `17` for GitLab >= 15 | Which Java version to use. [Starting in GitLab 15.0](https://gitlab.com/gitlab-org/gitlab/-/issues/352549), supported versions are `11` and `17`. Before GitLab 15.0, supported versions are `8` and `11`. |
+| `MAVEN_CLI_OPTS` | SpotBugs | `--batch-mode -DskipTests=true` | Additional arguments for the `mvn` or `mvnw` executable. |
+| `MAVEN_PATH` | SpotBugs | `mvn` | Path to the `mvn` executable. |
+| `MAVEN_REPO_PATH` | SpotBugs | `$HOME/.m2/repository` | Path to the Maven local repository (shortcut for the `maven.repo.local` property). |
+| `SBT_PATH` | SpotBugs | `sbt` | Path to the `sbt` executable. |
+| `FAIL_NEVER` | SpotBugs | `false` | Set to `true` or `1` to ignore compilation failure. |
+| `SAST_SEMGREP_METRICS` | Semgrep | `true` | Set to `false` to disable sending anonymized scan metrics to [r2c](https://semgrep.dev). |
| `SAST_SCANNER_ALLOWED_CLI_OPTS` | Semgrep | `--max-target-bytes=1000000 --timeout=5` | CLI options (arguments with value, or flags) that are passed to the underlying security scanner when running scan operation. Only a limited set of [options](#security-scanner-configuration) are accepted. Separate a CLI option and its value using either a blank space or equals (`=`) character. For example: `name1 value1` or `name1=value1`. Multiple options must be separated by blank spaces. For example: `name1 value1 name2 value2`. [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/368565) in GitLab 15.3. |
-| `SAST_RULESET_GIT_REFERENCE` | All | | Defines a path to a custom ruleset configuration. If a project has a `.gitlab/sast-ruleset.toml` file committed, that local configuration takes precedence and the file from `SAST_RULESET_GIT_REFERENCE` isn't used. This variable is available for the Ultimate tier only. |
-| `SECURE_ENABLE_LOCAL_CONFIGURATION` | All | `false` | Enables the option to use custom ruleset configuration. If `SECURE_ENABLE_LOCAL_CONFIGURATION` is set to `false`, the project's custom ruleset configuration file at `.gitlab/sast-ruleset.toml` is ignored and the file from `SAST_RULESET_GIT_REFERENCE` or the default configuration takes precedence. |
+| `SAST_RULESET_GIT_REFERENCE` | All | | Defines a path to a custom ruleset configuration. If a project has a `.gitlab/sast-ruleset.toml` file committed, that local configuration takes precedence and the file from `SAST_RULESET_GIT_REFERENCE` isn't used. This variable is available for the Ultimate tier only. |
+| `SECURE_ENABLE_LOCAL_CONFIGURATION` | All | `false` | Enables the option to use custom ruleset configuration. If `SECURE_ENABLE_LOCAL_CONFIGURATION` is set to `false`, the project's custom ruleset configuration file at `.gitlab/sast-ruleset.toml` is ignored and the file from `SAST_RULESET_GIT_REFERENCE` or the default configuration takes precedence. |
#### Security scanner configuration
diff --git a/spec/frontend/work_items/list/components/work_items_list_app_spec.js b/spec/frontend/work_items/list/components/work_items_list_app_spec.js
index 29e18323590..3c3dbe14f56 100644
--- a/spec/frontend/work_items/list/components/work_items_list_app_spec.js
+++ b/spec/frontend/work_items/list/components/work_items_list_app_spec.js
@@ -48,7 +48,7 @@ import IssuableList from '~/vue_shared/issuable/list/components/issuable_list_ro
import CreateWorkItemModal from '~/work_items/components/create_work_item_modal.vue';
import WorkItemsListApp from '~/work_items/pages/work_items_list_app.vue';
import { sortOptions, urlSortParams } from '~/work_items/pages/list/constants';
-import getWorkItemStateCountsQuery from '~/work_items/graphql/list/get_work_item_state_counts.query.graphql';
+import getWorkItemStateCountsQuery from 'ee_else_ce/work_items/graphql/list/get_work_item_state_counts.query.graphql';
import getWorkItemsQuery from '~/work_items/graphql/list/get_work_items.query.graphql';
import WorkItemDrawer from '~/work_items/components/work_item_drawer.vue';
import {
@@ -143,6 +143,7 @@ describeSkipVue3(skipReason, () => {
hasGroupBulkEditFeature: true,
hasOkrsFeature: false,
hasQualityManagementFeature: false,
+ hasCustomFieldsFeature: false,
initialSort: CREATED_DESC,
isGroup: true,
isSignedIn: true,