Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2021-08-09 21:08:33 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2021-08-09 21:08:33 +0300
commite440e09fe47e84c45f9ed9acc3ec1213846e8be4 (patch)
tree5ad7c327c3a6edb620ed49f0762ea958db40fdfb
parent9c39a0a9b81f06f6345a6b6e071b8e8cd249c064 (diff)
Add latest changes from gitlab-org/gitlab@master
-rw-r--r--app/assets/javascripts/pipeline_editor/components/header/pipeline_status.vue12
-rw-r--r--app/assets/javascripts/vue_shared/components/markdown/header.vue235
-rw-r--r--app/assets/javascripts/vue_shared/components/markdown/toolbar_button.vue15
-rw-r--r--app/assets/stylesheets/framework/markdown_area.scss35
-rw-r--r--app/assets/stylesheets/framework/secondary_navigation_elements.scss1
-rw-r--r--app/assets/stylesheets/pages/note_form.scss4
-rw-r--r--app/controllers/admin/clusters/applications_controller.rb11
-rw-r--r--app/controllers/clusters/applications_controller.rb56
-rw-r--r--app/controllers/groups/clusters/applications_controller.rb18
-rw-r--r--app/controllers/projects/clusters/applications_controller.rb15
-rw-r--r--app/presenters/clusterable_presenter.rb8
-rw-r--r--app/presenters/group_clusterable_presenter.rb10
-rw-r--r--app/presenters/instance_clusterable_presenter.rb10
-rw-r--r--app/presenters/project_clusterable_presenter.rb10
-rw-r--r--config/feature_flags/development/dast_profile_disable_joins.yml8
-rw-r--r--config/feature_flags/development/dast_scanner_profile_disable_joins.yml8
-rw-r--r--config/feature_flags/development/dast_site_profile_disable_joins.yml8
-rw-r--r--config/metrics/counts_28d/20210216181304_g_project_management_issue_title_changed_monthly.yml4
-rw-r--r--config/metrics/counts_28d/20210216181308_g_project_management_issue_description_changed_monthly.yml4
-rw-r--r--config/metrics/counts_28d/20210216181311_g_project_management_issue_assignee_changed_monthly.yml4
-rw-r--r--config/metrics/counts_28d/20210216181315_g_project_management_issue_made_confidential_monthly.yml4
-rw-r--r--config/metrics/counts_28d/20210216181319_g_project_management_issue_made_visible_monthly.yml4
-rw-r--r--config/metrics/counts_28d/20210216181323_g_project_management_issue_created_monthly.yml4
-rw-r--r--config/metrics/counts_28d/20210216181326_g_project_management_issue_closed_monthly.yml4
-rw-r--r--config/metrics/counts_28d/20210216181330_g_project_management_issue_reopened_monthly.yml4
-rw-r--r--config/metrics/counts_28d/20210216181334_g_project_management_issue_label_changed_monthly.yml4
-rw-r--r--config/metrics/counts_28d/20210216181337_g_project_management_issue_milestone_changed_monthly.yml4
-rw-r--r--config/metrics/counts_28d/20210216181348_g_project_management_issue_cross_referenced_monthly.yml4
-rw-r--r--config/metrics/counts_28d/20210216181352_g_project_management_issue_moved_monthly.yml4
-rw-r--r--config/metrics/counts_28d/20210216181356_g_project_management_issue_related_monthly.yml4
-rw-r--r--config/metrics/counts_28d/20210216181400_g_project_management_issue_unrelated_monthly.yml4
-rw-r--r--config/metrics/counts_28d/20210216181403_g_project_management_issue_marked_as_duplicate_monthly.yml4
-rw-r--r--config/metrics/counts_28d/20210216181407_g_project_management_issue_locked_monthly.yml4
-rw-r--r--config/metrics/counts_28d/20210216181411_g_project_management_issue_unlocked_monthly.yml4
-rw-r--r--config/metrics/counts_28d/20210216181424_g_project_management_issue_designs_added_monthly.yml4
-rw-r--r--config/metrics/counts_28d/20210216181427_g_project_management_issue_designs_modified_monthly.yml4
-rw-r--r--config/metrics/counts_28d/20210216181431_g_project_management_issue_designs_removed_monthly.yml4
-rw-r--r--config/metrics/counts_28d/20210216181435_g_project_management_issue_due_date_changed_monthly.yml4
-rw-r--r--config/metrics/counts_28d/20210216181438_g_project_management_issue_time_estimate_changed_monthly.yml4
-rw-r--r--config/metrics/counts_28d/20210216181442_g_project_management_issue_time_spent_changed_monthly.yml4
-rw-r--r--config/metrics/counts_28d/20210216181446_g_project_management_issue_comment_added_monthly.yml4
-rw-r--r--config/metrics/counts_28d/20210216181450_g_project_management_issue_comment_edited_monthly.yml4
-rw-r--r--config/metrics/counts_28d/20210216181453_g_project_management_issue_comment_removed_monthly.yml4
-rw-r--r--config/metrics/counts_28d/20210216181501_g_project_management_issue_cloned_monthly.yml4
-rw-r--r--config/metrics/counts_28d/20210216181504_issues_edit_total_unique_counts_monthly.yml36
-rw-r--r--config/metrics/counts_7d/20210201124931_g_project_management_issue_title_changed_weekly.yml4
-rw-r--r--config/metrics/counts_7d/20210216181306_g_project_management_issue_description_changed_weekly.yml4
-rw-r--r--config/metrics/counts_7d/20210216181310_g_project_management_issue_assignee_changed_weekly.yml4
-rw-r--r--config/metrics/counts_7d/20210216181313_g_project_management_issue_made_confidential_weekly.yml4
-rw-r--r--config/metrics/counts_7d/20210216181317_g_project_management_issue_made_visible_weekly.yml4
-rw-r--r--config/metrics/counts_7d/20210216181321_g_project_management_issue_created_weekly.yml4
-rw-r--r--config/metrics/counts_7d/20210216181324_g_project_management_issue_closed_weekly.yml4
-rw-r--r--config/metrics/counts_7d/20210216181328_g_project_management_issue_reopened_weekly.yml4
-rw-r--r--config/metrics/counts_7d/20210216181332_g_project_management_issue_label_changed_weekly.yml4
-rw-r--r--config/metrics/counts_7d/20210216181336_g_project_management_issue_milestone_changed_weekly.yml4
-rw-r--r--config/metrics/counts_7d/20210216181347_g_project_management_issue_cross_referenced_weekly.yml4
-rw-r--r--config/metrics/counts_7d/20210216181350_g_project_management_issue_moved_weekly.yml4
-rw-r--r--config/metrics/counts_7d/20210216181354_g_project_management_issue_related_weekly.yml4
-rw-r--r--config/metrics/counts_7d/20210216181358_g_project_management_issue_unrelated_weekly.yml4
-rw-r--r--config/metrics/counts_7d/20210216181401_g_project_management_issue_marked_as_duplicate_weekly.yml4
-rw-r--r--config/metrics/counts_7d/20210216181405_g_project_management_issue_locked_weekly.yml4
-rw-r--r--config/metrics/counts_7d/20210216181409_g_project_management_issue_unlocked_weekly.yml4
-rw-r--r--config/metrics/counts_7d/20210216181422_g_project_management_issue_designs_added_weekly.yml4
-rw-r--r--config/metrics/counts_7d/20210216181425_g_project_management_issue_designs_modified_weekly.yml4
-rw-r--r--config/metrics/counts_7d/20210216181429_g_project_management_issue_designs_removed_weekly.yml4
-rw-r--r--config/metrics/counts_7d/20210216181433_g_project_management_issue_due_date_changed_weekly.yml4
-rw-r--r--config/metrics/counts_7d/20210216181437_g_project_management_issue_time_estimate_changed_weekly.yml4
-rw-r--r--config/metrics/counts_7d/20210216181440_g_project_management_issue_time_spent_changed_weekly.yml4
-rw-r--r--config/metrics/counts_7d/20210216181444_g_project_management_issue_comment_added_weekly.yml4
-rw-r--r--config/metrics/counts_7d/20210216181448_g_project_management_issue_comment_edited_weekly.yml4
-rw-r--r--config/metrics/counts_7d/20210216181451_g_project_management_issue_comment_removed_weekly.yml4
-rw-r--r--config/metrics/counts_7d/20210216181459_g_project_management_issue_cloned_weekly.yml4
-rw-r--r--config/metrics/counts_7d/20210216181503_issues_edit_total_unique_counts_weekly.yml36
-rw-r--r--config/routes.rb6
-rw-r--r--db/post_migrate/20210701033622_finalize_ci_builds_needs_bigint_conversion.rb69
-rw-r--r--db/schema_migrations/202107010336221
-rw-r--r--db/structure.sql4
-rw-r--r--lib/gitlab/i18n.rb26
-rw-r--r--spec/controllers/admin/clusters/applications_controller_spec.rb139
-rw-r--r--spec/controllers/groups/clusters/applications_controller_spec.rb148
-rw-r--r--spec/controllers/projects/clusters/applications_controller_spec.rb215
-rw-r--r--spec/frontend/vue_shared/components/markdown/toolbar_button_spec.js3
-rw-r--r--spec/lib/gitlab/usage_data_metrics_spec.rb33
-rw-r--r--spec/presenters/group_clusterable_presenter_spec.rb16
-rw-r--r--spec/presenters/project_clusterable_presenter_spec.rb16
85 files changed, 570 insertions, 858 deletions
diff --git a/app/assets/javascripts/pipeline_editor/components/header/pipeline_status.vue b/app/assets/javascripts/pipeline_editor/components/header/pipeline_status.vue
index 0f971573507..46f6f4a28c1 100644
--- a/app/assets/javascripts/pipeline_editor/components/header/pipeline_status.vue
+++ b/app/assets/javascripts/pipeline_editor/components/header/pipeline_status.vue
@@ -104,12 +104,16 @@ export default {
class="gl-display-flex gl-justify-content-space-between gl-align-items-center gl-white-space-nowrap gl-max-w-full"
>
<template v-if="showLoadingState">
- <gl-loading-icon class="gl-mr-auto gl-display-inline-block" size="sm" />
- <span data-testid="pipeline-loading-msg">{{ $options.i18n.fetchLoading }}</span>
+ <div>
+ <gl-loading-icon class="gl-mr-auto gl-display-inline-block" size="sm" />
+ <span data-testid="pipeline-loading-msg">{{ $options.i18n.fetchLoading }}</span>
+ </div>
</template>
<template v-else-if="hasError">
- <gl-icon class="gl-mr-auto" name="warning-solid" />
- <span data-testid="pipeline-error-msg">{{ $options.i18n.fetchError }}</span>
+ <div>
+ <gl-icon class="gl-mr-auto" name="warning-solid" />
+ <span data-testid="pipeline-error-msg">{{ $options.i18n.fetchError }}</span>
+ </div>
</template>
<template v-else>
<div>
diff --git a/app/assets/javascripts/vue_shared/components/markdown/header.vue b/app/assets/javascripts/vue_shared/components/markdown/header.vue
index d343ba700ab..3ed9de6c133 100644
--- a/app/assets/javascripts/vue_shared/components/markdown/header.vue
+++ b/app/assets/javascripts/vue_shared/components/markdown/header.vue
@@ -1,5 +1,5 @@
<script>
-import { GlPopover, GlButton, GlTooltipDirective, GlIcon } from '@gitlab/ui';
+import { GlPopover, GlButton, GlTooltipDirective } from '@gitlab/ui';
import $ from 'jquery';
import { keysFor, BOLD_TEXT, ITALIC_TEXT, LINK_TEXT } from '~/behaviors/shortcuts/keybindings';
import { getSelectedFragment } from '~/lib/utils/common_utils';
@@ -10,7 +10,6 @@ import ToolbarButton from './toolbar_button.vue';
export default {
components: {
ToolbarButton,
- GlIcon,
GlPopover,
GlButton,
},
@@ -46,6 +45,7 @@ export default {
data() {
return {
tag: '> ',
+ suggestPopoverVisible: false,
};
},
computed: {
@@ -76,15 +76,27 @@ export default {
return this.isMac ? '⌘' : s__('KeyboardKey|Ctrl+');
},
},
+ watch: {
+ showSuggestPopover() {
+ this.updateSuggestPopoverVisibility();
+ },
+ },
mounted() {
$(document).on('markdown-preview:show.vue', this.previewMarkdownTab);
$(document).on('markdown-preview:hide.vue', this.writeMarkdownTab);
+
+ this.updateSuggestPopoverVisibility();
},
beforeDestroy() {
$(document).off('markdown-preview:show.vue', this.previewMarkdownTab);
$(document).off('markdown-preview:hide.vue', this.writeMarkdownTab);
},
methods: {
+ async updateSuggestPopoverVisibility() {
+ await this.$nextTick();
+
+ this.suggestPopoverVisible = this.showSuggestPopover && this.canSuggest;
+ },
isValid(form) {
return (
!form ||
@@ -153,127 +165,114 @@ export default {
</button>
</li>
<li :class="{ active: !previewMarkdown }" class="md-header-toolbar">
- <div class="d-inline-block">
- <toolbar-button
- tag="**"
- :button-title="
- sprintf(s__('MarkdownEditor|Add bold text (%{modifierKey}B)'), { modifierKey })
- "
- :shortcuts="$options.shortcuts.bold"
- icon="bold"
- />
- <toolbar-button
- tag="_"
- :button-title="
- sprintf(s__('MarkdownEditor|Add italic text (%{modifierKey}I)'), { modifierKey })
- "
- :shortcuts="$options.shortcuts.italic"
- icon="italic"
- />
+ <toolbar-button
+ tag="**"
+ :button-title="
+ sprintf(s__('MarkdownEditor|Add bold text (%{modifierKey}B)'), { modifierKey })
+ "
+ :shortcuts="$options.shortcuts.bold"
+ icon="bold"
+ />
+ <toolbar-button
+ tag="_"
+ :button-title="
+ sprintf(s__('MarkdownEditor|Add italic text (%{modifierKey}I)'), { modifierKey })
+ "
+ :shortcuts="$options.shortcuts.italic"
+ icon="italic"
+ />
+ <toolbar-button
+ :prepend="true"
+ :tag="tag"
+ :button-title="__('Insert a quote')"
+ icon="quote"
+ @click="handleQuote"
+ />
+ <template v-if="canSuggest">
<toolbar-button
+ ref="suggestButton"
+ :tag="mdSuggestion"
:prepend="true"
- :tag="tag"
- :button-title="__('Insert a quote')"
- icon="quote"
- @click="handleQuote"
+ :button-title="__('Insert suggestion')"
+ :cursor-offset="4"
+ :tag-content="lineContent"
+ icon="doc-code"
+ data-qa-selector="suggestion_button"
+ class="js-suggestion-btn"
+ @click="handleSuggestDismissed"
/>
- </div>
- <div class="d-inline-block ml-md-2 ml-0">
- <template v-if="canSuggest">
- <toolbar-button
- ref="suggestButton"
- :tag="mdSuggestion"
- :prepend="true"
- :button-title="__('Insert suggestion')"
- :cursor-offset="4"
- :tag-content="lineContent"
- icon="doc-code"
- data-qa-selector="suggestion_button"
- class="js-suggestion-btn"
+ <gl-popover
+ v-if="suggestPopoverVisible"
+ :target="$refs.suggestButton.$el"
+ :css-classes="['diff-suggest-popover']"
+ placement="bottom"
+ :show="suggestPopoverVisible"
+ >
+ <strong>{{ __('New! Suggest changes directly') }}</strong>
+ <p class="mb-2">
+ {{
+ __(
+ 'Suggest code changes which can be immediately applied in one click. Try it out!',
+ )
+ }}
+ </p>
+ <gl-button
+ variant="info"
+ category="primary"
+ size="small"
@click="handleSuggestDismissed"
- />
- <gl-popover
- v-if="showSuggestPopover && $refs.suggestButton"
- :target="$refs.suggestButton"
- :css-classes="['diff-suggest-popover']"
- placement="bottom"
- :show="showSuggestPopover"
>
- <strong>{{ __('New! Suggest changes directly') }}</strong>
- <p class="mb-2">
- {{
- __(
- 'Suggest code changes which can be immediately applied in one click. Try it out!',
- )
- }}
- </p>
- <gl-button
- variant="info"
- category="primary"
- size="sm"
- @click="handleSuggestDismissed"
- >
- {{ __('Got it') }}
- </gl-button>
- </gl-popover>
- </template>
- <toolbar-button tag="`" tag-block="```" :button-title="__('Insert code')" icon="code" />
- <toolbar-button
- tag="[{text}](url)"
- tag-select="url"
- :button-title="
- sprintf(s__('MarkdownEditor|Add a link (%{modifierKey}K)'), { modifierKey })
- "
- :shortcuts="$options.shortcuts.link"
- icon="link"
- />
- </div>
- <div class="d-inline-block ml-md-2 ml-0">
- <toolbar-button
- :prepend="true"
- tag="- "
- :button-title="__('Add a bullet list')"
- icon="list-bulleted"
- />
- <toolbar-button
- :prepend="true"
- tag="1. "
- :button-title="__('Add a numbered list')"
- icon="list-numbered"
- />
- <toolbar-button
- :prepend="true"
- tag="- [ ] "
- :button-title="__('Add a task list')"
- icon="list-task"
- />
- <toolbar-button
- :tag="mdCollapsibleSection"
- :prepend="true"
- tag-select="Click to expand"
- :button-title="__('Add a collapsible section')"
- icon="details-block"
- />
- <toolbar-button
- :tag="mdTable"
- :prepend="true"
- :button-title="__('Add a table')"
- icon="table"
- />
- </div>
- <div class="d-inline-block ml-md-2 ml-0">
- <button
- v-gl-tooltip
- :aria-label="__('Go full screen')"
- class="toolbar-btn toolbar-fullscreen-btn js-zen-enter"
- data-container="body"
- tabindex="-1"
- :title="__('Go full screen')"
- type="button"
- >
- <gl-icon name="maximize" />
- </button>
- </div>
+ {{ __('Got it') }}
+ </gl-button>
+ </gl-popover>
+ </template>
+ <toolbar-button tag="`" tag-block="```" :button-title="__('Insert code')" icon="code" />
+ <toolbar-button
+ tag="[{text}](url)"
+ tag-select="url"
+ :button-title="
+ sprintf(s__('MarkdownEditor|Add a link (%{modifierKey}K)'), { modifierKey })
+ "
+ :shortcuts="$options.shortcuts.link"
+ icon="link"
+ />
+ <toolbar-button
+ :prepend="true"
+ tag="- "
+ :button-title="__('Add a bullet list')"
+ icon="list-bulleted"
+ />
+ <toolbar-button
+ :prepend="true"
+ tag="1. "
+ :button-title="__('Add a numbered list')"
+ icon="list-numbered"
+ />
+ <toolbar-button
+ :prepend="true"
+ tag="- [ ] "
+ :button-title="__('Add a task list')"
+ icon="list-task"
+ />
+ <toolbar-button
+ :tag="mdCollapsibleSection"
+ :prepend="true"
+ tag-select="Click to expand"
+ :button-title="__('Add a collapsible section')"
+ icon="details-block"
+ />
+ <toolbar-button
+ :tag="mdTable"
+ :prepend="true"
+ :button-title="__('Add a table')"
+ icon="table"
+ />
+ <toolbar-button
+ class="js-zen-enter"
+ :prepend="true"
+ :button-title="__('Go full screen')"
+ icon="maximize"
+ />
</li>
</ul>
</div>
diff --git a/app/assets/javascripts/vue_shared/components/markdown/toolbar_button.vue b/app/assets/javascripts/vue_shared/components/markdown/toolbar_button.vue
index 6c35741e7e5..2f8481cd064 100644
--- a/app/assets/javascripts/vue_shared/components/markdown/toolbar_button.vue
+++ b/app/assets/javascripts/vue_shared/components/markdown/toolbar_button.vue
@@ -1,9 +1,9 @@
<script>
-import { GlTooltipDirective, GlIcon } from '@gitlab/ui';
+import { GlTooltipDirective, GlButton } from '@gitlab/ui';
export default {
components: {
- GlIcon,
+ GlButton,
},
directives: {
GlTooltip: GlTooltipDirective,
@@ -19,7 +19,8 @@ export default {
},
tag: {
type: String,
- required: true,
+ required: false,
+ default: '',
},
tagBlock: {
type: String,
@@ -71,7 +72,7 @@ export default {
</script>
<template>
- <button
+ <gl-button
v-gl-tooltip
:data-md-tag="tag"
:data-md-cursor-offset="cursorOffset"
@@ -82,11 +83,11 @@ export default {
:data-md-shortcuts="shortcutsString"
:title="buttonTitle"
:aria-label="buttonTitle"
+ :icon="icon"
type="button"
+ category="tertiary"
class="toolbar-btn js-md"
data-container="body"
@click="() => $emit('click')"
- >
- <gl-icon :name="icon" />
- </button>
+ />
</template>
diff --git a/app/assets/stylesheets/framework/markdown_area.scss b/app/assets/stylesheets/framework/markdown_area.scss
index 2a97009e605..506c1b91417 100644
--- a/app/assets/stylesheets/framework/markdown_area.scss
+++ b/app/assets/stylesheets/framework/markdown_area.scss
@@ -83,6 +83,7 @@
li.md-header-toolbar {
margin-left: auto;
display: none;
+ padding-bottom: $gl-padding-8;
&.active {
display: block;
@@ -91,9 +92,9 @@
flex: none;
display: flex;
justify-content: center;
+ flex-wrap: wrap;
+ margin-top: $gl-padding-8;
width: 100%;
- padding-top: $gl-padding-top;
- padding-bottom: $gl-padding-top;
}
}
}
@@ -131,36 +132,6 @@
width: 100%;
}
-.toolbar-btn {
- float: left;
- padding: 0 7px;
- background: transparent;
- border: 0;
- outline: 0;
-
- svg {
- width: 14px;
- height: 14px;
- vertical-align: middle;
- fill: $gl-text-color-secondary;
- }
-
- &:hover,
- &:focus {
- svg {
- fill: $blue-600;
- }
- }
-}
-
-.toolbar-fullscreen-btn {
- margin-right: -5px;
-
- @include media-breakpoint-down(xs) {
- margin-right: 0;
- }
-}
-
.md-suggestion-diff {
display: table !important;
border: 1px solid $border-color !important;
diff --git a/app/assets/stylesheets/framework/secondary_navigation_elements.scss b/app/assets/stylesheets/framework/secondary_navigation_elements.scss
index f904ef11f5b..06eebb95438 100644
--- a/app/assets/stylesheets/framework/secondary_navigation_elements.scss
+++ b/app/assets/stylesheets/framework/secondary_navigation_elements.scss
@@ -14,7 +14,6 @@
a,
button {
padding: $gl-padding-8;
- padding-bottom: $gl-padding-8 + 1;
font-size: 14px;
line-height: 28px;
color: $gl-text-color-secondary;
diff --git a/app/assets/stylesheets/pages/note_form.scss b/app/assets/stylesheets/pages/note_form.scss
index c025d8569a7..dbbbaac9e5a 100644
--- a/app/assets/stylesheets/pages/note_form.scss
+++ b/app/assets/stylesheets/pages/note_form.scss
@@ -54,7 +54,7 @@
.common-note-form {
.md-area {
- padding: $gl-padding-top $gl-padding;
+ padding: $gl-padding-8 $gl-padding;
border: 1px solid $border-color;
border-radius: $border-radius-base;
transition: border-color ease-in-out 0.15s,
@@ -323,7 +323,7 @@ table {
}
.comment-toolbar {
- padding-top: $gl-padding-top;
+ padding-top: $gl-padding-8;
color: $gl-text-color-secondary;
border-top: 1px solid $border-color;
}
diff --git a/app/controllers/admin/clusters/applications_controller.rb b/app/controllers/admin/clusters/applications_controller.rb
deleted file mode 100644
index 7400cc16175..00000000000
--- a/app/controllers/admin/clusters/applications_controller.rb
+++ /dev/null
@@ -1,11 +0,0 @@
-# frozen_string_literal: true
-
-class Admin::Clusters::ApplicationsController < Clusters::ApplicationsController
- include EnforcesAdminAuthentication
-
- private
-
- def clusterable
- @clusterable ||= InstanceClusterablePresenter.fabricate(Clusters::Instance.new, current_user: current_user)
- end
-end
diff --git a/app/controllers/clusters/applications_controller.rb b/app/controllers/clusters/applications_controller.rb
deleted file mode 100644
index 91003e9580d..00000000000
--- a/app/controllers/clusters/applications_controller.rb
+++ /dev/null
@@ -1,56 +0,0 @@
-# frozen_string_literal: true
-
-class Clusters::ApplicationsController < Clusters::BaseController
- before_action :cluster
- before_action :authorize_create_cluster!, only: [:create]
- before_action :authorize_update_cluster!, only: [:update]
- before_action :authorize_admin_cluster!, only: [:destroy]
-
- def create
- request_handler do
- Clusters::Applications::CreateService
- .new(@cluster, current_user, cluster_application_params)
- .execute(request)
- end
- end
-
- def update
- request_handler do
- Clusters::Applications::UpdateService
- .new(@cluster, current_user, cluster_application_params)
- .execute(request)
- end
- end
-
- def destroy
- request_handler do
- Clusters::Applications::DestroyService
- .new(@cluster, current_user, cluster_application_destroy_params)
- .execute(request)
- end
- end
-
- private
-
- def request_handler
- yield
-
- head :no_content
- rescue Clusters::Applications::BaseService::InvalidApplicationError
- render_404
- rescue StandardError
- head :bad_request
- end
-
- def cluster
- @cluster ||= clusterable.clusters.find(params[:id]) || render_404
- end
-
- def cluster_application_params
- params.permit(:application, :hostname, :pages_domain_id, :email, :stack, :host, :port, :protocol)
- end
-
- def cluster_application_destroy_params
- params.permit(:application)
- end
-end
diff --git a/app/controllers/groups/clusters/applications_controller.rb b/app/controllers/groups/clusters/applications_controller.rb
deleted file mode 100644
index ce6fda4143c..00000000000
--- a/app/controllers/groups/clusters/applications_controller.rb
+++ /dev/null
@@ -1,18 +0,0 @@
-# frozen_string_literal: true
-
-class Groups::Clusters::ApplicationsController < Clusters::ApplicationsController
- include ControllerWithCrossProjectAccessCheck
-
- prepend_before_action :group
- requires_cross_project_access
-
- private
-
- def clusterable
- @clusterable ||= ClusterablePresenter.fabricate(group, current_user: current_user)
- end
-
- def group
- @group ||= find_routable!(Group, params[:group_id] || params[:id], request.path_info)
- end
-end
diff --git a/app/controllers/projects/clusters/applications_controller.rb b/app/controllers/projects/clusters/applications_controller.rb
deleted file mode 100644
index 6c5778124e8..00000000000
--- a/app/controllers/projects/clusters/applications_controller.rb
+++ /dev/null
@@ -1,15 +0,0 @@
-# frozen_string_literal: true
-
-class Projects::Clusters::ApplicationsController < Clusters::ApplicationsController
- prepend_before_action :project
-
- private
-
- def clusterable
- @clusterable ||= ClusterablePresenter.fabricate(project, current_user: current_user)
- end
-
- def project
- @project ||= find_routable!(Project, File.join(params[:namespace_id], params[:project_id]), request.path_info)
- end
-end
diff --git a/app/presenters/clusterable_presenter.rb b/app/presenters/clusterable_presenter.rb
index a316793dae9..03e26b92922 100644
--- a/app/presenters/clusterable_presenter.rb
+++ b/app/presenters/clusterable_presenter.rb
@@ -48,14 +48,6 @@ class ClusterablePresenter < Gitlab::View::Presenter::Delegated
raise NotImplementedError
end
- def install_applications_cluster_path(cluster, application)
- raise NotImplementedError
- end
-
- def update_applications_cluster_path(cluster, application)
- raise NotImplementedError
- end
-
def clear_cluster_cache_path(cluster)
raise NotImplementedError
end
diff --git a/app/presenters/group_clusterable_presenter.rb b/app/presenters/group_clusterable_presenter.rb
index adbe20517be..34e7084ab02 100644
--- a/app/presenters/group_clusterable_presenter.rb
+++ b/app/presenters/group_clusterable_presenter.rb
@@ -9,16 +9,6 @@ class GroupClusterablePresenter < ClusterablePresenter
cluster_status_group_cluster_path(clusterable, cluster, params)
end
- override :install_applications_cluster_path
- def install_applications_cluster_path(cluster, application)
- install_applications_group_cluster_path(clusterable, cluster, application)
- end
-
- override :update_applications_cluster_path
- def update_applications_cluster_path(cluster, application)
- update_applications_group_cluster_path(clusterable, cluster, application)
- end
-
override :clear_cluster_cache_path
def clear_cluster_cache_path(cluster)
clear_cache_group_cluster_path(clusterable, cluster)
diff --git a/app/presenters/instance_clusterable_presenter.rb b/app/presenters/instance_clusterable_presenter.rb
index 84b3328b37f..56d91f90b2e 100644
--- a/app/presenters/instance_clusterable_presenter.rb
+++ b/app/presenters/instance_clusterable_presenter.rb
@@ -27,16 +27,6 @@ class InstanceClusterablePresenter < ClusterablePresenter
cluster_status_admin_cluster_path(cluster, params)
end
- override :install_applications_cluster_path
- def install_applications_cluster_path(cluster, application)
- install_applications_admin_cluster_path(cluster, application)
- end
-
- override :update_applications_cluster_path
- def update_applications_cluster_path(cluster, application)
- update_applications_admin_cluster_path(cluster, application)
- end
-
override :clear_cluster_cache_path
def clear_cluster_cache_path(cluster)
clear_cache_admin_cluster_path(cluster)
diff --git a/app/presenters/project_clusterable_presenter.rb b/app/presenters/project_clusterable_presenter.rb
index 1c5f11ffe59..920304e743e 100644
--- a/app/presenters/project_clusterable_presenter.rb
+++ b/app/presenters/project_clusterable_presenter.rb
@@ -9,16 +9,6 @@ class ProjectClusterablePresenter < ClusterablePresenter
cluster_status_project_cluster_path(clusterable, cluster, params)
end
- override :install_applications_cluster_path
- def install_applications_cluster_path(cluster, application)
- install_applications_project_cluster_path(clusterable, cluster, application)
- end
-
- override :update_applications_cluster_path
- def update_applications_cluster_path(cluster, application)
- update_applications_project_cluster_path(clusterable, cluster, application)
- end
-
override :clear_cluster_cache_path
def clear_cluster_cache_path(cluster)
clear_cache_project_cluster_path(clusterable, cluster)
diff --git a/config/feature_flags/development/dast_profile_disable_joins.yml b/config/feature_flags/development/dast_profile_disable_joins.yml
new file mode 100644
index 00000000000..469e930dd7c
--- /dev/null
+++ b/config/feature_flags/development/dast_profile_disable_joins.yml
@@ -0,0 +1,8 @@
+---
+name: dast_profile_disable_joins
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/66709
+rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/336944
+milestone: '14.2'
+type: development
+group: group::dynamic analysis
+default_enabled: true
diff --git a/config/feature_flags/development/dast_scanner_profile_disable_joins.yml b/config/feature_flags/development/dast_scanner_profile_disable_joins.yml
new file mode 100644
index 00000000000..8c27633b785
--- /dev/null
+++ b/config/feature_flags/development/dast_scanner_profile_disable_joins.yml
@@ -0,0 +1,8 @@
+---
+name: dast_scanner_profile_disable_joins
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/66709
+rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/336946
+milestone: '14.2'
+type: development
+group: group::dynamic analysis
+default_enabled: true
diff --git a/config/feature_flags/development/dast_site_profile_disable_joins.yml b/config/feature_flags/development/dast_site_profile_disable_joins.yml
new file mode 100644
index 00000000000..08327a4abf1
--- /dev/null
+++ b/config/feature_flags/development/dast_site_profile_disable_joins.yml
@@ -0,0 +1,8 @@
+---
+name: dast_site_profile_disable_joins
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/66709
+rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/336945
+milestone: '14.2'
+type: development
+group: group::dynamic analysis
+default_enabled: true
diff --git a/config/metrics/counts_28d/20210216181304_g_project_management_issue_title_changed_monthly.yml b/config/metrics/counts_28d/20210216181304_g_project_management_issue_title_changed_monthly.yml
index c00f26994d8..2f665b70b97 100644
--- a/config/metrics/counts_28d/20210216181304_g_project_management_issue_title_changed_monthly.yml
+++ b/config/metrics/counts_28d/20210216181304_g_project_management_issue_title_changed_monthly.yml
@@ -10,6 +10,10 @@ value_type: number
status: data_available
time_frame: 28d
data_source: redis_hll
+instrumentation_class: RedisHLLMetric
+options:
+ events:
+ - g_project_management_issue_title_changed
distribution:
- ce
- ee
diff --git a/config/metrics/counts_28d/20210216181308_g_project_management_issue_description_changed_monthly.yml b/config/metrics/counts_28d/20210216181308_g_project_management_issue_description_changed_monthly.yml
index 6610a4df2d3..e41e729a5fd 100644
--- a/config/metrics/counts_28d/20210216181308_g_project_management_issue_description_changed_monthly.yml
+++ b/config/metrics/counts_28d/20210216181308_g_project_management_issue_description_changed_monthly.yml
@@ -10,6 +10,10 @@ value_type: number
status: data_available
time_frame: 28d
data_source: redis_hll
+instrumentation_class: RedisHLLMetric
+options:
+ events:
+ - g_project_management_issue_description_changed
distribution:
- ce
- ee
diff --git a/config/metrics/counts_28d/20210216181311_g_project_management_issue_assignee_changed_monthly.yml b/config/metrics/counts_28d/20210216181311_g_project_management_issue_assignee_changed_monthly.yml
index cd400db57ea..6c69ce110ac 100644
--- a/config/metrics/counts_28d/20210216181311_g_project_management_issue_assignee_changed_monthly.yml
+++ b/config/metrics/counts_28d/20210216181311_g_project_management_issue_assignee_changed_monthly.yml
@@ -10,6 +10,10 @@ value_type: number
status: data_available
time_frame: 28d
data_source: redis_hll
+instrumentation_class: RedisHLLMetric
+options:
+ events:
+ - g_project_management_issue_assignee_changed
distribution:
- ce
- ee
diff --git a/config/metrics/counts_28d/20210216181315_g_project_management_issue_made_confidential_monthly.yml b/config/metrics/counts_28d/20210216181315_g_project_management_issue_made_confidential_monthly.yml
index afc08c91ed1..344713942fc 100644
--- a/config/metrics/counts_28d/20210216181315_g_project_management_issue_made_confidential_monthly.yml
+++ b/config/metrics/counts_28d/20210216181315_g_project_management_issue_made_confidential_monthly.yml
@@ -10,6 +10,10 @@ value_type: number
status: data_available
time_frame: 28d
data_source: redis_hll
+instrumentation_class: RedisHLLMetric
+options:
+ events:
+ - g_project_management_issue_made_confidential
distribution:
- ce
- ee
diff --git a/config/metrics/counts_28d/20210216181319_g_project_management_issue_made_visible_monthly.yml b/config/metrics/counts_28d/20210216181319_g_project_management_issue_made_visible_monthly.yml
index 871583812ea..3127f67dc01 100644
--- a/config/metrics/counts_28d/20210216181319_g_project_management_issue_made_visible_monthly.yml
+++ b/config/metrics/counts_28d/20210216181319_g_project_management_issue_made_visible_monthly.yml
@@ -10,6 +10,10 @@ value_type: number
status: data_available
time_frame: 28d
data_source: redis_hll
+instrumentation_class: RedisHLLMetric
+options:
+ events:
+ - g_project_management_issue_made_visible
distribution:
- ce
- ee
diff --git a/config/metrics/counts_28d/20210216181323_g_project_management_issue_created_monthly.yml b/config/metrics/counts_28d/20210216181323_g_project_management_issue_created_monthly.yml
index d330defab80..126264279fd 100644
--- a/config/metrics/counts_28d/20210216181323_g_project_management_issue_created_monthly.yml
+++ b/config/metrics/counts_28d/20210216181323_g_project_management_issue_created_monthly.yml
@@ -10,6 +10,10 @@ value_type: number
status: data_available
time_frame: 28d
data_source: redis_hll
+instrumentation_class: RedisHLLMetric
+options:
+ events:
+ - g_project_management_issue_created
distribution:
- ce
- ee
diff --git a/config/metrics/counts_28d/20210216181326_g_project_management_issue_closed_monthly.yml b/config/metrics/counts_28d/20210216181326_g_project_management_issue_closed_monthly.yml
index abfd7c56e5e..f8f2b018f70 100644
--- a/config/metrics/counts_28d/20210216181326_g_project_management_issue_closed_monthly.yml
+++ b/config/metrics/counts_28d/20210216181326_g_project_management_issue_closed_monthly.yml
@@ -10,6 +10,10 @@ value_type: number
status: data_available
time_frame: 28d
data_source: redis_hll
+instrumentation_class: RedisHLLMetric
+options:
+ events:
+ - g_project_management_issue_closed
distribution:
- ce
- ee
diff --git a/config/metrics/counts_28d/20210216181330_g_project_management_issue_reopened_monthly.yml b/config/metrics/counts_28d/20210216181330_g_project_management_issue_reopened_monthly.yml
index c70ad295be9..3137d120236 100644
--- a/config/metrics/counts_28d/20210216181330_g_project_management_issue_reopened_monthly.yml
+++ b/config/metrics/counts_28d/20210216181330_g_project_management_issue_reopened_monthly.yml
@@ -10,6 +10,10 @@ value_type: number
status: data_available
time_frame: 28d
data_source: redis_hll
+instrumentation_class: RedisHLLMetric
+options:
+ events:
+ - g_project_management_issue_reopened
distribution:
- ce
- ee
diff --git a/config/metrics/counts_28d/20210216181334_g_project_management_issue_label_changed_monthly.yml b/config/metrics/counts_28d/20210216181334_g_project_management_issue_label_changed_monthly.yml
index e17f4f25823..f3106e74896 100644
--- a/config/metrics/counts_28d/20210216181334_g_project_management_issue_label_changed_monthly.yml
+++ b/config/metrics/counts_28d/20210216181334_g_project_management_issue_label_changed_monthly.yml
@@ -10,6 +10,10 @@ value_type: number
status: data_available
time_frame: 28d
data_source: redis_hll
+instrumentation_class: RedisHLLMetric
+options:
+ events:
+ - g_project_management_issue_label_changed
distribution:
- ce
- ee
diff --git a/config/metrics/counts_28d/20210216181337_g_project_management_issue_milestone_changed_monthly.yml b/config/metrics/counts_28d/20210216181337_g_project_management_issue_milestone_changed_monthly.yml
index bb1219ce38b..89cabf2b80b 100644
--- a/config/metrics/counts_28d/20210216181337_g_project_management_issue_milestone_changed_monthly.yml
+++ b/config/metrics/counts_28d/20210216181337_g_project_management_issue_milestone_changed_monthly.yml
@@ -10,6 +10,10 @@ value_type: number
status: data_available
time_frame: 28d
data_source: redis_hll
+instrumentation_class: RedisHLLMetric
+options:
+ events:
+ - g_project_management_issue_milestone_changed
distribution:
- ce
- ee
diff --git a/config/metrics/counts_28d/20210216181348_g_project_management_issue_cross_referenced_monthly.yml b/config/metrics/counts_28d/20210216181348_g_project_management_issue_cross_referenced_monthly.yml
index c34403dbee9..f29cc4ff2ec 100644
--- a/config/metrics/counts_28d/20210216181348_g_project_management_issue_cross_referenced_monthly.yml
+++ b/config/metrics/counts_28d/20210216181348_g_project_management_issue_cross_referenced_monthly.yml
@@ -10,6 +10,10 @@ value_type: number
status: data_available
time_frame: 28d
data_source: redis_hll
+instrumentation_class: RedisHLLMetric
+options:
+ events:
+ - g_project_management_issue_cross_referenced
distribution:
- ce
- ee
diff --git a/config/metrics/counts_28d/20210216181352_g_project_management_issue_moved_monthly.yml b/config/metrics/counts_28d/20210216181352_g_project_management_issue_moved_monthly.yml
index 53a4ddd973f..3fef89a23b1 100644
--- a/config/metrics/counts_28d/20210216181352_g_project_management_issue_moved_monthly.yml
+++ b/config/metrics/counts_28d/20210216181352_g_project_management_issue_moved_monthly.yml
@@ -10,6 +10,10 @@ value_type: number
status: data_available
time_frame: 28d
data_source: redis_hll
+instrumentation_class: RedisHLLMetric
+options:
+ events:
+ - g_project_management_issue_moved
distribution:
- ce
- ee
diff --git a/config/metrics/counts_28d/20210216181356_g_project_management_issue_related_monthly.yml b/config/metrics/counts_28d/20210216181356_g_project_management_issue_related_monthly.yml
index 24f380bdefc..7c21c40a425 100644
--- a/config/metrics/counts_28d/20210216181356_g_project_management_issue_related_monthly.yml
+++ b/config/metrics/counts_28d/20210216181356_g_project_management_issue_related_monthly.yml
@@ -10,6 +10,10 @@ value_type: number
status: data_available
time_frame: 28d
data_source: redis_hll
+instrumentation_class: RedisHLLMetric
+options:
+ events:
+ - g_project_management_issue_related
distribution:
- ce
- ee
diff --git a/config/metrics/counts_28d/20210216181400_g_project_management_issue_unrelated_monthly.yml b/config/metrics/counts_28d/20210216181400_g_project_management_issue_unrelated_monthly.yml
index e80b69a6eab..25666725e9c 100644
--- a/config/metrics/counts_28d/20210216181400_g_project_management_issue_unrelated_monthly.yml
+++ b/config/metrics/counts_28d/20210216181400_g_project_management_issue_unrelated_monthly.yml
@@ -10,6 +10,10 @@ value_type: number
status: data_available
time_frame: 28d
data_source: redis_hll
+instrumentation_class: RedisHLLMetric
+options:
+ events:
+ - g_project_management_issue_unrelated
distribution:
- ce
- ee
diff --git a/config/metrics/counts_28d/20210216181403_g_project_management_issue_marked_as_duplicate_monthly.yml b/config/metrics/counts_28d/20210216181403_g_project_management_issue_marked_as_duplicate_monthly.yml
index 4aba7913e10..e4824c5531e 100644
--- a/config/metrics/counts_28d/20210216181403_g_project_management_issue_marked_as_duplicate_monthly.yml
+++ b/config/metrics/counts_28d/20210216181403_g_project_management_issue_marked_as_duplicate_monthly.yml
@@ -10,6 +10,10 @@ value_type: number
status: data_available
time_frame: 28d
data_source: redis_hll
+instrumentation_class: RedisHLLMetric
+options:
+ events:
+ - g_project_management_issue_marked_as_duplicate
distribution:
- ce
- ee
diff --git a/config/metrics/counts_28d/20210216181407_g_project_management_issue_locked_monthly.yml b/config/metrics/counts_28d/20210216181407_g_project_management_issue_locked_monthly.yml
index bcf6139f9f0..4f5f6eaed79 100644
--- a/config/metrics/counts_28d/20210216181407_g_project_management_issue_locked_monthly.yml
+++ b/config/metrics/counts_28d/20210216181407_g_project_management_issue_locked_monthly.yml
@@ -10,6 +10,10 @@ value_type: number
status: data_available
time_frame: 28d
data_source: redis_hll
+instrumentation_class: RedisHLLMetric
+options:
+ events:
+ - g_project_management_issue_locked
distribution:
- ce
- ee
diff --git a/config/metrics/counts_28d/20210216181411_g_project_management_issue_unlocked_monthly.yml b/config/metrics/counts_28d/20210216181411_g_project_management_issue_unlocked_monthly.yml
index c6c415c7a06..bce5bce76c2 100644
--- a/config/metrics/counts_28d/20210216181411_g_project_management_issue_unlocked_monthly.yml
+++ b/config/metrics/counts_28d/20210216181411_g_project_management_issue_unlocked_monthly.yml
@@ -10,6 +10,10 @@ value_type: number
status: data_available
time_frame: 28d
data_source: redis_hll
+instrumentation_class: RedisHLLMetric
+options:
+ events:
+ - g_project_management_issue_unlocked
distribution:
- ce
- ee
diff --git a/config/metrics/counts_28d/20210216181424_g_project_management_issue_designs_added_monthly.yml b/config/metrics/counts_28d/20210216181424_g_project_management_issue_designs_added_monthly.yml
index a2f5aba207c..04c1e19947a 100644
--- a/config/metrics/counts_28d/20210216181424_g_project_management_issue_designs_added_monthly.yml
+++ b/config/metrics/counts_28d/20210216181424_g_project_management_issue_designs_added_monthly.yml
@@ -10,6 +10,10 @@ value_type: number
status: data_available
time_frame: 28d
data_source: redis_hll
+instrumentation_class: RedisHLLMetric
+options:
+ events:
+ - g_project_management_issue_designs_added
distribution:
- ce
- ee
diff --git a/config/metrics/counts_28d/20210216181427_g_project_management_issue_designs_modified_monthly.yml b/config/metrics/counts_28d/20210216181427_g_project_management_issue_designs_modified_monthly.yml
index 68fd822154d..dbf9c5f378a 100644
--- a/config/metrics/counts_28d/20210216181427_g_project_management_issue_designs_modified_monthly.yml
+++ b/config/metrics/counts_28d/20210216181427_g_project_management_issue_designs_modified_monthly.yml
@@ -10,6 +10,10 @@ value_type: number
status: data_available
time_frame: 28d
data_source: redis_hll
+instrumentation_class: RedisHLLMetric
+options:
+ events:
+ - g_project_management_issue_designs_modified
distribution:
- ce
- ee
diff --git a/config/metrics/counts_28d/20210216181431_g_project_management_issue_designs_removed_monthly.yml b/config/metrics/counts_28d/20210216181431_g_project_management_issue_designs_removed_monthly.yml
index c33d75e7cea..dfb14377c91 100644
--- a/config/metrics/counts_28d/20210216181431_g_project_management_issue_designs_removed_monthly.yml
+++ b/config/metrics/counts_28d/20210216181431_g_project_management_issue_designs_removed_monthly.yml
@@ -10,6 +10,10 @@ value_type: number
status: data_available
time_frame: 28d
data_source: redis_hll
+instrumentation_class: RedisHLLMetric
+options:
+ events:
+ - g_project_management_issue_designs_removed
distribution:
- ce
- ee
diff --git a/config/metrics/counts_28d/20210216181435_g_project_management_issue_due_date_changed_monthly.yml b/config/metrics/counts_28d/20210216181435_g_project_management_issue_due_date_changed_monthly.yml
index 3f817290468..b77b891429f 100644
--- a/config/metrics/counts_28d/20210216181435_g_project_management_issue_due_date_changed_monthly.yml
+++ b/config/metrics/counts_28d/20210216181435_g_project_management_issue_due_date_changed_monthly.yml
@@ -10,6 +10,10 @@ value_type: number
status: data_available
time_frame: 28d
data_source: redis_hll
+instrumentation_class: RedisHLLMetric
+options:
+ events:
+ - g_project_management_issue_due_date_changed
distribution:
- ce
- ee
diff --git a/config/metrics/counts_28d/20210216181438_g_project_management_issue_time_estimate_changed_monthly.yml b/config/metrics/counts_28d/20210216181438_g_project_management_issue_time_estimate_changed_monthly.yml
index 5f84f8b925a..8b24e5eaf03 100644
--- a/config/metrics/counts_28d/20210216181438_g_project_management_issue_time_estimate_changed_monthly.yml
+++ b/config/metrics/counts_28d/20210216181438_g_project_management_issue_time_estimate_changed_monthly.yml
@@ -10,6 +10,10 @@ value_type: number
status: data_available
time_frame: 28d
data_source: redis_hll
+instrumentation_class: RedisHLLMetric
+options:
+ events:
+ - g_project_management_issue_time_estimate_changed
distribution:
- ce
- ee
diff --git a/config/metrics/counts_28d/20210216181442_g_project_management_issue_time_spent_changed_monthly.yml b/config/metrics/counts_28d/20210216181442_g_project_management_issue_time_spent_changed_monthly.yml
index 3933f65c1e6..3e7568c9e00 100644
--- a/config/metrics/counts_28d/20210216181442_g_project_management_issue_time_spent_changed_monthly.yml
+++ b/config/metrics/counts_28d/20210216181442_g_project_management_issue_time_spent_changed_monthly.yml
@@ -10,6 +10,10 @@ value_type: number
status: data_available
time_frame: 28d
data_source: redis_hll
+instrumentation_class: RedisHLLMetric
+options:
+ events:
+ - g_project_management_issue_time_spent_changed
distribution:
- ce
- ee
diff --git a/config/metrics/counts_28d/20210216181446_g_project_management_issue_comment_added_monthly.yml b/config/metrics/counts_28d/20210216181446_g_project_management_issue_comment_added_monthly.yml
index 3bea2ecf08e..6382fd73edd 100644
--- a/config/metrics/counts_28d/20210216181446_g_project_management_issue_comment_added_monthly.yml
+++ b/config/metrics/counts_28d/20210216181446_g_project_management_issue_comment_added_monthly.yml
@@ -10,6 +10,10 @@ value_type: number
status: data_available
time_frame: 28d
data_source: redis_hll
+instrumentation_class: RedisHLLMetric
+options:
+ events:
+ - g_project_management_issue_comment_added
distribution:
- ce
- ee
diff --git a/config/metrics/counts_28d/20210216181450_g_project_management_issue_comment_edited_monthly.yml b/config/metrics/counts_28d/20210216181450_g_project_management_issue_comment_edited_monthly.yml
index 38f0f295dcc..d038ef21b7c 100644
--- a/config/metrics/counts_28d/20210216181450_g_project_management_issue_comment_edited_monthly.yml
+++ b/config/metrics/counts_28d/20210216181450_g_project_management_issue_comment_edited_monthly.yml
@@ -10,6 +10,10 @@ value_type: number
status: data_available
time_frame: 28d
data_source: redis_hll
+instrumentation_class: RedisHLLMetric
+options:
+ events:
+ - g_project_management_issue_comment_edited
distribution:
- ce
- ee
diff --git a/config/metrics/counts_28d/20210216181453_g_project_management_issue_comment_removed_monthly.yml b/config/metrics/counts_28d/20210216181453_g_project_management_issue_comment_removed_monthly.yml
index bc10624fd20..7d6e327a18d 100644
--- a/config/metrics/counts_28d/20210216181453_g_project_management_issue_comment_removed_monthly.yml
+++ b/config/metrics/counts_28d/20210216181453_g_project_management_issue_comment_removed_monthly.yml
@@ -10,6 +10,10 @@ value_type: number
status: data_available
time_frame: 28d
data_source: redis_hll
+instrumentation_class: RedisHLLMetric
+options:
+ events:
+ - g_project_management_issue_comment_removed
distribution:
- ce
- ee
diff --git a/config/metrics/counts_28d/20210216181501_g_project_management_issue_cloned_monthly.yml b/config/metrics/counts_28d/20210216181501_g_project_management_issue_cloned_monthly.yml
index 5c94aafe2b5..fd40cb87181 100644
--- a/config/metrics/counts_28d/20210216181501_g_project_management_issue_cloned_monthly.yml
+++ b/config/metrics/counts_28d/20210216181501_g_project_management_issue_cloned_monthly.yml
@@ -10,6 +10,10 @@ value_type: number
status: data_available
time_frame: 28d
data_source: redis_hll
+instrumentation_class: RedisHLLMetric
+options:
+ events:
+ - g_project_management_issue_cloned
distribution:
- ce
- ee
diff --git a/config/metrics/counts_28d/20210216181504_issues_edit_total_unique_counts_monthly.yml b/config/metrics/counts_28d/20210216181504_issues_edit_total_unique_counts_monthly.yml
index 6ac1d0acb72..213d742bbf2 100644
--- a/config/metrics/counts_28d/20210216181504_issues_edit_total_unique_counts_monthly.yml
+++ b/config/metrics/counts_28d/20210216181504_issues_edit_total_unique_counts_monthly.yml
@@ -10,6 +10,42 @@ value_type: number
status: data_available
time_frame: 28d
data_source: redis_hll
+instrumentation_class: RedisHLLMetric
+options:
+ events:
+ - g_project_management_issue_title_changed
+ - g_project_management_issue_description_changed
+ - g_project_management_issue_assignee_changed
+ - g_project_management_issue_made_confidential
+ - g_project_management_issue_made_visible
+ - g_project_management_issue_created
+ - g_project_management_issue_closed
+ - g_project_management_issue_reopened
+ - g_project_management_issue_label_changed
+ - g_project_management_issue_milestone_changed
+ - g_project_management_issue_iteration_changed
+ - g_project_management_issue_weight_changed
+ - g_project_management_issue_cross_referenced
+ - g_project_management_issue_moved
+ - g_project_management_issue_related
+ - g_project_management_issue_unrelated
+ - g_project_management_issue_marked_as_duplicate
+ - g_project_management_issue_locked
+ - g_project_management_issue_unlocked
+ - g_project_management_issue_added_to_epic
+ - g_project_management_issue_removed_from_epic
+ - g_project_management_issue_changed_epic
+ - g_project_management_issue_designs_added
+ - g_project_management_issue_designs_modified
+ - g_project_management_issue_designs_removed
+ - g_project_management_issue_due_date_changed
+ - g_project_management_issue_time_estimate_changed
+ - g_project_management_issue_time_spent_changed
+ - g_project_management_issue_comment_added
+ - g_project_management_issue_comment_edited
+ - g_project_management_issue_comment_removed
+ - g_project_management_issue_health_status_changed
+ - g_project_management_issue_cloned
distribution:
- ce
- ee
diff --git a/config/metrics/counts_7d/20210201124931_g_project_management_issue_title_changed_weekly.yml b/config/metrics/counts_7d/20210201124931_g_project_management_issue_title_changed_weekly.yml
index f671827b165..2f53170bd15 100644
--- a/config/metrics/counts_7d/20210201124931_g_project_management_issue_title_changed_weekly.yml
+++ b/config/metrics/counts_7d/20210201124931_g_project_management_issue_title_changed_weekly.yml
@@ -11,6 +11,10 @@ milestone: "13.6"
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/issues/229918
time_frame: 7d
data_source: redis_hll
+instrumentation_class: RedisHLLMetric
+options:
+ events:
+ - g_project_management_issue_title_changed
distribution:
- ee
- ce
diff --git a/config/metrics/counts_7d/20210216181306_g_project_management_issue_description_changed_weekly.yml b/config/metrics/counts_7d/20210216181306_g_project_management_issue_description_changed_weekly.yml
index 79407c70dd5..235410930cd 100644
--- a/config/metrics/counts_7d/20210216181306_g_project_management_issue_description_changed_weekly.yml
+++ b/config/metrics/counts_7d/20210216181306_g_project_management_issue_description_changed_weekly.yml
@@ -10,6 +10,10 @@ value_type: number
status: data_available
time_frame: 7d
data_source: redis_hll
+instrumentation_class: RedisHLLMetric
+options:
+ events:
+ - g_project_management_issue_description_changed
distribution:
- ce
- ee
diff --git a/config/metrics/counts_7d/20210216181310_g_project_management_issue_assignee_changed_weekly.yml b/config/metrics/counts_7d/20210216181310_g_project_management_issue_assignee_changed_weekly.yml
index 4281d78ae7d..1d9c7ba07c1 100644
--- a/config/metrics/counts_7d/20210216181310_g_project_management_issue_assignee_changed_weekly.yml
+++ b/config/metrics/counts_7d/20210216181310_g_project_management_issue_assignee_changed_weekly.yml
@@ -10,6 +10,10 @@ value_type: number
status: data_available
time_frame: 7d
data_source: redis_hll
+instrumentation_class: RedisHLLMetric
+options:
+ events:
+ - g_project_management_issue_assignee_changed
distribution:
- ce
- ee
diff --git a/config/metrics/counts_7d/20210216181313_g_project_management_issue_made_confidential_weekly.yml b/config/metrics/counts_7d/20210216181313_g_project_management_issue_made_confidential_weekly.yml
index f3a6812cf6d..4ff7397f5e6 100644
--- a/config/metrics/counts_7d/20210216181313_g_project_management_issue_made_confidential_weekly.yml
+++ b/config/metrics/counts_7d/20210216181313_g_project_management_issue_made_confidential_weekly.yml
@@ -10,6 +10,10 @@ value_type: number
status: data_available
time_frame: 7d
data_source: redis_hll
+instrumentation_class: RedisHLLMetric
+options:
+ events:
+ - g_project_management_issue_made_confidential
distribution:
- ce
- ee
diff --git a/config/metrics/counts_7d/20210216181317_g_project_management_issue_made_visible_weekly.yml b/config/metrics/counts_7d/20210216181317_g_project_management_issue_made_visible_weekly.yml
index ad7fdda5984..d3f31f1f493 100644
--- a/config/metrics/counts_7d/20210216181317_g_project_management_issue_made_visible_weekly.yml
+++ b/config/metrics/counts_7d/20210216181317_g_project_management_issue_made_visible_weekly.yml
@@ -10,6 +10,10 @@ value_type: number
status: data_available
time_frame: 7d
data_source: redis_hll
+instrumentation_class: RedisHLLMetric
+options:
+ events:
+ - g_project_management_issue_made_visible
distribution:
- ce
- ee
diff --git a/config/metrics/counts_7d/20210216181321_g_project_management_issue_created_weekly.yml b/config/metrics/counts_7d/20210216181321_g_project_management_issue_created_weekly.yml
index 8d1bed247b9..0cebbe8bd7d 100644
--- a/config/metrics/counts_7d/20210216181321_g_project_management_issue_created_weekly.yml
+++ b/config/metrics/counts_7d/20210216181321_g_project_management_issue_created_weekly.yml
@@ -10,6 +10,10 @@ value_type: number
status: data_available
time_frame: 7d
data_source: redis_hll
+instrumentation_class: RedisHLLMetric
+options:
+ events:
+ - g_project_management_issue_created
distribution:
- ce
- ee
diff --git a/config/metrics/counts_7d/20210216181324_g_project_management_issue_closed_weekly.yml b/config/metrics/counts_7d/20210216181324_g_project_management_issue_closed_weekly.yml
index 34a0e306822..525e80c6d43 100644
--- a/config/metrics/counts_7d/20210216181324_g_project_management_issue_closed_weekly.yml
+++ b/config/metrics/counts_7d/20210216181324_g_project_management_issue_closed_weekly.yml
@@ -10,6 +10,10 @@ value_type: number
status: data_available
time_frame: 7d
data_source: redis_hll
+instrumentation_class: RedisHLLMetric
+options:
+ events:
+ - g_project_management_issue_closed
distribution:
- ce
- ee
diff --git a/config/metrics/counts_7d/20210216181328_g_project_management_issue_reopened_weekly.yml b/config/metrics/counts_7d/20210216181328_g_project_management_issue_reopened_weekly.yml
index 37df169972c..28ed3b7ecbb 100644
--- a/config/metrics/counts_7d/20210216181328_g_project_management_issue_reopened_weekly.yml
+++ b/config/metrics/counts_7d/20210216181328_g_project_management_issue_reopened_weekly.yml
@@ -10,6 +10,10 @@ value_type: number
status: data_available
time_frame: 7d
data_source: redis_hll
+instrumentation_class: RedisHLLMetric
+options:
+ events:
+ - g_project_management_issue_reopened
distribution:
- ce
- ee
diff --git a/config/metrics/counts_7d/20210216181332_g_project_management_issue_label_changed_weekly.yml b/config/metrics/counts_7d/20210216181332_g_project_management_issue_label_changed_weekly.yml
index 437d115fadd..45975bdd24c 100644
--- a/config/metrics/counts_7d/20210216181332_g_project_management_issue_label_changed_weekly.yml
+++ b/config/metrics/counts_7d/20210216181332_g_project_management_issue_label_changed_weekly.yml
@@ -10,6 +10,10 @@ value_type: number
status: data_available
time_frame: 7d
data_source: redis_hll
+instrumentation_class: RedisHLLMetric
+options:
+ events:
+ - g_project_management_issue_label_changed
distribution:
- ce
- ee
diff --git a/config/metrics/counts_7d/20210216181336_g_project_management_issue_milestone_changed_weekly.yml b/config/metrics/counts_7d/20210216181336_g_project_management_issue_milestone_changed_weekly.yml
index b51f8afc673..7a36d179dd2 100644
--- a/config/metrics/counts_7d/20210216181336_g_project_management_issue_milestone_changed_weekly.yml
+++ b/config/metrics/counts_7d/20210216181336_g_project_management_issue_milestone_changed_weekly.yml
@@ -10,6 +10,10 @@ value_type: number
status: data_available
time_frame: 7d
data_source: redis_hll
+instrumentation_class: RedisHLLMetric
+options:
+ events:
+ - g_project_management_issue_milestone_changed
distribution:
- ce
- ee
diff --git a/config/metrics/counts_7d/20210216181347_g_project_management_issue_cross_referenced_weekly.yml b/config/metrics/counts_7d/20210216181347_g_project_management_issue_cross_referenced_weekly.yml
index 3bfb7aae868..56d7a62b08d 100644
--- a/config/metrics/counts_7d/20210216181347_g_project_management_issue_cross_referenced_weekly.yml
+++ b/config/metrics/counts_7d/20210216181347_g_project_management_issue_cross_referenced_weekly.yml
@@ -10,6 +10,10 @@ value_type: number
status: data_available
time_frame: 28d
data_source: redis_hll
+instrumentation_class: RedisHLLMetric
+options:
+ events:
+ - g_project_management_issue_cross_referenced
distribution:
- ce
- ee
diff --git a/config/metrics/counts_7d/20210216181350_g_project_management_issue_moved_weekly.yml b/config/metrics/counts_7d/20210216181350_g_project_management_issue_moved_weekly.yml
index e42797908c4..7496c57b838 100644
--- a/config/metrics/counts_7d/20210216181350_g_project_management_issue_moved_weekly.yml
+++ b/config/metrics/counts_7d/20210216181350_g_project_management_issue_moved_weekly.yml
@@ -10,6 +10,10 @@ value_type: number
status: data_available
time_frame: 7d
data_source: redis_hll
+instrumentation_class: RedisHLLMetric
+options:
+ events:
+ - g_project_management_issue_moved
distribution:
- ce
- ee
diff --git a/config/metrics/counts_7d/20210216181354_g_project_management_issue_related_weekly.yml b/config/metrics/counts_7d/20210216181354_g_project_management_issue_related_weekly.yml
index d98f25c1b20..5c9279469e3 100644
--- a/config/metrics/counts_7d/20210216181354_g_project_management_issue_related_weekly.yml
+++ b/config/metrics/counts_7d/20210216181354_g_project_management_issue_related_weekly.yml
@@ -10,6 +10,10 @@ value_type: number
status: data_available
time_frame: 7d
data_source: redis_hll
+instrumentation_class: RedisHLLMetric
+options:
+ events:
+ - g_project_management_issue_related
distribution:
- ce
- ee
diff --git a/config/metrics/counts_7d/20210216181358_g_project_management_issue_unrelated_weekly.yml b/config/metrics/counts_7d/20210216181358_g_project_management_issue_unrelated_weekly.yml
index c88a0eabefa..16ab218e5f5 100644
--- a/config/metrics/counts_7d/20210216181358_g_project_management_issue_unrelated_weekly.yml
+++ b/config/metrics/counts_7d/20210216181358_g_project_management_issue_unrelated_weekly.yml
@@ -10,6 +10,10 @@ value_type: number
status: data_available
time_frame: 7d
data_source: redis_hll
+instrumentation_class: RedisHLLMetric
+options:
+ events:
+ - g_project_management_issue_unrelated
distribution:
- ce
- ee
diff --git a/config/metrics/counts_7d/20210216181401_g_project_management_issue_marked_as_duplicate_weekly.yml b/config/metrics/counts_7d/20210216181401_g_project_management_issue_marked_as_duplicate_weekly.yml
index a633eadcea2..32133c3a4b3 100644
--- a/config/metrics/counts_7d/20210216181401_g_project_management_issue_marked_as_duplicate_weekly.yml
+++ b/config/metrics/counts_7d/20210216181401_g_project_management_issue_marked_as_duplicate_weekly.yml
@@ -10,6 +10,10 @@ value_type: number
status: data_available
time_frame: 7d
data_source: redis_hll
+instrumentation_class: RedisHLLMetric
+options:
+ events:
+ - g_project_management_issue_marked_as_duplicate
distribution:
- ce
- ee
diff --git a/config/metrics/counts_7d/20210216181405_g_project_management_issue_locked_weekly.yml b/config/metrics/counts_7d/20210216181405_g_project_management_issue_locked_weekly.yml
index a1423d961c8..9556cc2f2db 100644
--- a/config/metrics/counts_7d/20210216181405_g_project_management_issue_locked_weekly.yml
+++ b/config/metrics/counts_7d/20210216181405_g_project_management_issue_locked_weekly.yml
@@ -10,6 +10,10 @@ value_type: number
status: data_available
time_frame: 7d
data_source: redis_hll
+instrumentation_class: RedisHLLMetric
+options:
+ events:
+ - g_project_management_issue_locked
distribution:
- ce
- ee
diff --git a/config/metrics/counts_7d/20210216181409_g_project_management_issue_unlocked_weekly.yml b/config/metrics/counts_7d/20210216181409_g_project_management_issue_unlocked_weekly.yml
index cdc010c89d3..5397b1c1e83 100644
--- a/config/metrics/counts_7d/20210216181409_g_project_management_issue_unlocked_weekly.yml
+++ b/config/metrics/counts_7d/20210216181409_g_project_management_issue_unlocked_weekly.yml
@@ -10,6 +10,10 @@ value_type: number
status: data_available
time_frame: 7d
data_source: redis_hll
+instrumentation_class: RedisHLLMetric
+options:
+ events:
+ - g_project_management_issue_unlocked
distribution:
- ce
- ee
diff --git a/config/metrics/counts_7d/20210216181422_g_project_management_issue_designs_added_weekly.yml b/config/metrics/counts_7d/20210216181422_g_project_management_issue_designs_added_weekly.yml
index 6128830827f..cd53d00cdf0 100644
--- a/config/metrics/counts_7d/20210216181422_g_project_management_issue_designs_added_weekly.yml
+++ b/config/metrics/counts_7d/20210216181422_g_project_management_issue_designs_added_weekly.yml
@@ -10,6 +10,10 @@ value_type: number
status: data_available
time_frame: 7d
data_source: redis_hll
+instrumentation_class: RedisHLLMetric
+options:
+ events:
+ - g_project_management_issue_designs_added
distribution:
- ce
- ee
diff --git a/config/metrics/counts_7d/20210216181425_g_project_management_issue_designs_modified_weekly.yml b/config/metrics/counts_7d/20210216181425_g_project_management_issue_designs_modified_weekly.yml
index 06a0481802c..afae03b98ab 100644
--- a/config/metrics/counts_7d/20210216181425_g_project_management_issue_designs_modified_weekly.yml
+++ b/config/metrics/counts_7d/20210216181425_g_project_management_issue_designs_modified_weekly.yml
@@ -10,6 +10,10 @@ value_type: number
status: data_available
time_frame: 7d
data_source: redis_hll
+instrumentation_class: RedisHLLMetric
+options:
+ events:
+ - g_project_management_issue_designs_modified
distribution:
- ce
- ee
diff --git a/config/metrics/counts_7d/20210216181429_g_project_management_issue_designs_removed_weekly.yml b/config/metrics/counts_7d/20210216181429_g_project_management_issue_designs_removed_weekly.yml
index f6c0e1fac84..c70f7419852 100644
--- a/config/metrics/counts_7d/20210216181429_g_project_management_issue_designs_removed_weekly.yml
+++ b/config/metrics/counts_7d/20210216181429_g_project_management_issue_designs_removed_weekly.yml
@@ -10,6 +10,10 @@ value_type: number
status: data_available
time_frame: 7d
data_source: redis_hll
+instrumentation_class: RedisHLLMetric
+options:
+ events:
+ - g_project_management_issue_designs_removed
distribution:
- ce
- ee
diff --git a/config/metrics/counts_7d/20210216181433_g_project_management_issue_due_date_changed_weekly.yml b/config/metrics/counts_7d/20210216181433_g_project_management_issue_due_date_changed_weekly.yml
index 1405f7966cc..972840daecd 100644
--- a/config/metrics/counts_7d/20210216181433_g_project_management_issue_due_date_changed_weekly.yml
+++ b/config/metrics/counts_7d/20210216181433_g_project_management_issue_due_date_changed_weekly.yml
@@ -10,6 +10,10 @@ value_type: number
status: data_available
time_frame: 7d
data_source: redis_hll
+instrumentation_class: RedisHLLMetric
+options:
+ events:
+ - g_project_management_issue_due_date_changed
distribution:
- ce
- ee
diff --git a/config/metrics/counts_7d/20210216181437_g_project_management_issue_time_estimate_changed_weekly.yml b/config/metrics/counts_7d/20210216181437_g_project_management_issue_time_estimate_changed_weekly.yml
index 88617905463..94a3c6d7000 100644
--- a/config/metrics/counts_7d/20210216181437_g_project_management_issue_time_estimate_changed_weekly.yml
+++ b/config/metrics/counts_7d/20210216181437_g_project_management_issue_time_estimate_changed_weekly.yml
@@ -10,6 +10,10 @@ value_type: number
status: data_available
time_frame: 7d
data_source: redis_hll
+instrumentation_class: RedisHLLMetric
+options:
+ events:
+ - g_project_management_issue_time_estimate_changed
distribution:
- ce
- ee
diff --git a/config/metrics/counts_7d/20210216181440_g_project_management_issue_time_spent_changed_weekly.yml b/config/metrics/counts_7d/20210216181440_g_project_management_issue_time_spent_changed_weekly.yml
index ef16ec406d9..693d5f243fb 100644
--- a/config/metrics/counts_7d/20210216181440_g_project_management_issue_time_spent_changed_weekly.yml
+++ b/config/metrics/counts_7d/20210216181440_g_project_management_issue_time_spent_changed_weekly.yml
@@ -10,6 +10,10 @@ value_type: number
status: data_available
time_frame: 7d
data_source: redis_hll
+instrumentation_class: RedisHLLMetric
+options:
+ events:
+ - g_project_management_issue_time_spent_changed
distribution:
- ce
- ee
diff --git a/config/metrics/counts_7d/20210216181444_g_project_management_issue_comment_added_weekly.yml b/config/metrics/counts_7d/20210216181444_g_project_management_issue_comment_added_weekly.yml
index 3c89bb79fdf..fca44db1d25 100644
--- a/config/metrics/counts_7d/20210216181444_g_project_management_issue_comment_added_weekly.yml
+++ b/config/metrics/counts_7d/20210216181444_g_project_management_issue_comment_added_weekly.yml
@@ -10,6 +10,10 @@ value_type: number
status: data_available
time_frame: 7d
data_source: redis_hll
+instrumentation_class: RedisHLLMetric
+options:
+ events:
+ - g_project_management_issue_comment_added
distribution:
- ce
- ee
diff --git a/config/metrics/counts_7d/20210216181448_g_project_management_issue_comment_edited_weekly.yml b/config/metrics/counts_7d/20210216181448_g_project_management_issue_comment_edited_weekly.yml
index ad7f4adb5ea..7168f88c08b 100644
--- a/config/metrics/counts_7d/20210216181448_g_project_management_issue_comment_edited_weekly.yml
+++ b/config/metrics/counts_7d/20210216181448_g_project_management_issue_comment_edited_weekly.yml
@@ -10,6 +10,10 @@ value_type: number
status: data_available
time_frame: 7d
data_source: redis_hll
+instrumentation_class: RedisHLLMetric
+options:
+ events:
+ - g_project_management_issue_comment_edited
distribution:
- ce
- ee
diff --git a/config/metrics/counts_7d/20210216181451_g_project_management_issue_comment_removed_weekly.yml b/config/metrics/counts_7d/20210216181451_g_project_management_issue_comment_removed_weekly.yml
index edc1b2efc59..8a0f9e65833 100644
--- a/config/metrics/counts_7d/20210216181451_g_project_management_issue_comment_removed_weekly.yml
+++ b/config/metrics/counts_7d/20210216181451_g_project_management_issue_comment_removed_weekly.yml
@@ -10,6 +10,10 @@ value_type: number
status: data_available
time_frame: 7d
data_source: redis_hll
+instrumentation_class: RedisHLLMetric
+options:
+ events:
+ - g_project_management_issue_comment_removed
distribution:
- ce
- ee
diff --git a/config/metrics/counts_7d/20210216181459_g_project_management_issue_cloned_weekly.yml b/config/metrics/counts_7d/20210216181459_g_project_management_issue_cloned_weekly.yml
index 85b12d6af6b..f6f7b4277a5 100644
--- a/config/metrics/counts_7d/20210216181459_g_project_management_issue_cloned_weekly.yml
+++ b/config/metrics/counts_7d/20210216181459_g_project_management_issue_cloned_weekly.yml
@@ -10,6 +10,10 @@ value_type: number
status: data_available
time_frame: 7d
data_source: redis_hll
+instrumentation_class: RedisHLLMetric
+options:
+ events:
+ - g_project_management_issue_cloned
distribution:
- ce
- ee
diff --git a/config/metrics/counts_7d/20210216181503_issues_edit_total_unique_counts_weekly.yml b/config/metrics/counts_7d/20210216181503_issues_edit_total_unique_counts_weekly.yml
index 2dcb9cb42c8..53923a6147c 100644
--- a/config/metrics/counts_7d/20210216181503_issues_edit_total_unique_counts_weekly.yml
+++ b/config/metrics/counts_7d/20210216181503_issues_edit_total_unique_counts_weekly.yml
@@ -10,6 +10,42 @@ value_type: number
status: data_available
time_frame: 7d
data_source: redis_hll
+instrumentation_class: RedisHLLMetric
+options:
+ events:
+ - g_project_management_issue_title_changed
+ - g_project_management_issue_description_changed
+ - g_project_management_issue_assignee_changed
+ - g_project_management_issue_made_confidential
+ - g_project_management_issue_made_visible
+ - g_project_management_issue_created
+ - g_project_management_issue_closed
+ - g_project_management_issue_reopened
+ - g_project_management_issue_label_changed
+ - g_project_management_issue_milestone_changed
+ - g_project_management_issue_iteration_changed
+ - g_project_management_issue_weight_changed
+ - g_project_management_issue_cross_referenced
+ - g_project_management_issue_moved
+ - g_project_management_issue_related
+ - g_project_management_issue_unrelated
+ - g_project_management_issue_marked_as_duplicate
+ - g_project_management_issue_locked
+ - g_project_management_issue_unlocked
+ - g_project_management_issue_added_to_epic
+ - g_project_management_issue_removed_from_epic
+ - g_project_management_issue_changed_epic
+ - g_project_management_issue_designs_added
+ - g_project_management_issue_designs_modified
+ - g_project_management_issue_designs_removed
+ - g_project_management_issue_due_date_changed
+ - g_project_management_issue_time_estimate_changed
+ - g_project_management_issue_time_spent_changed
+ - g_project_management_issue_comment_added
+ - g_project_management_issue_comment_edited
+ - g_project_management_issue_comment_removed
+ - g_project_management_issue_health_status_changed
+ - g_project_management_issue_cloned
distribution:
- ce
- ee
diff --git a/config/routes.rb b/config/routes.rb
index a4404f9d3a8..9fdd2a70417 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -248,12 +248,6 @@ Rails.application.routes.draw do
get :environments, format: :json
end
- scope :applications do
- post '/:application', to: 'clusters/applications#create', as: :install_applications
- patch '/:application', to: 'clusters/applications#update', as: :update_applications
- delete '/:application', to: 'clusters/applications#destroy', as: :uninstall_applications
- end
-
get :metrics_dashboard
get :'/prometheus/api/v1/*proxy_path', to: 'clusters#prometheus_proxy', as: :prometheus_api
get :cluster_status, format: :json
diff --git a/db/post_migrate/20210701033622_finalize_ci_builds_needs_bigint_conversion.rb b/db/post_migrate/20210701033622_finalize_ci_builds_needs_bigint_conversion.rb
new file mode 100644
index 00000000000..baee9fb3848
--- /dev/null
+++ b/db/post_migrate/20210701033622_finalize_ci_builds_needs_bigint_conversion.rb
@@ -0,0 +1,69 @@
+# frozen_string_literal: true
+
+class FinalizeCiBuildsNeedsBigintConversion < ActiveRecord::Migration[6.1]
+ include Gitlab::Database::MigrationHelpers
+
+ disable_ddl_transaction!
+
+ TABLE_NAME = 'ci_build_needs'
+
+ def up
+ ensure_batched_background_migration_is_finished(
+ job_class_name: 'CopyColumnUsingBackgroundMigrationJob',
+ table_name: TABLE_NAME,
+ column_name: 'id',
+ job_arguments: [['build_id'], ['build_id_convert_to_bigint']]
+ )
+
+ swap
+ end
+
+ def down
+ swap
+ end
+
+ private
+
+ def swap
+ # This is to replace the existing "index_ci_build_needs_on_build_id_and_name" UNIQUE, btree (build_id, name)
+ add_concurrent_index TABLE_NAME, [:build_id_convert_to_bigint, :name], unique: true, name: 'index_ci_build_needs_on_build_id_convert_to_bigint_and_name'
+
+ # Add a foreign key on `build_id_convert_to_bigint` before we swap the columns and drop the old FK (fk_rails_3cf221d4ed)
+ add_concurrent_foreign_key TABLE_NAME, :ci_builds,
+ column: :build_id_convert_to_bigint, on_delete: :cascade,
+ name: 'fk_rails_3cf221d4ed_tmp', reverse_lock_order: true
+
+ with_lock_retries(raise_on_exhaustion: true) do
+ # We'll need ACCESS EXCLUSIVE lock on the related tables,
+ # lets make sure it can be acquired from the start
+ execute "LOCK TABLE ci_builds, #{TABLE_NAME} IN ACCESS EXCLUSIVE MODE"
+
+ # Swap column names
+ temp_name = 'build_id_tmp'
+ execute "ALTER TABLE #{quote_table_name(TABLE_NAME)} RENAME COLUMN #{quote_column_name(:build_id)} TO #{quote_column_name(temp_name)}"
+ execute "ALTER TABLE #{quote_table_name(TABLE_NAME)} RENAME COLUMN #{quote_column_name(:build_id_convert_to_bigint)} TO #{quote_column_name(:build_id)}"
+ execute "ALTER TABLE #{quote_table_name(TABLE_NAME)} RENAME COLUMN #{quote_column_name(temp_name)} TO #{quote_column_name(:build_id_convert_to_bigint)}"
+
+ # We need to update the trigger function in order to make PostgreSQL to
+ # regenerate the execution plan for it. This is to avoid type mismatch errors like
+ # "type of parameter 15 (bigint) does not match that when preparing the plan (integer)"
+ function_name = Gitlab::Database::UnidirectionalCopyTrigger.on_table(TABLE_NAME).name(:build_id, :build_id_convert_to_bigint)
+ execute "ALTER FUNCTION #{quote_table_name(function_name)} RESET ALL"
+
+ # Swap defaults
+ change_column_default TABLE_NAME, :build_id, nil
+ change_column_default TABLE_NAME, :build_id_convert_to_bigint, 0
+
+ # Rename the index on the `bigint` column to match the new column name
+ # (we already hold an exclusive lock, so no need to use DROP INDEX CONCURRENTLY here)
+ execute 'DROP INDEX index_ci_build_needs_on_build_id_and_name'
+ rename_index TABLE_NAME, 'index_ci_build_needs_on_build_id_convert_to_bigint_and_name', 'index_ci_build_needs_on_build_id_and_name'
+
+ # Drop original FK on the old int4 `build_id` (fk_rails_3cf221d4ed)
+ remove_foreign_key TABLE_NAME, name: 'fk_rails_3cf221d4ed'
+ # We swapped the columns but the FK for buil_id is still using the temporary name for the buil_id_convert_to_bigint column
+ # So we have to also swap the FK name now that we dropped the other one with the same
+ rename_constraint(TABLE_NAME, 'fk_rails_3cf221d4ed_tmp', 'fk_rails_3cf221d4ed')
+ end
+ end
+end
diff --git a/db/schema_migrations/20210701033622 b/db/schema_migrations/20210701033622
new file mode 100644
index 00000000000..40dcc68d424
--- /dev/null
+++ b/db/schema_migrations/20210701033622
@@ -0,0 +1 @@
+e38d73441ddd7f6238a66ee86009c445ad6056f3e6872e7a6c72abe051294d7e \ No newline at end of file
diff --git a/db/structure.sql b/db/structure.sql
index 373fc573419..ad92c14adec 100644
--- a/db/structure.sql
+++ b/db/structure.sql
@@ -10487,11 +10487,11 @@ ALTER SEQUENCE chat_teams_id_seq OWNED BY chat_teams.id;
CREATE TABLE ci_build_needs (
id integer NOT NULL,
- build_id integer NOT NULL,
+ build_id_convert_to_bigint integer DEFAULT 0 NOT NULL,
name text NOT NULL,
artifacts boolean DEFAULT true NOT NULL,
optional boolean DEFAULT false NOT NULL,
- build_id_convert_to_bigint bigint DEFAULT 0 NOT NULL
+ build_id bigint NOT NULL
);
CREATE SEQUENCE ci_build_needs_id_seq
diff --git a/lib/gitlab/i18n.rb b/lib/gitlab/i18n.rb
index 7ebbe9f1c14..07cf0442a7b 100644
--- a/lib/gitlab/i18n.rb
+++ b/lib/gitlab/i18n.rb
@@ -38,26 +38,26 @@ module Gitlab
# Currently monthly updated manually by ~group::import PM.
# https://gitlab.com/gitlab-org/gitlab/-/issues/18923
TRANSLATION_LEVELS = {
- 'bg' => 1,
- 'cs_CZ' => 1,
- 'de' => 17,
+ 'bg' => 0,
+ 'cs_CZ' => 0,
+ 'de' => 16,
'en' => 100,
- 'eo' => 1,
- 'es' => 38,
- 'fil_PH' => 1,
+ 'eo' => 0,
+ 'es' => 36,
+ 'fil_PH' => 0,
'fr' => 12,
- 'gl_ES' => 1,
+ 'gl_ES' => 0,
'id_ID' => 0,
'it' => 2,
- 'ja' => 42,
- 'ko' => 13,
- 'nl_NL' => 1,
+ 'ja' => 40,
+ 'ko' => 12,
+ 'nl_NL' => 0,
'pl_PL' => 5,
- 'pt_BR' => 21,
- 'ru' => 29,
+ 'pt_BR' => 30,
+ 'ru' => 28,
'tr_TR' => 16,
'uk' => 41,
- 'zh_CN' => 67,
+ 'zh_CN' => 68,
'zh_HK' => 2,
'zh_TW' => 3
}.freeze
diff --git a/spec/controllers/admin/clusters/applications_controller_spec.rb b/spec/controllers/admin/clusters/applications_controller_spec.rb
deleted file mode 100644
index d1ca64d6bd2..00000000000
--- a/spec/controllers/admin/clusters/applications_controller_spec.rb
+++ /dev/null
@@ -1,139 +0,0 @@
-# frozen_string_literal: true
-
-require 'spec_helper'
-
-RSpec.describe Admin::Clusters::ApplicationsController do
- include AccessMatchersForController
-
- def current_application
- Clusters::Cluster::APPLICATIONS[application]
- end
-
- shared_examples 'a secure endpoint' do
- it { expect { subject }.to be_allowed_for(:admin) }
- it { expect { subject }.to be_denied_for(:user) }
- it { expect { subject }.to be_denied_for(:external) }
- end
-
- let(:cluster) { create(:cluster, :instance, :provided_by_gcp) }
-
- describe 'POST create' do
- subject do
- post :create, params: params
- end
-
- let(:application) { 'ingress' }
- let(:params) { { application: application, id: cluster.id } }
-
- describe 'functionality' do
- let(:admin) { create(:admin) }
-
- before do
- sign_in(admin)
- end
-
- it 'schedule an application installation' do
- expect(ClusterInstallAppWorker).to receive(:perform_async).with(application, anything).once
-
- expect { subject }.to change { current_application.count }
- expect(response).to have_gitlab_http_status(:no_content)
- expect(cluster.application_ingress).to be_scheduled
- end
-
- context 'when cluster do not exists' do
- before do
- cluster.destroy!
- end
-
- it 'return 404' do
- expect { subject }.not_to change { current_application.count }
- expect(response).to have_gitlab_http_status(:not_found)
- end
- end
-
- context 'when application is unknown' do
- let(:application) { 'unkwnown-app' }
-
- it 'return 404' do
- is_expected.to have_gitlab_http_status(:not_found)
- end
- end
-
- context 'when application is already installing' do
- before do
- create(:clusters_applications_ingress, :installing, cluster: cluster)
- end
-
- it 'returns 400' do
- is_expected.to have_gitlab_http_status(:bad_request)
- end
- end
- end
-
- describe 'security' do
- before do
- allow(ClusterInstallAppWorker).to receive(:perform_async)
- end
-
- it_behaves_like 'a secure endpoint'
- end
- end
-
- describe 'PATCH update' do
- subject do
- patch :update, params: params
- end
-
- let!(:application) { create(:clusters_applications_cert_manager, :installed, cluster: cluster) }
- let(:application_name) { application.name }
- let(:params) { { application: application_name, id: cluster.id, email: "new-email@example.com" } }
-
- describe 'functionality' do
- let(:admin) { create(:admin) }
-
- before do
- sign_in(admin)
- end
-
- context "when cluster and app exists" do
- it "schedules an application update" do
- expect(ClusterPatchAppWorker).to receive(:perform_async).with(application.name, anything).once
-
- is_expected.to have_gitlab_http_status(:no_content)
-
- expect(cluster.application_cert_manager).to be_scheduled
- end
- end
-
- context 'when cluster do not exists' do
- before do
- cluster.destroy!
- end
-
- it { is_expected.to have_gitlab_http_status(:not_found) }
- end
-
- context 'when application is unknown' do
- let(:application_name) { 'unkwnown-app' }
-
- it { is_expected.to have_gitlab_http_status(:not_found) }
- end
-
- context 'when application is already scheduled' do
- before do
- application.make_scheduled!
- end
-
- it { is_expected.to have_gitlab_http_status(:bad_request) }
- end
- end
-
- describe 'security' do
- before do
- allow(ClusterPatchAppWorker).to receive(:perform_async)
- end
-
- it_behaves_like 'a secure endpoint'
- end
- end
-end
diff --git a/spec/controllers/groups/clusters/applications_controller_spec.rb b/spec/controllers/groups/clusters/applications_controller_spec.rb
deleted file mode 100644
index 5629e86c928..00000000000
--- a/spec/controllers/groups/clusters/applications_controller_spec.rb
+++ /dev/null
@@ -1,148 +0,0 @@
-# frozen_string_literal: true
-
-require 'spec_helper'
-
-RSpec.describe Groups::Clusters::ApplicationsController do
- include AccessMatchersForController
-
- def current_application
- Clusters::Cluster::APPLICATIONS[application]
- end
-
- shared_examples 'a secure endpoint' do
- it('is allowed for admin when admin mode is enabled', :enable_admin_mode) { expect { subject }.to be_allowed_for(:admin) }
- it('is denied for admin when admin mode is disabled') { expect { subject }.to be_denied_for(:admin) }
- it { expect { subject }.to be_allowed_for(:owner).of(group) }
- it { expect { subject }.to be_allowed_for(:maintainer).of(group) }
- it { expect { subject }.to be_denied_for(:developer).of(group) }
- it { expect { subject }.to be_denied_for(:reporter).of(group) }
- it { expect { subject }.to be_denied_for(:guest).of(group) }
- it { expect { subject }.to be_denied_for(:user) }
- it { expect { subject }.to be_denied_for(:external) }
- end
-
- let(:cluster) { create(:cluster, :group, :provided_by_gcp) }
- let(:group) { cluster.group }
-
- describe 'POST create' do
- subject do
- post :create, params: params.merge(group_id: group)
- end
-
- let(:application) { 'ingress' }
- let(:params) { { application: application, id: cluster.id } }
-
- describe 'functionality' do
- let(:user) { create(:user) }
-
- before do
- group.add_maintainer(user)
- sign_in(user)
- end
-
- it 'schedule an application installation' do
- expect(ClusterInstallAppWorker).to receive(:perform_async).with(application, anything).once
-
- expect { subject }.to change { current_application.count }
- expect(response).to have_gitlab_http_status(:no_content)
- expect(cluster.application_ingress).to be_scheduled
- end
-
- context 'when cluster do not exists' do
- before do
- cluster.destroy!
- end
-
- it 'return 404' do
- expect { subject }.not_to change { current_application.count }
- expect(response).to have_gitlab_http_status(:not_found)
- end
- end
-
- context 'when application is unknown' do
- let(:application) { 'unkwnown-app' }
-
- it 'return 404' do
- is_expected.to have_gitlab_http_status(:not_found)
- end
- end
-
- context 'when application is already installing' do
- before do
- create(:clusters_applications_ingress, :installing, cluster: cluster)
- end
-
- it 'returns 400' do
- is_expected.to have_gitlab_http_status(:bad_request)
- end
- end
- end
-
- describe 'security' do
- before do
- allow(ClusterInstallAppWorker).to receive(:perform_async)
- end
-
- it_behaves_like 'a secure endpoint'
- end
- end
-
- describe 'PATCH update' do
- subject do
- patch :update, params: params.merge(group_id: group)
- end
-
- let!(:application) { create(:clusters_applications_cert_manager, :installed, cluster: cluster) }
- let(:application_name) { application.name }
- let(:params) { { application: application_name, id: cluster.id, email: "new-email@example.com" } }
-
- describe 'functionality' do
- let(:user) { create(:user) }
-
- before do
- group.add_maintainer(user)
- sign_in(user)
- end
-
- context "when cluster and app exists" do
- it "schedules an application update" do
- expect(ClusterPatchAppWorker).to receive(:perform_async).with(application.name, anything).once
-
- is_expected.to have_gitlab_http_status(:no_content)
-
- expect(cluster.application_cert_manager).to be_scheduled
- end
- end
-
- context 'when cluster do not exists' do
- before do
- cluster.destroy!
- end
-
- it { is_expected.to have_gitlab_http_status(:not_found) }
- end
-
- context 'when application is unknown' do
- let(:application_name) { 'unkwnown-app' }
-
- it { is_expected.to have_gitlab_http_status(:not_found) }
- end
-
- context 'when application is already scheduled' do
- before do
- application.make_scheduled!
- end
-
- it { is_expected.to have_gitlab_http_status(:bad_request) }
- end
- end
-
- describe 'security' do
- before do
- allow(ClusterPatchAppWorker).to receive(:perform_async)
- end
-
- it_behaves_like 'a secure endpoint'
- end
- end
-end
diff --git a/spec/controllers/projects/clusters/applications_controller_spec.rb b/spec/controllers/projects/clusters/applications_controller_spec.rb
deleted file mode 100644
index cc6170252c1..00000000000
--- a/spec/controllers/projects/clusters/applications_controller_spec.rb
+++ /dev/null
@@ -1,215 +0,0 @@
-# frozen_string_literal: true
-
-require 'spec_helper'
-
-RSpec.describe Projects::Clusters::ApplicationsController do
- include AccessMatchersForController
-
- def current_application
- Clusters::Cluster::APPLICATIONS[application]
- end
-
- shared_examples 'a secure endpoint' do
- it 'is allowed for admin when admin mode enabled', :enable_admin_mode do
- expect { subject }.to be_allowed_for(:admin)
- end
- it 'is denied for admin when admin mode disabled' do
- expect { subject }.to be_denied_for(:admin)
- end
- it { expect { subject }.to be_allowed_for(:owner).of(project) }
- it { expect { subject }.to be_allowed_for(:maintainer).of(project) }
- it { expect { subject }.to be_denied_for(:developer).of(project) }
- it { expect { subject }.to be_denied_for(:reporter).of(project) }
- it { expect { subject }.to be_denied_for(:guest).of(project) }
- it { expect { subject }.to be_denied_for(:user) }
- it { expect { subject }.to be_denied_for(:external) }
- end
-
- describe 'POST create' do
- subject do
- post :create, params: params.merge(namespace_id: project.namespace, project_id: project)
- end
-
- let(:cluster) { create(:cluster, :project, :provided_by_gcp) }
- let(:project) { cluster.project }
- let(:application) { 'ingress' }
- let(:params) { { application: application, id: cluster.id } }
-
- describe 'functionality' do
- let(:user) { create(:user) }
-
- before do
- project.add_maintainer(user)
- sign_in(user)
- end
-
- it 'schedule an application installation' do
- expect(ClusterInstallAppWorker).to receive(:perform_async).with(application, anything).once
-
- expect { subject }.to change { current_application.count }
- expect(response).to have_gitlab_http_status(:no_content)
- expect(cluster.application_ingress).to be_scheduled
- end
-
- context 'when cluster do not exists' do
- before do
- cluster.destroy!
- end
-
- it 'return 404' do
- expect { subject }.not_to change { current_application.count }
- expect(response).to have_gitlab_http_status(:not_found)
- end
- end
-
- context 'when application is unknown' do
- let(:application) { 'unkwnown-app' }
-
- it 'return 404' do
- is_expected.to have_gitlab_http_status(:not_found)
- end
- end
-
- context 'when application is already installing' do
- before do
- create(:clusters_applications_ingress, :installing, cluster: cluster)
- end
-
- it 'returns 400' do
- is_expected.to have_gitlab_http_status(:bad_request)
- end
- end
- end
-
- describe 'security' do
- before do
- allow(ClusterInstallAppWorker).to receive(:perform_async)
- end
-
- it_behaves_like 'a secure endpoint'
- end
- end
-
- describe 'PATCH update' do
- subject do
- patch :update, params: params.merge(namespace_id: project.namespace, project_id: project)
- end
-
- let(:cluster) { create(:cluster, :project, :provided_by_gcp) }
- let(:project) { cluster.project }
- let!(:application) { create(:clusters_applications_knative, :installed, cluster: cluster) }
- let(:application_name) { application.name }
- let(:params) { { application: application_name, id: cluster.id, hostname: "new.example.com" } }
-
- describe 'functionality' do
- let(:user) { create(:user) }
-
- before do
- project.add_maintainer(user)
- sign_in(user)
- end
-
- context "when cluster and app exists" do
- it "schedules an application update" do
- expect(ClusterPatchAppWorker).to receive(:perform_async).with(application.name, anything).once
-
- is_expected.to have_gitlab_http_status(:no_content)
-
- expect(cluster.application_knative).to be_scheduled
- end
- end
-
- context 'when cluster do not exists' do
- before do
- cluster.destroy!
- end
-
- it { is_expected.to have_gitlab_http_status(:not_found) }
- end
-
- context 'when application is unknown' do
- let(:application_name) { 'unkwnown-app' }
-
- it { is_expected.to have_gitlab_http_status(:not_found) }
- end
-
- context 'when application is already scheduled' do
- before do
- application.make_scheduled!
- end
-
- it { is_expected.to have_gitlab_http_status(:bad_request) }
- end
- end
-
- describe 'security' do
- before do
- allow(ClusterPatchAppWorker).to receive(:perform_async)
- end
-
- it_behaves_like 'a secure endpoint'
- end
- end
-
- describe 'DELETE destroy' do
- subject do
- delete :destroy, params: params.merge(namespace_id: project.namespace, project_id: project)
- end
-
- let(:cluster) { create(:cluster, :project, :provided_by_gcp) }
- let(:project) { cluster.project }
- let!(:application) { create(:clusters_applications_prometheus, :installed, cluster: cluster) }
- let(:application_name) { application.name }
- let(:params) { { application: application_name, id: cluster.id } }
- let(:worker_class) { Clusters::Applications::UninstallWorker }
-
- describe 'functionality' do
- let(:user) { create(:user) }
-
- before do
- project.add_maintainer(user)
- sign_in(user)
- end
-
- context "when cluster and app exists" do
- it "schedules an application update" do
- expect(worker_class).to receive(:perform_async).with(application.name, application.id).once
-
- is_expected.to have_gitlab_http_status(:no_content)
-
- expect(cluster.application_prometheus).to be_scheduled
- end
- end
-
- context 'when cluster do not exists' do
- before do
- cluster.destroy!
- end
-
- it { is_expected.to have_gitlab_http_status(:not_found) }
- end
-
- context 'when application is unknown' do
- let(:application_name) { 'unkwnown-app' }
-
- it { is_expected.to have_gitlab_http_status(:not_found) }
- end
-
- context 'when application is already scheduled' do
- before do
- application.make_scheduled!
- end
-
- it { is_expected.to have_gitlab_http_status(:bad_request) }
- end
- end
-
- describe 'security' do
- before do
- allow(worker_class).to receive(:perform_async)
- end
-
- it_behaves_like 'a secure endpoint'
- end
- end
-end
diff --git a/spec/frontend/vue_shared/components/markdown/toolbar_button_spec.js b/spec/frontend/vue_shared/components/markdown/toolbar_button_spec.js
index 786dfabb990..19e4f2d8c92 100644
--- a/spec/frontend/vue_shared/components/markdown/toolbar_button_spec.js
+++ b/spec/frontend/vue_shared/components/markdown/toolbar_button_spec.js
@@ -1,3 +1,4 @@
+import { GlButton } from '@gitlab/ui';
import { shallowMount } from '@vue/test-utils';
import ToolbarButton from '~/vue_shared/components/markdown/toolbar_button.vue';
@@ -25,7 +26,7 @@ describe('toolbar_button', () => {
});
const getButtonShortcutsAttr = () => {
- return wrapper.find('button').attributes('data-md-shortcuts');
+ return wrapper.find(GlButton).attributes('data-md-shortcuts');
};
describe('keyboard shortcuts', () => {
diff --git a/spec/lib/gitlab/usage_data_metrics_spec.rb b/spec/lib/gitlab/usage_data_metrics_spec.rb
index 476a6e99cfd..5bc72845222 100644
--- a/spec/lib/gitlab/usage_data_metrics_spec.rb
+++ b/spec/lib/gitlab/usage_data_metrics_spec.rb
@@ -87,6 +87,39 @@ RSpec.describe Gitlab::UsageDataMetrics do
])
end
+ it 'includes issues_edit monthly and weekly keys' do
+ expect(subject[:redis_hll_counters][:issues_edit].keys).to include(
+ :g_project_management_issue_title_changed_monthly, :g_project_management_issue_title_changed_weekly,
+ :g_project_management_issue_description_changed_monthly, :g_project_management_issue_description_changed_weekly,
+ :g_project_management_issue_assignee_changed_monthly, :g_project_management_issue_assignee_changed_weekly,
+ :g_project_management_issue_made_confidential_monthly, :g_project_management_issue_made_confidential_weekly,
+ :g_project_management_issue_made_visible_monthly, :g_project_management_issue_made_visible_weekly,
+ :g_project_management_issue_created_monthly, :g_project_management_issue_created_weekly,
+ :g_project_management_issue_closed_monthly, :g_project_management_issue_closed_weekly,
+ :g_project_management_issue_reopened_monthly, :g_project_management_issue_reopened_weekly,
+ :g_project_management_issue_label_changed_monthly, :g_project_management_issue_label_changed_weekly,
+ :g_project_management_issue_milestone_changed_monthly, :g_project_management_issue_milestone_changed_weekly,
+ :g_project_management_issue_cross_referenced_monthly, :g_project_management_issue_cross_referenced_weekly,
+ :g_project_management_issue_moved_monthly, :g_project_management_issue_moved_weekly,
+ :g_project_management_issue_related_monthly, :g_project_management_issue_related_weekly,
+ :g_project_management_issue_unrelated_monthly, :g_project_management_issue_unrelated_weekly,
+ :g_project_management_issue_marked_as_duplicate_monthly, :g_project_management_issue_marked_as_duplicate_weekly,
+ :g_project_management_issue_locked_monthly, :g_project_management_issue_locked_weekly,
+ :g_project_management_issue_unlocked_monthly, :g_project_management_issue_unlocked_weekly,
+ :g_project_management_issue_designs_added_monthly, :g_project_management_issue_designs_added_weekly,
+ :g_project_management_issue_designs_modified_monthly, :g_project_management_issue_designs_modified_weekly,
+ :g_project_management_issue_designs_removed_monthly, :g_project_management_issue_designs_removed_weekly,
+ :g_project_management_issue_due_date_changed_monthly, :g_project_management_issue_due_date_changed_weekly,
+ :g_project_management_issue_time_estimate_changed_monthly, :g_project_management_issue_time_estimate_changed_weekly,
+ :g_project_management_issue_time_spent_changed_monthly, :g_project_management_issue_time_spent_changed_weekly,
+ :g_project_management_issue_comment_added_monthly, :g_project_management_issue_comment_added_weekly,
+ :g_project_management_issue_comment_edited_monthly, :g_project_management_issue_comment_edited_weekly,
+ :g_project_management_issue_comment_removed_monthly, :g_project_management_issue_comment_removed_weekly,
+ :g_project_management_issue_cloned_monthly, :g_project_management_issue_cloned_weekly,
+ :issues_edit_total_unique_counts_monthly, :issues_edit_total_unique_counts_weekly
+ )
+ end
+
it 'includes counts keys' do
expect(subject[:counts]).to include(:issues)
end
diff --git a/spec/presenters/group_clusterable_presenter_spec.rb b/spec/presenters/group_clusterable_presenter_spec.rb
index 27360201e81..84b97ba0bb7 100644
--- a/spec/presenters/group_clusterable_presenter_spec.rb
+++ b/spec/presenters/group_clusterable_presenter_spec.rb
@@ -67,22 +67,6 @@ RSpec.describe GroupClusterablePresenter do
it { is_expected.to eq(cluster_status_group_cluster_path(group, cluster)) }
end
- describe '#install_applications_cluster_path' do
- let(:application) { :helm }
-
- subject { presenter.install_applications_cluster_path(cluster, application) }
-
- it { is_expected.to eq(install_applications_group_cluster_path(group, cluster, application)) }
- end
-
- describe '#update_applications_cluster_path' do
- let(:application) { :helm }
-
- subject { presenter.update_applications_cluster_path(cluster, application) }
-
- it { is_expected.to eq(update_applications_group_cluster_path(group, cluster, application)) }
- end
-
describe '#clear_cluster_cache_path' do
subject { presenter.clear_cluster_cache_path(cluster) }
diff --git a/spec/presenters/project_clusterable_presenter_spec.rb b/spec/presenters/project_clusterable_presenter_spec.rb
index b518c63f0ca..9057b518647 100644
--- a/spec/presenters/project_clusterable_presenter_spec.rb
+++ b/spec/presenters/project_clusterable_presenter_spec.rb
@@ -67,22 +67,6 @@ RSpec.describe ProjectClusterablePresenter do
it { is_expected.to eq(cluster_status_project_cluster_path(project, cluster)) }
end
- describe '#install_applications_cluster_path' do
- let(:application) { :helm }
-
- subject { presenter.install_applications_cluster_path(cluster, application) }
-
- it { is_expected.to eq(install_applications_project_cluster_path(project, cluster, application)) }
- end
-
- describe '#update_applications_cluster_path' do
- let(:application) { :helm }
-
- subject { presenter.update_applications_cluster_path(cluster, application) }
-
- it { is_expected.to eq(update_applications_project_cluster_path(project, cluster, application)) }
- end
-
describe '#clear_cluster_cache_path' do
subject { presenter.clear_cluster_cache_path(cluster) }