summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2020-07-17 12:09:53 +0000
committerGitLab Bot <gitlab-bot@gitlab.com>2020-07-17 12:09:53 +0000
commit518f1c923d6a11cc3dbc7b7c976ff8348bc1e08c (patch)
tree963760be7a8aec502368888bb36ed8b812fe4080
parentfe29f106cd41b3c57b0266f3de6470cffee587ea (diff)
downloadgitlab-ce-518f1c923d6a11cc3dbc7b7c976ff8348bc1e08c.tar.gz
Add latest changes from gitlab-org/gitlab@master
-rw-r--r--.rubocop_todo.yml7
-rw-r--r--GITALY_SERVER_VERSION2
-rw-r--r--app/assets/javascripts/diffs/store/actions.js15
-rw-r--r--app/assets/javascripts/vue_merge_request_widget/components/states/mr_widget_checking.vue2
-rw-r--r--app/controllers/projects/merge_requests_controller.rb2
-rw-r--r--app/helpers/clusters_helper.rb4
-rw-r--r--app/views/clusters/clusters/_gitlab_integration_form.html.haml15
-rw-r--r--app/views/clusters/clusters/gcp/_form.html.haml11
-rw-r--r--app/views/clusters/clusters/user/_form.html.haml8
-rw-r--r--changelogs/unreleased/224602-optimize-usage-ping-metrics-based-on-issues-table.yml5
-rw-r--r--changelogs/unreleased/227799-enable-batch-suggestions-by-default.yml5
-rw-r--r--changelogs/unreleased/229155-clarify-checking-ability-to-merge-automatically-message-on-mr-widg.yml5
-rw-r--r--changelogs/unreleased/psi-iteration-pagination-sensation.yml5
-rw-r--r--changelogs/unreleased/rails-save-bang-3.yml5
-rw-r--r--doc/topics/autodevops/customize.md1
-rw-r--r--doc/topics/autodevops/stages.md4
-rw-r--r--doc/topics/autodevops/upgrading_chart.md72
-rw-r--r--doc/user/discussions/index.md13
-rw-r--r--doc/user/project/issues/design_management.md30
-rw-r--r--lib/gitlab/instrumentation/redis_base.rb2
-rw-r--r--lib/gitlab/usage_data.rb14
-rw-r--r--locale/gitlab.pot35
-rw-r--r--spec/frontend/diffs/store/actions_spec.js17
-rw-r--r--spec/frontend/vue_mr_widget/components/states/mr_widget_checking_spec.js2
-rw-r--r--spec/helpers/clusters_helper_spec.rb6
25 files changed, 220 insertions, 67 deletions
diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml
index 43801e2733b..e54d970c671 100644
--- a/.rubocop_todo.yml
+++ b/.rubocop_todo.yml
@@ -853,14 +853,7 @@ Style/SymbolProc:
# Configuration parameters: AllowImplicitReturn, AllowedReceivers.
Rails/SaveBang:
Exclude:
- - 'ee/spec/controllers/projects/environments_controller_spec.rb'
- - 'ee/spec/controllers/projects/issues_controller_spec.rb'
- - 'ee/spec/controllers/projects/merge_requests/creations_controller_spec.rb'
- 'ee/spec/controllers/projects/merge_requests_controller_spec.rb'
- - 'ee/spec/controllers/projects/project_members_controller_spec.rb'
- - 'ee/spec/controllers/projects/service_desk_controller_spec.rb'
- - 'ee/spec/controllers/projects/subscriptions_controller_spec.rb'
- - 'ee/spec/controllers/projects/vulnerability_feedback_controller_spec.rb'
- 'ee/spec/controllers/subscriptions_controller_spec.rb'
- 'ee/spec/factories/ci/job_artifacts.rb'
- 'ee/spec/factories/epics.rb'
diff --git a/GITALY_SERVER_VERSION b/GITALY_SERVER_VERSION
index 2eb4a428dd6..157f6ccd96d 100644
--- a/GITALY_SERVER_VERSION
+++ b/GITALY_SERVER_VERSION
@@ -1 +1 @@
-0a0cec89e667954bdb5153901b3aed32cf390880
+9c3d907fa8f50a8ed6a87279631cc4c729b91d3f
diff --git a/app/assets/javascripts/diffs/store/actions.js b/app/assets/javascripts/diffs/store/actions.js
index 69c1f3dd168..d469ed8ee82 100644
--- a/app/assets/javascripts/diffs/store/actions.js
+++ b/app/assets/javascripts/diffs/store/actions.js
@@ -235,9 +235,11 @@ export const setHighlightedRow = ({ commit }, lineCode) => {
// This is adding line discussions to the actual lines in the diff tree
// once for parallel and once for inline mode
export const assignDiscussionsToDiff = (
- { commit, state, rootState },
+ { commit, state, rootState, dispatch },
discussions = rootState.notes.discussions,
) => {
+ const id = window?.location?.hash;
+ const isNoteLink = id.indexOf('#note') === 0;
const diffPositionByLineCode = getDiffPositionByLineCode(
state.diffFiles,
state.useSingleDiffStyle,
@@ -254,6 +256,10 @@ export const assignDiscussionsToDiff = (
});
});
+ if (isNoteLink) {
+ dispatch('setCurrentDiffFileIdFromNote', id.split('_').pop());
+ }
+
Vue.nextTick(() => {
eventHub.$emit('scrollToDiscussion');
});
@@ -738,8 +744,11 @@ export function moveToNeighboringCommit({ dispatch, state }, { direction }) {
}
export const setCurrentDiffFileIdFromNote = ({ commit, rootGetters }, noteId) => {
- const fileHash = rootGetters.getDiscussion(rootGetters.notesById[noteId].discussion_id).diff_file
- .file_hash;
+ const note = rootGetters.notesById[noteId];
+
+ if (!note) return;
+
+ const fileHash = rootGetters.getDiscussion(note.discussion_id).diff_file.file_hash;
commit(types.UPDATE_CURRENT_DIFF_FILE_ID, fileHash);
};
diff --git a/app/assets/javascripts/vue_merge_request_widget/components/states/mr_widget_checking.vue b/app/assets/javascripts/vue_merge_request_widget/components/states/mr_widget_checking.vue
index a5e3115397a..e02be6dc2f7 100644
--- a/app/assets/javascripts/vue_merge_request_widget/components/states/mr_widget_checking.vue
+++ b/app/assets/javascripts/vue_merge_request_widget/components/states/mr_widget_checking.vue
@@ -12,7 +12,7 @@ export default {
<div class="mr-widget-body media">
<status-icon :show-disabled-button="true" status="loading" />
<div class="media-body space-children">
- <span class="bold"> {{ s__('mrWidget|Checking ability to merge automatically…') }} </span>
+ <span class="bold"> {{ s__('mrWidget|Checking if merge request can be merged…') }} </span>
</div>
</div>
</template>
diff --git a/app/controllers/projects/merge_requests_controller.rb b/app/controllers/projects/merge_requests_controller.rb
index 94ac01051cc..e65e5531b88 100644
--- a/app/controllers/projects/merge_requests_controller.rb
+++ b/app/controllers/projects/merge_requests_controller.rb
@@ -35,7 +35,7 @@ class Projects::MergeRequestsController < Projects::MergeRequests::ApplicationCo
push_frontend_feature_flag(:mr_commit_neighbor_nav, @project, default_enabled: true)
push_frontend_feature_flag(:multiline_comments, @project)
push_frontend_feature_flag(:file_identifier_hash)
- push_frontend_feature_flag(:batch_suggestions, @project)
+ push_frontend_feature_flag(:batch_suggestions, @project, default_enabled: true)
end
before_action do
diff --git a/app/helpers/clusters_helper.rb b/app/helpers/clusters_helper.rb
index b87d1c4e1ce..c85d2a68f14 100644
--- a/app/helpers/clusters_helper.rb
+++ b/app/helpers/clusters_helper.rb
@@ -1,10 +1,6 @@
# frozen_string_literal: true
module ClustersHelper
- def has_multiple_clusters?
- true
- end
-
def create_new_cluster_label(provider: nil)
case provider
when 'aws'
diff --git a/app/views/clusters/clusters/_gitlab_integration_form.html.haml b/app/views/clusters/clusters/_gitlab_integration_form.html.haml
index c5b54997407..160964b532a 100644
--- a/app/views/clusters/clusters/_gitlab_integration_form.html.haml
+++ b/app/views/clusters/clusters/_gitlab_integration_form.html.haml
@@ -10,17 +10,10 @@
.form-group
%h5= s_('ClusterIntegration|Environment scope')
- - if has_multiple_clusters?
- = field.text_field :environment_scope, class: 'col-md-6 form-control js-select-on-focus', placeholder: s_('ClusterIntegration|Environment scope')
- .form-text.text-muted= s_("ClusterIntegration|Choose which of your environments will use this cluster.")
- - else
- = text_field_tag :environment_scope, '*', class: 'col-md-6 form-control disabled', placeholder: s_('ClusterIntegration|Environment scope'), disabled: true
- - environment_scope_url = help_page_path('user/project/clusters/index', anchor: 'base-domain')
- - environment_scope_start = '<a href="%{url}" target="_blank" rel="noopener noreferrer">'.html_safe % { url: environment_scope_url }
- .form-text.text-muted
- %code
- = _('*')
- = s_("ClusterIntegration| is the default environment scope for this cluster. This means that all jobs, regardless of their environment, will use this cluster. %{environment_scope_start}More information%{environment_scope_end}").html_safe % { environment_scope_start: environment_scope_start, environment_scope_end: '</a>'.html_safe }
+ = field.text_field :environment_scope, class: 'col-md-6 form-control js-select-on-focus', placeholder: s_('ClusterIntegration|Environment scope')
+ - environment_scope_url = help_page_path('user/project/clusters/index', anchor: 'base-domain')
+ - environment_scope_start = '<a href="%{url}" target="_blank" rel="noopener noreferrer">'.html_safe % { url: environment_scope_url }
+ .form-text.text-muted= s_("ClusterIntegration|Choose which of your environments will use this cluster. %{environment_scope_start}More information%{environment_scope_end}").html_safe % { environment_scope_start: environment_scope_start, environment_scope_end: '</a>'.html_safe }
.form-group
%h5= s_('ClusterIntegration|Base domain')
diff --git a/app/views/clusters/clusters/gcp/_form.html.haml b/app/views/clusters/clusters/gcp/_form.html.haml
index 2a32b6f14a7..434c02a5c41 100644
--- a/app/views/clusters/clusters/gcp/_form.html.haml
+++ b/app/views/clusters/clusters/gcp/_form.html.haml
@@ -16,12 +16,11 @@
data: { token: token_in_session } }, url: clusterable.create_gcp_clusters_path, as: :cluster do |field|
= field.text_field :name, required: true, title: s_('ClusterIntegration|Cluster name is required.'),
label: s_('ClusterIntegration|Kubernetes cluster name'), label_class: 'label-bold'
- - if has_multiple_clusters?
- = field.form_group :environment_scope, label: { text: s_('ClusterIntegration|Environment scope'),
- class: 'label-bold' } do
- = field.text_field :environment_scope, required: true, class: 'form-control',
- title: 'Environment scope is required.', wrapper: false
- .form-text.text-muted= s_("ClusterIntegration|Choose which of your environments will use this cluster.")
+ = field.form_group :environment_scope, label: { text: s_('ClusterIntegration|Environment scope'),
+ class: 'label-bold' } do
+ = field.text_field :environment_scope, required: true, class: 'form-control',
+ title: 'Environment scope is required.', wrapper: false
+ .form-text.text-muted= s_("ClusterIntegration|Choose which of your environments will use this cluster.")
= field.fields_for :provider_gcp, @gcp_cluster.provider_gcp do |provider_gcp_field|
.form-group
diff --git a/app/views/clusters/clusters/user/_form.html.haml b/app/views/clusters/clusters/user/_form.html.haml
index ce226d29113..11772107135 100644
--- a/app/views/clusters/clusters/user/_form.html.haml
+++ b/app/views/clusters/clusters/user/_form.html.haml
@@ -13,10 +13,10 @@
url: clusterable.create_user_clusters_path, as: :cluster do |field|
= field.text_field :name, required: true, title: s_('ClusterIntegration|Cluster name is required.'),
label: s_('ClusterIntegration|Kubernetes cluster name'), label_class: 'label-bold'
- - if has_multiple_clusters?
- = field.text_field :environment_scope, required: true, title: 'Environment scope is required.',
- label: s_('ClusterIntegration|Environment scope'), label_class: 'label-bold',
- help: s_("ClusterIntegration|Choose which of your environments will use this cluster.")
+
+ = field.text_field :environment_scope, required: true, title: s_('ClusterIntegration|Environment scope is required.'),
+ label: s_('ClusterIntegration|Environment scope'), label_class: 'label-bold',
+ help: s_('ClusterIntegration|Choose which of your environments will use this cluster.')
= field.fields_for :platform_kubernetes, @user_cluster.platform_kubernetes do |platform_kubernetes_field|
= platform_kubernetes_field.url_field :api_url, required: true,
diff --git a/changelogs/unreleased/224602-optimize-usage-ping-metrics-based-on-issues-table.yml b/changelogs/unreleased/224602-optimize-usage-ping-metrics-based-on-issues-table.yml
new file mode 100644
index 00000000000..91d495e8eaf
--- /dev/null
+++ b/changelogs/unreleased/224602-optimize-usage-ping-metrics-based-on-issues-table.yml
@@ -0,0 +1,5 @@
+---
+title: Use memoized start/finish for metrics based on issues table
+merge_request: 37155
+author:
+type: performance
diff --git a/changelogs/unreleased/227799-enable-batch-suggestions-by-default.yml b/changelogs/unreleased/227799-enable-batch-suggestions-by-default.yml
new file mode 100644
index 00000000000..86b282d958e
--- /dev/null
+++ b/changelogs/unreleased/227799-enable-batch-suggestions-by-default.yml
@@ -0,0 +1,5 @@
+---
+title: Enable Batch Suggestins feature flag by default
+merge_request: 36561
+author:
+type: added
diff --git a/changelogs/unreleased/229155-clarify-checking-ability-to-merge-automatically-message-on-mr-widg.yml b/changelogs/unreleased/229155-clarify-checking-ability-to-merge-automatically-message-on-mr-widg.yml
new file mode 100644
index 00000000000..5c043f5be52
--- /dev/null
+++ b/changelogs/unreleased/229155-clarify-checking-ability-to-merge-automatically-message-on-mr-widg.yml
@@ -0,0 +1,5 @@
+---
+title: Change loading MR message wording
+merge_request: 37181
+author:
+type: changed
diff --git a/changelogs/unreleased/psi-iteration-pagination-sensation.yml b/changelogs/unreleased/psi-iteration-pagination-sensation.yml
new file mode 100644
index 00000000000..2123e93b85a
--- /dev/null
+++ b/changelogs/unreleased/psi-iteration-pagination-sensation.yml
@@ -0,0 +1,5 @@
+---
+title: Add pagination to iterations list
+merge_request: 37052
+author:
+type: added
diff --git a/changelogs/unreleased/rails-save-bang-3.yml b/changelogs/unreleased/rails-save-bang-3.yml
new file mode 100644
index 00000000000..70760d6c038
--- /dev/null
+++ b/changelogs/unreleased/rails-save-bang-3.yml
@@ -0,0 +1,5 @@
+---
+title: Refactor projects controllers specs to fix SaveBang Cop
+merge_request: 36920
+author: Rajendra Kadam
+type: fixed
diff --git a/doc/topics/autodevops/customize.md b/doc/topics/autodevops/customize.md
index 4b862f9e14c..2d6da4d322b 100644
--- a/doc/topics/autodevops/customize.md
+++ b/doc/topics/autodevops/customize.md
@@ -311,6 +311,7 @@ applications.
| `AUTO_DEVOPS_CHART_REPOSITORY_USERNAME` | From GitLab 11.11, used to set a username to connect to the Helm repository. Defaults to no credentials. Also set `AUTO_DEVOPS_CHART_REPOSITORY_PASSWORD`. |
| `AUTO_DEVOPS_CHART_REPOSITORY_PASSWORD` | From GitLab 11.11, used to set a password to connect to the Helm repository. Defaults to no credentials. Also set `AUTO_DEVOPS_CHART_REPOSITORY_USERNAME`. |
| `AUTO_DEVOPS_DEPLOY_DEBUG` | From GitLab 13.1, if this variable is present, Helm will output debug logs. |
+| `AUTO_DEVOPS_ALLOW_TO_FORCE_DEPLOY_V<N>` | From [auto-deploy-image](https://gitlab.com/gitlab-org/cluster-integration/auto-deploy-image) v1.0.0, if this variable is present, a new major version of chart is forcibly deployed. [More details](upgrading_chart.md#ignore-warning-and-continue-deploying) |
| `AUTO_DEVOPS_MODSECURITY_SEC_RULE_ENGINE` | From GitLab 12.5, used in combination with [ModSecurity feature flag](../../user/clusters/applications.md#web-application-firewall-modsecurity) to toggle [ModSecurity's `SecRuleEngine`](https://github.com/SpiderLabs/ModSecurity/wiki/Reference-Manual-(v2.x)#SecRuleEngine) behavior. Defaults to `DetectionOnly`. |
| `BUILDPACK_URL` | Buildpack's full URL. Can point to either [a Git repository URL or a tarball URL](#custom-buildpacks). |
| `CANARY_ENABLED` | From GitLab 11.0, used to define a [deploy policy for canary environments](#deploy-policy-for-canary-environments-premium). |
diff --git a/doc/topics/autodevops/stages.md b/doc/topics/autodevops/stages.md
index c724a58b31d..bf1594130f4 100644
--- a/doc/topics/autodevops/stages.md
+++ b/doc/topics/autodevops/stages.md
@@ -457,6 +457,10 @@ Herokuish, and you must prefix commands run in these images with
`/bin/herokuish procfile exec` to replicate the environment where your application
will run.
+### Upgrade auto-deploy-app Chart
+
+You can upgrade auto-deploy-app chart by following the [upgrade guide](upgrading_chart.md).
+
### Workers
Some web applications must run extra deployments for "worker processes". For
diff --git a/doc/topics/autodevops/upgrading_chart.md b/doc/topics/autodevops/upgrading_chart.md
new file mode 100644
index 00000000000..e4dacdfcf5b
--- /dev/null
+++ b/doc/topics/autodevops/upgrading_chart.md
@@ -0,0 +1,72 @@
+# Upgrading auto-deploy-app chart for Auto DevOps
+
+Auto DevOps provides the auto-deploy-app chart for deploying your application to the
+Kubernetes cluster with Helm/Tiller. Major version changes of this chart could have
+a significantly different resource architecture, and may not be backwards compatible.
+
+This guide provides instructions on how to upgrade your deployments to use the latest
+chart and resource architecture.
+
+## Compatibility
+
+The following table lists the version compatibility between GitLab and [auto-deploy-image](https://gitlab.com/gitlab-org/cluster-integration/auto-deploy-image) (with the [auto-deploy-app chart](https://gitlab.com/gitlab-org/cluster-integration/auto-deploy-image/-/tree/master/assets/auto-deploy-app)).
+
+| GitLab version | auto-deploy-image version | Notes |
+|------------------|---------------------------|--------------------------------------------|
+| v10.0 and higher | v0.1.0 and higher | v0 and v1 charts are backwards compatible. |
+
+## Upgrade Guide
+
+The Auto DevOps project must use the unmodified chart managed by GitLab.
+[Customized charts](customize.md#custom-helm-chart) are unsupported.
+
+### v1 chart
+
+The v1 chart is backward compatible with the v0 chart, so no configuration changes are needed.
+
+## Troubleshooting
+
+### Major version mismatch warning
+
+If deploying a chart that has a major version that is different from the previous one,
+the new chart might not be correctly deployed. This could be due to an architectural
+change. If that happens, the deployment job fails with a message similar to:
+
+```plaintext
+*************************************************************************************
+ [WARNING]
+Detected a major version difference between the the chart that is currently deploying (auto-deploy-app-v0.7.0), and the previously deployed chart (auto-deploy-app-v1.0.0).
+A new major version might not be backward compatible with the current release (production). The deployment could fail or be stuck in an unrecoverable status.
+...
+```
+
+To clear this error message and resume deployments, you must do one of the following:
+
+- Manually [upgrade the chart version](#upgrade-guide).
+- [Use a specific chart version](#use-a-specific-chart-version).
+
+#### Use a specific chart version
+
+To use a specific chart version, you must specify a corresponding version of [auto-deploy-image](https://gitlab.com/gitlab-org/cluster-integration/auto-deploy-image).
+Do this by [customizing the image in your `.gitlab-ci.yml`](customize.md#customizing-gitlab-ciyml).
+
+For example, create the following `.gitlab-ci.yml` file in the project. It configures Auto DevOps
+to use [auto-deploy-image](https://gitlab.com/gitlab-org/cluster-integration/auto-deploy-image) version `v0.17.0`
+for deployment jobs. It will download the chart from [chart repository](https://charts.gitlab.io/):
+
+```yaml
+include:
+ - template: Auto-DevOps.gitlab-ci.yml
+
+.auto-deploy:
+ image: "registry.gitlab.com/gitlab-org/cluster-integration/auto-deploy-image:v0.17.0"
+```
+
+### Ignore warning and continue deploying
+
+If you are certain that the new chart version is safe to be deployed,
+you can add the `AUTO_DEVOPS_ALLOW_TO_FORCE_DEPLOY_V<N>` [environment variable](customize.md#build-and-deployment)
+to force the deployment to continue, where `<N>` is the major version.
+
+For example, if you want to deploy the v2.0.0 chart on a deployment that previously
+used the v0.17.0 chart, add `AUTO_DEVOPS_ALLOW_TO_FORCE_DEPLOY_V2`.
diff --git a/doc/user/discussions/index.md b/doc/user/discussions/index.md
index c933306371d..599f46b2c40 100644
--- a/doc/user/discussions/index.md
+++ b/doc/user/discussions/index.md
@@ -492,9 +492,10 @@ introduced by [#25381](https://gitlab.com/gitlab-org/gitlab/-/issues/25381).
### Batch Suggestions
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/25486) in GitLab 13.1 as an [alpha feature](https://about.gitlab.com/handbook/product/#alpha).
-> - It's deployed behind a feature flag, disabled by default.
-> - It's disabled on GitLab.com.
-> - To use it in GitLab self-managed instances, ask a GitLab administrator to [enable it](#enable-or-disable-batch-suggestions).
+> - It was deployed behind a feature flag, disabled by default.
+> - [Became enabled by default](https://gitlab.com/gitlab-org/gitlab/-/issues/227799) on GitLab 13.2.
+> - It's enabled on GitLab.com.
+> - For GitLab self-managed instances, GitLab administrators can opt to [disable it](#enable-or-disable-batch-suggestions-core-only).
You can apply multiple suggestions at once to reduce the number of commits added
to your branch to address your reviewers' requests.
@@ -515,12 +516,12 @@ to your branch to address your reviewers' requests.
![A code change suggestion displayed, with the button to apply the batch of suggestions highlighted.](img/apply_batch_of_suggestions_v13_1.jpg "Apply a batch of suggestions")
-#### Enable or disable Batch Suggestions
+#### Enable or disable Batch Suggestions **(CORE ONLY)**
Batch Suggestions is
-deployed behind a feature flag that is **disabled by default**.
+deployed behind a feature flag that is **enabled by default**.
[GitLab administrators with access to the GitLab Rails console](../../administration/feature_flags.md)
-can enable it for your instance.
+can opt to disable it for your instance.
To enable it:
diff --git a/doc/user/project/issues/design_management.md b/doc/user/project/issues/design_management.md
index 39adb9d0f60..618506ea7ee 100644
--- a/doc/user/project/issues/design_management.md
+++ b/doc/user/project/issues/design_management.md
@@ -71,12 +71,40 @@ and connect to GitLab through a personal access token. The details are explained
## The Design Management section
-> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/223193) in GitLab 13.2, Designs are displayed directly on the issue description rather than on a separate tab.
+> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/223193) in GitLab 13.2, Designs are displayed directly on the issue description rather than on a separate tab.
+> - The new display is deployed behind a feature flag, enabled by default.
+> - It's enabled on GitLab.com.
+> - It cannot be enabled or disabled per-project.
+> - It's recommended for production use.
+> - For GitLab self-managed instances, GitLab administrators can opt to [disable it](#enable-or-disable-displaying-designs-on-the-issue-description-core-only). If disabled, it will move Designs back to the **Designs** tab.
You can find to the **Design Management** section in the issue description:
![Designs section](img/design_management_v13_2.png)
+### Enable or disable displaying Designs on the issue description **(CORE ONLY)**
+
+Displaying Designs on the issue description is under development but ready for
+production use. It is deployed behind a feature flag that is **enabled by
+default**.
+[GitLab administrators with access to the GitLab Rails console](../../../administration/feature_flags.md)
+can opt to disable it for your instance.
+
+To disable it:
+
+```ruby
+Feature.disable(:design_management_moved)
+```
+
+To enable it:
+
+```ruby
+Feature.enable(:design_management_moved)
+```
+
+By disabling this feature, designs will be displayed on the **Designs** tab
+instead of directly on the issue description.
+
## Adding designs
To upload Design images, drag files from your computer and drop them in the Design Management section,
diff --git a/lib/gitlab/instrumentation/redis_base.rb b/lib/gitlab/instrumentation/redis_base.rb
index ad2df70f35d..1df899747e0 100644
--- a/lib/gitlab/instrumentation/redis_base.rb
+++ b/lib/gitlab/instrumentation/redis_base.rb
@@ -96,7 +96,7 @@ module Gitlab
:gitlab_redis_client_requests_duration_seconds,
'Client side Redis request latency, per Redis server, excluding blocking commands',
{},
- [0.001, 0.005, 0.01]
+ [0.005, 0.01, 0.1, 0.5]
)
@request_latency_histogram.observe({ storage: storage_key }, duration)
diff --git a/lib/gitlab/usage_data.rb b/lib/gitlab/usage_data.rb
index c75ccbc744a..9d7e6536608 100644
--- a/lib/gitlab/usage_data.rb
+++ b/lib/gitlab/usage_data.rb
@@ -66,8 +66,8 @@ module Gitlab
# rubocop: disable Metrics/AbcSize
# rubocop: disable CodeReuse/ActiveRecord
def system_usage_data
- alert_bot_incident_count = count(::Issue.authored(::User.alert_bot))
- issues_created_manually_from_alerts = count(Issue.with_alert_management_alerts.not_authored_by(::User.alert_bot))
+ alert_bot_incident_count = count(::Issue.authored(::User.alert_bot), start: issue_minimum_id, finish: issue_maximum_id)
+ issues_created_manually_from_alerts = count(Issue.with_alert_management_alerts.not_authored_by(::User.alert_bot), start: issue_minimum_id, finish: issue_maximum_id)
{
counts: {
@@ -114,7 +114,7 @@ module Gitlab
in_review_folder: count(::Environment.in_review_folder),
grafana_integrated_projects: count(GrafanaIntegration.enabled),
groups: count(Group),
- issues: count(Issue),
+ issues: count(Issue, start: issue_minimum_id, finish: issue_maximum_id),
issues_created_from_gitlab_error_tracking_ui: count(SentryIssue),
issues_with_associated_zoom_link: count(ZoomMeeting.added_to_issue),
issues_using_zoom_quick_actions: distinct_count(ZoomMeeting, :issue_id),
@@ -124,7 +124,7 @@ module Gitlab
issues_created_manually_from_alerts: issues_created_manually_from_alerts,
incident_issues: alert_bot_incident_count,
alert_bot_incident_issues: alert_bot_incident_count,
- incident_labeled_issues: count(::Issue.with_label_attributes(::IncidentManagement::CreateIncidentLabelService::LABEL_PROPERTIES)),
+ incident_labeled_issues: count(::Issue.with_label_attributes(::IncidentManagement::CreateIncidentLabelService::LABEL_PROPERTIES), start: issue_minimum_id, finish: issue_maximum_id),
keys: count(Key),
label_lists: count(List.label),
lfs_objects: count(LfsObject),
@@ -630,9 +630,9 @@ module Gitlab
# Remove prometheus table queries once they are deprecated
# To be removed with https://gitlab.com/gitlab-org/gitlab/-/issues/217407.
[
- count(Issue.with_alert_management_alerts),
- count(::Issue.with_self_managed_prometheus_alert_events),
- count(::Issue.with_prometheus_alert_events)
+ count(Issue.with_alert_management_alerts, start: issue_minimum_id, finish: issue_maximum_id),
+ count(::Issue.with_self_managed_prometheus_alert_events, start: issue_minimum_id, finish: issue_maximum_id),
+ count(::Issue.with_prometheus_alert_events, start: issue_minimum_id, finish: issue_maximum_id)
].reduce(:+)
end
diff --git a/locale/gitlab.pot b/locale/gitlab.pot
index 4c30090081d..314bb6466c9 100644
--- a/locale/gitlab.pot
+++ b/locale/gitlab.pot
@@ -791,9 +791,6 @@ msgstr ""
msgid "(revoked)"
msgstr ""
-msgid "*"
-msgstr ""
-
msgid "+ %{amount} more"
msgstr ""
@@ -4959,9 +4956,6 @@ msgstr ""
msgid "ClusterIntegration| can be used instead of a custom domain."
msgstr ""
-msgid "ClusterIntegration| is the default environment scope for this cluster. This means that all jobs, regardless of their environment, will use this cluster. %{environment_scope_start}More information%{environment_scope_end}"
-msgstr ""
-
msgid "ClusterIntegration|%{appList} was successfully installed on your Kubernetes cluster"
msgstr ""
@@ -5082,6 +5076,9 @@ msgstr ""
msgid "ClusterIntegration|Choose which of your environments will use this cluster."
msgstr ""
+msgid "ClusterIntegration|Choose which of your environments will use this cluster. %{environment_scope_start}More information%{environment_scope_end}"
+msgstr ""
+
msgid "ClusterIntegration|Clear cluster cache"
msgstr ""
@@ -5214,6 +5211,9 @@ msgstr ""
msgid "ClusterIntegration|Environment scope"
msgstr ""
+msgid "ClusterIntegration|Environment scope is required."
+msgstr ""
+
msgid "ClusterIntegration|Every new Google Cloud Platform (GCP) account receives $300 in credit upon %{sign_up_link}. In partnership with Google, GitLab is able to offer an additional $200 for both new and existing GCP accounts to get started with GitLab's Google Kubernetes Engine Integration."
msgstr ""
@@ -9400,6 +9400,9 @@ msgstr ""
msgid "Error loading issues"
msgstr ""
+msgid "Error loading iterations"
+msgstr ""
+
msgid "Error loading last commit."
msgstr ""
@@ -15560,6 +15563,12 @@ msgstr ""
msgid "New changes were added. %{linkStart}Reload the page to review them%{linkEnd}"
msgstr ""
+msgid "New confidential epic title "
+msgstr ""
+
+msgid "New confidential issue title"
+msgstr ""
+
msgid "New deploy key"
msgstr ""
@@ -16840,6 +16849,12 @@ msgstr ""
msgid "Paste a machine public key here. Read more about how to generate it %{link_start}here%{link_end}"
msgstr ""
+msgid "Paste confidential epic link"
+msgstr ""
+
+msgid "Paste confidential issue link"
+msgstr ""
+
msgid "Paste epic link"
msgstr ""
@@ -20805,6 +20820,9 @@ msgstr ""
msgid "SecurityReports|Dismissed '%{vulnerabilityName}'. Turn off the hide dismissed toggle to view."
msgstr ""
+msgid "SecurityReports|Download Report"
+msgstr ""
+
msgid "SecurityReports|Each vulnerability now has a unique page that can be directly linked to, shared, referenced, and tracked as the single source of truth. Vulnerability occurrences also persist across scanner runs, which improves tracking and visibility and reduces duplicates between scans."
msgstr ""
@@ -20823,6 +20841,9 @@ msgstr ""
msgid "SecurityReports|False positive"
msgstr ""
+msgid "SecurityReports|Fuzzing artifacts"
+msgstr ""
+
msgid "SecurityReports|Group Security Dashboard"
msgstr ""
@@ -28283,7 +28304,7 @@ msgstr ""
msgid "mrWidget|Check out branch"
msgstr ""
-msgid "mrWidget|Checking ability to merge automatically…"
+msgid "mrWidget|Checking if merge request can be merged…"
msgstr ""
msgid "mrWidget|Cherry-pick"
diff --git a/spec/frontend/diffs/store/actions_spec.js b/spec/frontend/diffs/store/actions_spec.js
index 6845364a3ed..ec6ad031813 100644
--- a/spec/frontend/diffs/store/actions_spec.js
+++ b/spec/frontend/diffs/store/actions_spec.js
@@ -485,6 +485,10 @@ describe('DiffsStoreActions', () => {
});
describe('assignDiscussionsToDiff', () => {
+ afterEach(() => {
+ window.location.hash = '';
+ });
+
it('should merge discussions into diffs', done => {
window.location.hash = 'ABC_123';
@@ -578,6 +582,19 @@ describe('DiffsStoreActions', () => {
done,
);
});
+
+ it('dispatches setCurrentDiffFileIdFromNote with note ID', done => {
+ window.location.hash = 'note_123';
+
+ testAction(
+ assignDiscussionsToDiff,
+ [],
+ { diffFiles: [], useSingleDiffStyle: true },
+ [],
+ [{ type: 'setCurrentDiffFileIdFromNote', payload: '123' }],
+ done,
+ );
+ });
});
describe('removeDiscussionsFromDiff', () => {
diff --git a/spec/frontend/vue_mr_widget/components/states/mr_widget_checking_spec.js b/spec/frontend/vue_mr_widget/components/states/mr_widget_checking_spec.js
index 56d55c9afac..afe6bd0e767 100644
--- a/spec/frontend/vue_mr_widget/components/states/mr_widget_checking_spec.js
+++ b/spec/frontend/vue_mr_widget/components/states/mr_widget_checking_spec.js
@@ -25,7 +25,7 @@ describe('MRWidgetChecking', () => {
it('renders information about merging', () => {
expect(vm.$el.querySelector('.media-body').textContent.trim()).toEqual(
- 'Checking ability to merge automatically…',
+ 'Checking if merge request can be merged…',
);
});
});
diff --git a/spec/helpers/clusters_helper_spec.rb b/spec/helpers/clusters_helper_spec.rb
index 8ad955b61f1..dff83005c89 100644
--- a/spec/helpers/clusters_helper_spec.rb
+++ b/spec/helpers/clusters_helper_spec.rb
@@ -107,12 +107,6 @@ RSpec.describe ClustersHelper do
end
end
- describe '#has_multiple_clusters?' do
- subject { helper.has_multiple_clusters? }
-
- it { is_expected.to be_truthy }
- end
-
describe '#cluster_type_label' do
subject { helper.cluster_type_label(cluster_type) }