diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2021-08-06 15:10:15 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2021-08-06 15:10:15 +0300 |
commit | 14b5bf2629cf6cd77fe9bb6108d4a6dc0963f6c1 (patch) | |
tree | 90544438a276b7cd3c9b24ab92f46927ef768185 | |
parent | ff490fb7dfd0f4fedbd45b9079fcfa13ade3144c (diff) |
Add latest changes from gitlab-org/gitlab@master
279 files changed, 1122 insertions, 858 deletions
diff --git a/GITALY_SERVER_VERSION b/GITALY_SERVER_VERSION index a7802efdf73..0fcdcbd4e2a 100644 --- a/GITALY_SERVER_VERSION +++ b/GITALY_SERVER_VERSION @@ -1 +1 @@ -59dfc252c79b7f9d290a3ede54c9ba8a3b12d4bd +70f304398220d95c05dc109e122ff5e806640303 diff --git a/app/views/shared/icons/_dev_ops_report_overview.svg b/app/assets/images/dev_ops_report_overview.svg index 2f31113bad7..2f31113bad7 100644 --- a/app/views/shared/icons/_dev_ops_report_overview.svg +++ b/app/assets/images/dev_ops_report_overview.svg diff --git a/app/assets/javascripts/analytics/devops_report/components/devops_score.vue b/app/assets/javascripts/analytics/devops_report/components/devops_score.vue index 1a3289ffb75..be38b32c119 100644 --- a/app/assets/javascripts/analytics/devops_report/components/devops_score.vue +++ b/app/assets/javascripts/analytics/devops_report/components/devops_score.vue @@ -2,6 +2,7 @@ import { GlBadge, GlTable, GlLink, GlEmptyState } from '@gitlab/ui'; import { GlSingleStat } from '@gitlab/ui/dist/charts'; import { sprintf, s__ } from '~/locale'; +import DevopsScoreCallout from './devops_score_callout.vue'; const defaultHeaderAttrs = { thClass: 'gl-bg-white!', @@ -15,6 +16,7 @@ export default { GlSingleStat, GlLink, GlEmptyState, + DevopsScoreCallout, }, inject: { devopsScoreMetrics: { @@ -65,46 +67,49 @@ export default { }; </script> <template> - <gl-empty-state - v-if="isEmpty" - :title="__('Data is still calculating...')" - :svg-path="noDataImagePath" - > - <template #description> - <p class="gl-mb-0">{{ __('It may be several days before you see feature usage data.') }}</p> - <gl-link :href="devopsReportDocsPath">{{ - __('See example DevOps Score page in our documentation.') - }}</gl-link> - </template> - </gl-empty-state> - <div v-else data-testid="devops-score-app"> - <div class="gl-text-gray-400 gl-my-4" data-testid="devops-score-note-text"> - {{ titleHelperText }} - </div> - <gl-single-stat - unit="%" - size="sm" - :title="s__('DevopsReport|Your score')" - :should-animate="true" - :value="devopsScoreMetrics.averageScore.value" - :meta-icon="devopsScoreMetrics.averageScore.scoreLevel.icon" - :meta-text="devopsScoreMetrics.averageScore.scoreLevel.label" - :variant="devopsScoreMetrics.averageScore.scoreLevel.variant" - /> - <gl-table - :fields="$options.tableHeaderFields" - :items="devopsScoreMetrics.cards" - thead-class="gl-border-t-0 gl-border-b-solid gl-border-b-1 gl-border-b-gray-100" - stacked="sm" + <div data-testid="devops-score-container"> + <devops-score-callout /> + <gl-empty-state + v-if="isEmpty" + :title="__('Data is still calculating...')" + :svg-path="noDataImagePath" > - <template #cell(usage)="{ item }"> - <div data-testid="usageCol"> - <span>{{ item.usage }}</span> - <gl-badge :variant="item.scoreLevel.variant" size="sm" class="gl-ml-1">{{ - item.scoreLevel.label - }}</gl-badge> - </div> + <template #description> + <p class="gl-mb-0">{{ __('It may be several days before you see feature usage data.') }}</p> + <gl-link :href="devopsReportDocsPath">{{ + __('See example DevOps Score page in our documentation.') + }}</gl-link> </template> - </gl-table> + </gl-empty-state> + <div v-else data-testid="devops-score-app"> + <div class="gl-text-gray-400 gl-my-4" data-testid="devops-score-note-text"> + {{ titleHelperText }} + </div> + <gl-single-stat + unit="%" + size="sm" + :title="s__('DevopsReport|Your score')" + :should-animate="true" + :value="devopsScoreMetrics.averageScore.value" + :meta-icon="devopsScoreMetrics.averageScore.scoreLevel.icon" + :meta-text="devopsScoreMetrics.averageScore.scoreLevel.label" + :variant="devopsScoreMetrics.averageScore.scoreLevel.variant" + /> + <gl-table + :fields="$options.tableHeaderFields" + :items="devopsScoreMetrics.cards" + thead-class="gl-border-t-0 gl-border-b-solid gl-border-b-1 gl-border-b-gray-100" + stacked="sm" + > + <template #cell(usage)="{ item }"> + <div data-testid="usageCol"> + <span>{{ item.usage }}</span> + <gl-badge :variant="item.scoreLevel.variant" size="sm" class="gl-ml-1">{{ + item.scoreLevel.label + }}</gl-badge> + </div> + </template> + </gl-table> + </div> </div> </template> diff --git a/app/assets/javascripts/analytics/devops_report/components/devops_score_callout.vue b/app/assets/javascripts/analytics/devops_report/components/devops_score_callout.vue new file mode 100644 index 00000000000..e594b4e360a --- /dev/null +++ b/app/assets/javascripts/analytics/devops_report/components/devops_score_callout.vue @@ -0,0 +1,55 @@ +<script> +import { GlBanner } from '@gitlab/ui'; +import { parseBoolean, getCookie, setCookie } from '~/lib/utils/common_utils'; +import { + INTRO_COOKIE_KEY, + INTRO_BANNER_TITLE, + INTRO_BANNER_BODY, + INTRO_BANNER_ACTION_TEXT, +} from '../constants'; + +export default { + name: 'DevopsScoreCallout', + components: { + GlBanner, + }, + inject: { + devopsReportDocsPath: { + default: '', + }, + devopsScoreIntroImagePath: { + default: '', + }, + }, + data() { + return { + bannerDismissed: parseBoolean(getCookie(INTRO_COOKIE_KEY)), + }; + }, + i18n: { + title: INTRO_BANNER_TITLE, + body: INTRO_BANNER_BODY, + action: INTRO_BANNER_ACTION_TEXT, + }, + methods: { + dismissBanner() { + setCookie(INTRO_COOKIE_KEY, 'true'); + this.bannerDismissed = true; + }, + }, +}; +</script> +<template> + <gl-banner + v-if="!bannerDismissed" + class="gl-mt-3" + variant="introduction" + :title="$options.i18n.title" + :button-text="$options.i18n.action" + :button-link="devopsReportDocsPath" + :svg-path="devopsScoreIntroImagePath" + @close="dismissBanner" + > + <p>{{ $options.i18n.body }}</p> + </gl-banner> +</template> diff --git a/app/assets/javascripts/analytics/devops_report/constants.js b/app/assets/javascripts/analytics/devops_report/constants.js new file mode 100644 index 00000000000..b395d7eb464 --- /dev/null +++ b/app/assets/javascripts/analytics/devops_report/constants.js @@ -0,0 +1,11 @@ +import { __ } from '~/locale'; + +export const INTRO_COOKIE_KEY = 'dev_ops_report_intro_callout_dismissed'; + +export const INTRO_BANNER_TITLE = __('Introducing Your DevOps Report'); + +export const INTRO_BANNER_BODY = __( + 'Your DevOps Report gives an overview of how you are using GitLab from a feature perspective. Use it to view how you compare with other organizations.', +); + +export const INTRO_BANNER_ACTION_TEXT = __('Read more'); diff --git a/app/assets/javascripts/analytics/devops_report/devops_score.js b/app/assets/javascripts/analytics/devops_report/devops_score.js index 18f7cf0c3ab..20e9fc776bc 100644 --- a/app/assets/javascripts/analytics/devops_report/devops_score.js +++ b/app/assets/javascripts/analytics/devops_report/devops_score.js @@ -6,7 +6,12 @@ export default () => { if (!el) return false; - const { devopsScoreMetrics, devopsReportDocsPath, noDataImagePath } = el.dataset; + const { + devopsScoreMetrics, + devopsReportDocsPath, + noDataImagePath, + devopsScoreIntroImagePath, + } = el.dataset; return new Vue({ el, @@ -14,6 +19,7 @@ export default () => { devopsScoreMetrics: JSON.parse(devopsScoreMetrics), devopsReportDocsPath, noDataImagePath, + devopsScoreIntroImagePath, }, render(h) { return h(DevopsScore); diff --git a/app/assets/javascripts/filtered_search/admin_runners_filtered_search_token_keys.js b/app/assets/javascripts/filtered_search/admin_runners_filtered_search_token_keys.js deleted file mode 100644 index 42d0fbacca0..00000000000 --- a/app/assets/javascripts/filtered_search/admin_runners_filtered_search_token_keys.js +++ /dev/null @@ -1,36 +0,0 @@ -import { __ } from '~/locale'; -import FilteredSearchTokenKeys from './filtered_search_token_keys'; - -const tokenKeys = [ - { - formattedKey: __('Status'), - key: 'status', - type: 'string', - param: 'status', - symbol: '', - icon: 'messages', - tag: 'status', - }, - { - formattedKey: __('Type'), - key: 'type', - type: 'string', - param: 'type', - symbol: '', - icon: 'cube', - tag: 'type', - }, - { - formattedKey: __('Tag'), - key: 'tag', - type: 'array', - param: 'name[]', - symbol: '~', - icon: 'tag', - tag: '~tag', - }, -]; - -const AdminRunnersFilteredSearchTokenKeys = new FilteredSearchTokenKeys(tokenKeys); - -export default AdminRunnersFilteredSearchTokenKeys; diff --git a/app/assets/javascripts/packages_and_registries/package_registry/components/details/app.vue b/app/assets/javascripts/packages_and_registries/package_registry/components/details/app.vue index ae5558111e6..707f186d4da 100644 --- a/app/assets/javascripts/packages_and_registries/package_registry/components/details/app.vue +++ b/app/assets/javascripts/packages_and_registries/package_registry/components/details/app.vue @@ -20,12 +20,12 @@ import { numberToHumanSize } from '~/lib/utils/number_utils'; import { objectToQuery } from '~/lib/utils/url_utility'; import { s__, __ } from '~/locale'; // import DependencyRow from '~/packages/details/components/dependency_row.vue'; -// import InstallationCommands from '~/packages/details/components/installation_commands.vue'; // import PackageFiles from '~/packages/details/components/package_files.vue'; // import PackageListRow from '~/packages/shared/components/package_list_row.vue'; import PackagesListLoader from '~/packages/shared/components/packages_list_loader.vue'; import { packageTypeToTrackCategory } from '~/packages/shared/utils'; import AdditionalMetadata from '~/packages_and_registries/package_registry/components/details/additional_metadata.vue'; +import InstallationCommands from '~/packages_and_registries/package_registry/components/details/installation_commands.vue'; import PackageHistory from '~/packages_and_registries/package_registry/components/details/package_history.vue'; import { PACKAGE_TYPE_NUGET, @@ -62,7 +62,7 @@ export default { // DependencyRow, PackageHistory, AdditionalMetadata, - // InstallationCommands, + InstallationCommands, // PackageFiles, }, directives: { @@ -240,11 +240,7 @@ export default { <div v-if="!isLoading" data-qa-selector="package_information_content"> <package-history :package-entity="packageEntity" :project-name="projectName" /> - <!-- <installation-commands - :package-entity="packageEntity" - :npm-path="npmPath" - :npm-help-path="npmHelpPath" - /> --> + <installation-commands :package-entity="packageEntity" /> <additional-metadata :package-entity="packageEntity" /> </div> diff --git a/app/assets/javascripts/packages_and_registries/package_registry/components/details/npm_installation.vue b/app/assets/javascripts/packages_and_registries/package_registry/components/details/npm_installation.vue index c178d3e97e9..47081e23318 100644 --- a/app/assets/javascripts/packages_and_registries/package_registry/components/details/npm_installation.vue +++ b/app/assets/javascripts/packages_and_registries/package_registry/components/details/npm_installation.vue @@ -1,9 +1,17 @@ <script> import { GlLink, GlSprintf } from '@gitlab/ui'; -import { mapGetters, mapState } from 'vuex'; import { s__ } from '~/locale'; -import { NpmManager, TrackingActions, TrackingLabels } from '~/packages/details/constants'; + import InstallationTitle from '~/packages_and_registries/package_registry/components/details/installation_title.vue'; +import { + TRACKING_ACTION_COPY_NPM_INSTALL_COMMAND, + TRACKING_ACTION_COPY_NPM_SETUP_COMMAND, + TRACKING_ACTION_COPY_YARN_INSTALL_COMMAND, + TRACKING_ACTION_COPY_YARN_SETUP_COMMAND, + TRACKING_LABEL_CODE_INSTRUCTION, + NPM_PACKAGE_MANAGER, + YARN_PACKAGE_MANAGER, +} from '~/packages_and_registries/package_registry/constants'; import CodeInstruction from '~/vue_shared/components/registry/code_instruction.vue'; export default { @@ -14,40 +22,70 @@ export default { GlLink, GlSprintf, }, + inject: ['npmHelpPath', 'npmPath'], + props: { + packageEntity: { + type: Object, + required: true, + }, + }, data() { return { - instructionType: 'npm', + instructionType: NPM_PACKAGE_MANAGER, }; }, computed: { - ...mapState(['npmHelpPath']), - ...mapGetters(['npmInstallationCommand', 'npmSetupCommand']), npmCommand() { - return this.npmInstallationCommand(NpmManager.NPM); + return this.npmInstallationCommand(NPM_PACKAGE_MANAGER); }, npmSetup() { - return this.npmSetupCommand(NpmManager.NPM); + return this.npmSetupCommand(NPM_PACKAGE_MANAGER); }, yarnCommand() { - return this.npmInstallationCommand(NpmManager.YARN); + return this.npmInstallationCommand(YARN_PACKAGE_MANAGER); }, yarnSetupCommand() { - return this.npmSetupCommand(NpmManager.YARN); + return this.npmSetupCommand(YARN_PACKAGE_MANAGER); }, showNpm() { - return this.instructionType === 'npm'; + return this.instructionType === NPM_PACKAGE_MANAGER; + }, + }, + methods: { + npmInstallationCommand(type) { + // eslint-disable-next-line @gitlab/require-i18n-strings + const instruction = type === NPM_PACKAGE_MANAGER ? 'npm i' : 'yarn add'; + + return `${instruction} ${this.packageEntity.name}`; }, + npmSetupCommand(type) { + const scope = this.packageEntity.name.substring(0, this.packageEntity.name.indexOf('/')); + + if (type === NPM_PACKAGE_MANAGER) { + return `echo ${scope}:registry=${this.npmPath}/ >> .npmrc`; + } + + return `echo \\"${scope}:registry\\" \\"${this.npmPath}/\\" >> .yarnrc`; + }, + }, + packageManagers: { + NPM_PACKAGE_MANAGER, + }, + tracking: { + TRACKING_ACTION_COPY_NPM_INSTALL_COMMAND, + TRACKING_ACTION_COPY_NPM_SETUP_COMMAND, + TRACKING_ACTION_COPY_YARN_INSTALL_COMMAND, + TRACKING_ACTION_COPY_YARN_SETUP_COMMAND, + TRACKING_LABEL_CODE_INSTRUCTION, }, i18n: { helpText: s__( 'PackageRegistry|You may also need to setup authentication using an auth token. %{linkStart}See the documentation%{linkEnd} to find out more.', ), }, - trackingActions: { ...TrackingActions }, - TrackingLabels, installOptions: [ - { value: 'npm', label: s__('PackageRegistry|Show NPM commands') }, - { value: 'yarn', label: s__('PackageRegistry|Show Yarn commands') }, + { value: NPM_PACKAGE_MANAGER, label: s__('PackageRegistry|Show NPM commands') }, + { value: YARN_PACKAGE_MANAGER, label: s__('PackageRegistry|Show Yarn commands') }, ], }; </script> @@ -55,7 +93,7 @@ export default { <template> <div> <installation-title - package-type="npm" + :package-type="$options.packageManagers.NPM_PACKAGE_MANAGER" :options="$options.installOptions" @change="instructionType = $event" /> @@ -64,16 +102,16 @@ export default { v-if="showNpm" :instruction="npmCommand" :copy-text="s__('PackageRegistry|Copy npm command')" - :tracking-action="$options.trackingActions.COPY_NPM_INSTALL_COMMAND" - :tracking-label="$options.TrackingLabels.CODE_INSTRUCTION" + :tracking-action="$options.tracking.TRACKING_ACTION_COPY_NPM_INSTALL_COMMAND" + :tracking-label="$options.tracking.TRACKING_LABEL_CODE_INSTRUCTION" /> <code-instruction v-else :instruction="yarnCommand" :copy-text="s__('PackageRegistry|Copy yarn command')" - :tracking-action="$options.trackingActions.COPY_YARN_INSTALL_COMMAND" - :tracking-label="$options.TrackingLabels.CODE_INSTRUCTION" + :tracking-action="$options.tracking.TRACKING_ACTION_COPY_YARN_INSTALL_COMMAND" + :tracking-label="$options.tracking.TRACKING_LABEL_CODE_INSTRUCTION" /> <h3 class="gl-font-lg">{{ __('Registry setup') }}</h3> @@ -82,16 +120,16 @@ export default { v-if="showNpm" :instruction="npmSetup" :copy-text="s__('PackageRegistry|Copy npm setup command')" - :tracking-action="$options.trackingActions.COPY_NPM_SETUP_COMMAND" - :tracking-label="$options.TrackingLabels.CODE_INSTRUCTION" + :tracking-action="$options.tracking.TRACKING_ACTION_COPY_NPM_SETUP_COMMAND" + :tracking-label="$options.tracking.TRACKING_LABEL_CODE_INSTRUCTION" /> <code-instruction v-else :instruction="yarnSetupCommand" :copy-text="s__('PackageRegistry|Copy yarn setup command')" - :tracking-action="$options.trackingActions.COPY_YARN_SETUP_COMMAND" - :tracking-label="$options.TrackingLabels.CODE_INSTRUCTION" + :tracking-action="$options.tracking.TRACKING_ACTION_COPY_YARN_SETUP_COMMAND" + :tracking-label="$options.tracking.TRACKING_LABEL_CODE_INSTRUCTION" /> <gl-sprintf :message="$options.i18n.helpText"> diff --git a/app/assets/javascripts/packages_and_registries/package_registry/components/details/nuget_installation.vue b/app/assets/javascripts/packages_and_registries/package_registry/components/details/nuget_installation.vue index 84493790b4d..2e9991b7be5 100644 --- a/app/assets/javascripts/packages_and_registries/package_registry/components/details/nuget_installation.vue +++ b/app/assets/javascripts/packages_and_registries/package_registry/components/details/nuget_installation.vue @@ -1,9 +1,12 @@ <script> import { GlLink, GlSprintf } from '@gitlab/ui'; -import { mapGetters, mapState } from 'vuex'; import { s__ } from '~/locale'; -import { TrackingActions, TrackingLabels } from '~/packages/details/constants'; import InstallationTitle from '~/packages_and_registries/package_registry/components/details/installation_title.vue'; +import { + TRACKING_ACTION_COPY_NUGET_INSTALL_COMMAND, + TRACKING_ACTION_COPY_NUGET_SETUP_COMMAND, + TRACKING_LABEL_CODE_INSTRUCTION, +} from '~/packages_and_registries/package_registry/constants'; import CodeInstruction from '~/vue_shared/components/registry/code_instruction.vue'; export default { @@ -14,17 +17,31 @@ export default { GlLink, GlSprintf, }, + inject: ['nugetHelpPath', 'nugetPath'], + props: { + packageEntity: { + type: Object, + required: true, + }, + }, computed: { - ...mapState(['nugetHelpPath']), - ...mapGetters(['nugetInstallationCommand', 'nugetSetupCommand']), + nugetInstallationCommand() { + return `nuget install ${this.packageEntity.name} -Source "GitLab"`; + }, + nugetSetupCommand() { + return `nuget source Add -Name "GitLab" -Source "${this.nugetPath}" -UserName <your_username> -Password <your_token>`; + }, + }, + tracking: { + TRACKING_ACTION_COPY_NUGET_INSTALL_COMMAND, + TRACKING_ACTION_COPY_NUGET_SETUP_COMMAND, + TRACKING_LABEL_CODE_INSTRUCTION, }, i18n: { helpText: s__( 'PackageRegistry|For more information on the NuGet registry, %{linkStart}see the documentation%{linkEnd}.', ), }, - trackingActions: { ...TrackingActions }, - TrackingLabels, installOptions: [{ value: 'nuget', label: s__('PackageRegistry|Show Nuget commands') }], }; </script> @@ -37,8 +54,8 @@ export default { :label="s__('PackageRegistry|NuGet Command')" :instruction="nugetInstallationCommand" :copy-text="s__('PackageRegistry|Copy NuGet Command')" - :tracking-action="$options.trackingActions.COPY_NUGET_INSTALL_COMMAND" - :tracking-label="$options.TrackingLabels.CODE_INSTRUCTION" + :tracking-action="$options.tracking.TRACKING_ACTION_COPY_NUGET_INSTALL_COMMAND" + :tracking-label="$options.tracking.TRACKING_LABEL_CODE_INSTRUCTION" /> <h3 class="gl-font-lg">{{ __('Registry setup') }}</h3> @@ -46,8 +63,8 @@ export default { :label="s__('PackageRegistry|Add NuGet Source')" :instruction="nugetSetupCommand" :copy-text="s__('PackageRegistry|Copy NuGet Setup Command')" - :tracking-action="$options.trackingActions.COPY_NUGET_SETUP_COMMAND" - :tracking-label="$options.TrackingLabels.CODE_INSTRUCTION" + :tracking-action="$options.tracking.TRACKING_ACTION_COPY_NUGET_SETUP_COMMAND" + :tracking-label="$options.tracking.TRACKING_LABEL_CODE_INSTRUCTION" /> <gl-sprintf :message="$options.i18n.helpText"> <template #link="{ content }"> diff --git a/app/assets/javascripts/packages_and_registries/package_registry/components/details/pypi_installation.vue b/app/assets/javascripts/packages_and_registries/package_registry/components/details/pypi_installation.vue index 21eba44a720..669adab9df6 100644 --- a/app/assets/javascripts/packages_and_registries/package_registry/components/details/pypi_installation.vue +++ b/app/assets/javascripts/packages_and_registries/package_registry/components/details/pypi_installation.vue @@ -1,9 +1,13 @@ <script> import { GlLink, GlSprintf } from '@gitlab/ui'; -import { mapGetters, mapState } from 'vuex'; + import { s__ } from '~/locale'; -import { TrackingActions, TrackingLabels } from '~/packages/details/constants'; import InstallationTitle from '~/packages_and_registries/package_registry/components/details/installation_title.vue'; +import { + TRACKING_ACTION_COPY_PIP_INSTALL_COMMAND, + TRACKING_ACTION_COPY_PYPI_SETUP_COMMAND, + TRACKING_LABEL_CODE_INSTRUCTION, +} from '~/packages_and_registries/package_registry/constants'; import CodeInstruction from '~/vue_shared/components/registry/code_instruction.vue'; export default { @@ -14,9 +18,29 @@ export default { GlLink, GlSprintf, }, + inject: ['pypiHelpPath', 'pypiPath', 'pypiSetupPath'], + props: { + packageEntity: { + type: Object, + required: true, + }, + }, computed: { - ...mapState(['pypiHelpPath']), - ...mapGetters(['pypiPipCommand', 'pypiSetupCommand']), + pypiPipCommand() { + // eslint-disable-next-line @gitlab/require-i18n-strings + return `pip install ${this.packageEntity.name} --extra-index-url ${this.pypiPath}`; + }, + pypiSetupCommand() { + return `[gitlab] +repository = ${this.pypiSetupPath} +username = __token__ +password = <your personal access token>`; + }, + }, + tracking: { + TRACKING_ACTION_COPY_PIP_INSTALL_COMMAND, + TRACKING_ACTION_COPY_PYPI_SETUP_COMMAND, + TRACKING_LABEL_CODE_INSTRUCTION, }, i18n: { setupText: s__( @@ -26,8 +50,6 @@ export default { 'PackageRegistry|For more information on the PyPi registry, %{linkStart}see the documentation%{linkEnd}.', ), }, - trackingActions: { ...TrackingActions }, - TrackingLabels, installOptions: [{ value: 'pypi', label: s__('PackageRegistry|Show PyPi commands') }], }; </script> @@ -41,8 +63,8 @@ export default { :instruction="pypiPipCommand" :copy-text="s__('PackageRegistry|Copy Pip command')" data-testid="pip-command" - :tracking-action="$options.trackingActions.COPY_PIP_INSTALL_COMMAND" - :tracking-label="$options.TrackingLabels.CODE_INSTRUCTION" + :tracking-action="$options.tracking.TRACKING_ACTION_COPY_PIP_INSTALL_COMMAND" + :tracking-label="$options.tracking.TRACKING_LABEL_CODE_INSTRUCTION" /> <h3 class="gl-font-lg">{{ __('Registry setup') }}</h3> @@ -59,8 +81,8 @@ export default { :copy-text="s__('PackageRegistry|Copy .pypirc content')" data-testid="pypi-setup-content" multiline - :tracking-action="$options.trackingActions.COPY_PYPI_SETUP_COMMAND" - :tracking-label="$options.TrackingLabels.CODE_INSTRUCTION" + :tracking-action="$options.tracking.TRACKING_ACTION_COPY_PYPI_SETUP_COMMAND" + :tracking-label="$options.tracking.TRACKING_LABEL_CODE_INSTRUCTION" /> <gl-sprintf :message="$options.i18n.helpText"> <template #link="{ content }"> diff --git a/app/assets/javascripts/packages_and_registries/package_registry/constants.js b/app/assets/javascripts/packages_and_registries/package_registry/constants.js index 0008e5f0c98..c1de9e7a61e 100644 --- a/app/assets/javascripts/packages_and_registries/package_registry/constants.js +++ b/app/assets/javascripts/packages_and_registries/package_registry/constants.js @@ -83,3 +83,6 @@ export const PACKAGE_ERROR_STATUS = 'error'; export const PACKAGE_DEFAULT_STATUS = 'default'; export const PACKAGE_HIDDEN_STATUS = 'hidden'; export const PACKAGE_PROCESSING_STATUS = 'processing'; + +export const NPM_PACKAGE_MANAGER = 'npm'; +export const YARN_PACKAGE_MANAGER = 'yarn'; diff --git a/app/assets/javascripts/pages/admin/runners/index/index.js b/app/assets/javascripts/pages/admin/runners/index/index.js index 8e7861c300a..f83111b6385 100644 --- a/app/assets/javascripts/pages/admin/runners/index/index.js +++ b/app/assets/javascripts/pages/admin/runners/index/index.js @@ -1,17 +1,3 @@ -import AdminRunnersFilteredSearchTokenKeys from '~/filtered_search/admin_runners_filtered_search_token_keys'; -import { FILTERED_SEARCH } from '~/pages/constants'; -import initFilteredSearch from '~/pages/search/init_filtered_search'; -import { initInstallRunner } from '~/pages/shared/mount_runner_instructions'; import { initAdminRunners } from '~/runner/admin_runners'; -initFilteredSearch({ - page: FILTERED_SEARCH.ADMIN_RUNNERS, - filteredSearchTokenKeys: AdminRunnersFilteredSearchTokenKeys, - useDefaultState: true, -}); - -initInstallRunner(); - -if (gon.features?.runnerListViewVueUi) { - initAdminRunners(); -} +initAdminRunners(); diff --git a/app/assets/javascripts/repository/components/breadcrumbs.vue b/app/assets/javascripts/repository/components/breadcrumbs.vue index 0b8408643ac..db84e2b5912 100644 --- a/app/assets/javascripts/repository/components/breadcrumbs.vue +++ b/app/assets/javascripts/repository/components/breadcrumbs.vue @@ -247,7 +247,8 @@ export default { return items; }, renderAddToTreeDropdown() { - return this.canCollaborate || this.canCreateMrFromFork; + const isBlobPath = this.$route.name === 'blobPath' || this.$route.name === 'blobPathDecoded'; + return !isBlobPath && (this.canCollaborate || this.canCreateMrFromFork); }, }, methods: { diff --git a/app/controllers/admin/runners_controller.rb b/app/controllers/admin/runners_controller.rb index d1c91d9617f..8c74352a179 100644 --- a/app/controllers/admin/runners_controller.rb +++ b/app/controllers/admin/runners_controller.rb @@ -4,19 +4,11 @@ class Admin::RunnersController < Admin::ApplicationController include RunnerSetupScripts before_action :runner, except: [:index, :tag_list, :runner_setup_scripts] - before_action only: [:index] do - push_frontend_feature_flag(:runner_list_view_vue_ui, current_user, default_enabled: :yaml) - end feature_category :runner - NUMBER_OF_RUNNERS_PER_PAGE = 30 - def index - finder = Ci::RunnersFinder.new(current_user: current_user, params: params) - @runners = finder.execute.page(params[:page]).per(NUMBER_OF_RUNNERS_PER_PAGE) @active_runners_count = Ci::Runner.online.count - @sort = finder.sort_key end def show diff --git a/app/models/concerns/each_batch.rb b/app/models/concerns/each_batch.rb index a59f00d73ec..443e1ab53b4 100644 --- a/app/models/concerns/each_batch.rb +++ b/app/models/concerns/each_batch.rb @@ -91,7 +91,11 @@ module EachBatch # Any ORDER BYs are useless for this relation and can lead to less # efficient UPDATE queries, hence we get rid of it. - yield relation.except(:order), index + relation = relation.except(:order) + + # Using unscoped is necessary to prevent leaking the current scope used by + # ActiveRecord to chain `each_batch` method. + unscoped { yield relation, index } break unless stop end diff --git a/app/models/integrations/datadog.rb b/app/models/integrations/datadog.rb index 8a356cf8abc..08cd451db94 100644 --- a/app/models/integrations/datadog.rb +++ b/app/models/integrations/datadog.rb @@ -129,14 +129,12 @@ module Integrations end def test(data) - begin - result = execute(data) - return { success: false, result: result[:message] } if result[:http_status] != 200 - rescue StandardError => error - return { success: false, result: error } - end - - { success: true, result: result[:message] } + result = execute(data) + + { + success: (200..299).cover?(result[:http_status]), + result: result[:message] + } end private diff --git a/app/views/admin/dev_ops_report/_callout.html.haml b/app/views/admin/dev_ops_report/_callout.html.haml deleted file mode 100644 index 2b4c258a00c..00000000000 --- a/app/views/admin/dev_ops_report/_callout.html.haml +++ /dev/null @@ -1,13 +0,0 @@ -.gl-mt-3 -.user-callout{ data: { uid: 'dev_ops_report_intro_callout_dismissed' } } - .bordered-box.landing.content-block - %button.gl-button.btn.btn-default-tertiary.close.js-close-callout{ type: 'button', - 'aria-label' => _('Dismiss DevOps Report introduction') } - = sprite_icon('close', size: 16, css_class: 'dismiss-icon') - .user-callout-copy - %h4 - = _('Introducing Your DevOps Report') - %p - = _('Your DevOps Report gives an overview of how you are using GitLab from a feature perspective. Use it to view how you compare with other organizations.') - .svg-container.devops - = custom_icon('dev_ops_report_overview') diff --git a/app/views/admin/dev_ops_report/_report.html.haml b/app/views/admin/dev_ops_report/_report.html.haml index 0b26548d6e6..5ab68a463ba 100644 --- a/app/views/admin/dev_ops_report/_report.html.haml +++ b/app/views/admin/dev_ops_report/_report.html.haml @@ -1,9 +1,6 @@ - service_ping_enabled = Gitlab::CurrentSettings.usage_ping_enabled -- if service_ping_enabled && show_callout?('dev_ops_report_intro_callout_dismissed') - = render 'callout' - - if !service_ping_enabled #js-devops-service-ping-disabled{ data: { is_admin: current_user&.admin.to_s, empty_state_svg_path: image_path('illustrations/convdev/convdev_no_index.svg'), enable_service_ping_path: metrics_and_profiling_admin_application_settings_path(anchor: 'js-usage-settings'), docs_link: help_page_path('development/service_ping/index.md') } } - else - #js-devops-score{ data: { devops_score_metrics: devops_score_metrics(@metric).to_json, devops_report_docs_path: help_page_path('user/admin_area/analytics/dev_ops_report'), no_data_image_path: image_path('dev_ops_report_no_data.svg') } } + #js-devops-score{ data: { devops_score_metrics: devops_score_metrics(@metric).to_json, devops_report_docs_path: help_page_path('user/admin_area/analytics/dev_ops_report'), no_data_image_path: image_path('dev_ops_report_no_data.svg'), devops_score_intro_image_path: image_path('dev_ops_report_overview.svg') } } diff --git a/app/views/admin/runners/_runner.html.haml b/app/views/admin/runners/_runner.html.haml deleted file mode 100644 index ce143a6b155..00000000000 --- a/app/views/admin/runners/_runner.html.haml +++ /dev/null @@ -1,80 +0,0 @@ --# Note: This file should stay aligned with: --# `app/views/groups/runners/_runner.html.haml` - -.gl-responsive-table-row{ data: { testid: "runner-row-#{runner.id}" } } - .table-section.section-10.section-wrap - .table-mobile-header{ role: 'rowheader' }= _('Type') - .table-mobile-content - - if runner.instance_type? - %span.badge.badge-pill.gl-badge.sm.badge-success= s_('Runners|shared') - - elsif runner.group_type? - %span.badge.badge-pill.gl-badge.sm.badge-success= s_('Runners|group') - - else - %span.badge.badge-pill.gl-badge.sm.badge-info= s_('Runners|specific') - - if runner.locked? - %span.badge.badge-pill.gl-badge.sm.badge-warning= s_('Runners|locked') - - unless runner.active? - %span.badge.badge-pill.gl-badge.sm.badge-danger= s_('Runners|paused') - - .table-section.section-30 - .table-mobile-header{ role: 'rowheader' }= s_('Runners|Runner') - .table-mobile-content - = link_to("##{runner.id} (#{runner.short_sha})", admin_runner_path(runner)) - .gl-text-truncate - %span{ title: runner.description, data: { toggle: 'tooltip', container: 'body' } } - = runner.description - - .table-section.section-10 - .table-mobile-header{ role: 'rowheader' }= _('Version') - .table-mobile-content.str-truncated.has-tooltip{ title: runner.version } - = runner.version - - .table-section.section-10 - .table-mobile-header{ role: 'rowheader' }= _('IP Address') - .table-mobile-content.str-truncated.has-tooltip{ title: runner.ip_address } - = runner.ip_address - - .table-section.section-5 - .table-mobile-header{ role: 'rowheader' }= _('Projects') - .table-mobile-content - - if runner.instance_type? || runner.group_type? - = _('n/a') - - else - = runner.projects.count(:all) - - .table-section.section-5 - .table-mobile-header{ role: 'rowheader' }= _('Jobs') - .table-mobile-content - = limited_counter_with_delimiter(runner.builds) - - .table-section.section-10.section-wrap - .table-mobile-header{ role: 'rowheader' }= _('Tags') - .table-mobile-content - - runner.tags.map(&:name).sort.each do |tag| - %span.badge.badge-primary.str-truncated.has-tooltip{ title: tag } - = tag - - .table-section.section-10 - .table-mobile-header{ role: 'rowheader' }= _('Last contact') - .table-mobile-content - - contacted_at = runner_contacted_at(runner) - - if contacted_at - = time_ago_with_tooltip contacted_at - - else - = _('Never') - - .table-section.table-button-footer.section-10 - .btn-group.table-action-buttons - .btn-group - = link_to admin_runner_path(runner), class: 'gl-button btn btn-default btn-icon has-tooltip', title: _('Edit'), ref: 'tooltip', aria: { label: _('Edit') }, data: { placement: 'top', container: 'body'} do - = sprite_icon('pencil', css_class: 'gl-icon') - .btn-group - - if runner.active? - = link_to [:pause, :admin, runner], method: :post, class: 'gl-button btn btn-default btn-icon has-tooltip', title: _('Pause'), ref: 'tooltip', aria: { label: _('Pause') }, data: { placement: 'top', container: 'body', confirm: _('Are you sure?') } do - = sprite_icon('pause', css_class: 'gl-icon') - - else - = link_to [:resume, :admin, runner], method: :post, class: 'gl-button btn btn-default btn-icon has-tooltip gl-px-3', title: _('Resume'), ref: 'tooltip', aria: { label: _('Resume') }, data: { placement: 'top', container: 'body'} do - = sprite_icon('play', css_class: 'gl-icon') - .btn-group - = link_to [:admin, runner], method: :delete, class: 'gl-button btn btn-danger btn-icon has-tooltip', title: _('Remove'), ref: 'tooltip', aria: { label: _('Remove') }, data: { placement: 'top', container: 'body', confirm: _('Are you sure?') } do - = sprite_icon('close', css_class: 'gl-icon') diff --git a/app/views/admin/runners/index.html.haml b/app/views/admin/runners/index.html.haml index 5dce44a787c..f298fce7bcf 100644 --- a/app/views/admin/runners/index.html.haml +++ b/app/views/admin/runners/index.html.haml @@ -1,140 +1,4 @@ - breadcrumb_title _('Runners') - page_title _('Runners') -- if Feature.enabled?(:runner_list_view_vue_ui, current_user, default_enabled: :yaml) - #js-admin-runners{ data: { registration_token: Gitlab::CurrentSettings.runners_registration_token, runner_install_help_page: 'https://docs.gitlab.com/runner/install/', active_runners_count: @active_runners_count } } -- else - .row - .col-sm-6 - .bs-callout - %p - = _("Runners are processes that pick up and execute CI/CD jobs for GitLab.") - %br - = _('You can register runners as separate users, on separate servers, and on your local machine. Register as many runners as you want.') - %br - - %div - %span= _('Runners can be:') - %ul - %li - %span.badge.badge-pill.gl-badge.sm.badge-success= s_('Runners|shared') - \- - = _('Runs jobs from all unassigned projects.') - %li - %span.badge.badge-pill.gl-badge.sm.badge-success= s_('Runners|group') - \- - = _('Runs jobs from all unassigned projects in its group.') - %li - %span.badge.badge-pill.gl-badge.sm.badge-info= s_('Runners|specific') - \- - = _('Runs jobs from assigned projects.') - %li - %span.badge.badge-pill.gl-badge.sm.badge-warning= s_('Runners|locked') - \- - = _('Cannot be assigned to other projects.') - %li - %span.badge.badge-pill.gl-badge.sm.badge-danger= s_('Runners|paused') - \- - = _('Not available to run jobs.') - - .col-sm-6 - .bs-callout - = render partial: 'ci/runner/how_to_setup_runner', - locals: { registration_token: Gitlab::CurrentSettings.runners_registration_token, - type: s_('Runners|shared'), - reset_token_url: reset_registration_token_admin_application_settings_path, - project_path: '', - group_path: '' } - - .row - .col-sm-9 - = form_tag admin_runners_path, id: 'runners-search', method: :get, class: 'filter-form js-filter-form' do - .filtered-search-wrapper.d-flex - .filtered-search-box - = dropdown_tag(_('Recent searches'), - options: { wrapper_class: 'filtered-search-history-dropdown-wrapper', - toggle_class: 'gl-button btn btn-default filtered-search-history-dropdown-toggle-button', - dropdown_class: 'filtered-search-history-dropdown', - content_class: 'filtered-search-history-dropdown-content' }) do - .js-filtered-search-history-dropdown{ data: { full_path: admin_runners_path } } - .filtered-search-box-input-container.droplab-dropdown - .scroll-container - %ul.tokens-container.list-unstyled - %li.input-token - %input.form-control.filtered-search{ search_filter_input_options('runners') } - #js-dropdown-hint.filtered-search-input-dropdown-menu.dropdown-menu.hint-dropdown - %ul.filter-dropdown{ data: { dynamic: true, dropdown: true } } - %li.filter-dropdown-item{ data: {hint: "#{'{{hint}}'}", tag: "#{'{{tag}}'}", action: "#{'{{hint === \'search\' ? \'submit\' : \'\' }}'}" } } - = button_tag class: %w[gl-button btn btn-link] do - -# Encapsulate static class name `{{icon}}` inside #{} to bypass - -# haml lint's ClassAttributeWithStaticValue - %svg - %use{ 'xlink:href': "#{'{{icon}}'}" } - %span.js-filter-hint - {{formattedKey}} - #js-dropdown-operator.filtered-search-input-dropdown-menu.dropdown-menu - %ul.filter-dropdown{ data: { dropdown: true, dynamic: true } } - %li.filter-dropdown-item{ data: { value: "{{ title }}" } } - %button.gl-button.btn.btn-link{ type: 'button' } - {{ title }} - %span.btn-helptext - {{ help }} - #js-dropdown-admin-runner-status.filtered-search-input-dropdown-menu.dropdown-menu - %ul{ data: { dropdown: true } } - - Ci::Runner::AVAILABLE_STATUSES.each do |status| - %li.filter-dropdown-item{ data: { value: status } } - = button_tag class: %w[gl-button btn btn-link] do - = status.titleize - - #js-dropdown-admin-runner-type.filtered-search-input-dropdown-menu.dropdown-menu - %ul{ data: { dropdown: true } } - - Ci::Runner::AVAILABLE_TYPES.each do |runner_type| - %li.filter-dropdown-item{ data: { value: runner_type } } - = button_tag class: %w[gl-button btn btn-link] do - = runner_type.titleize - - #js-dropdown-admin-runner-type.filtered-search-input-dropdown-menu.dropdown-menu - %ul{ data: { dropdown: true } } - - Ci::Runner::AVAILABLE_TYPES.each do |runner_type| - %li.filter-dropdown-item{ data: { value: runner_type } } - = button_tag class: %w[gl-button btn btn-link] do - = runner_type.titleize - - #js-dropdown-runner-tag.filtered-search-input-dropdown-menu.dropdown-menu - %ul{ data: { dropdown: true } } - %li.filter-dropdown-item{ data: { value: 'none' } } - %button.gl-button.btn.btn-link - = _('No Tag') - %li.divider.droplab-item-ignore - %ul.filter-dropdown{ data: { dynamic: true, dropdown: true } } - %li.filter-dropdown-item - %button.gl-button.btn.btn-link.js-data-value - %span.dropdown-light-content - {{name}} - - = button_tag class: %w[clear-search hidden] do - = sprite_icon('close', size: 16, css_class: 'clear-search-icon') - .filter-dropdown-container - = render 'sort_dropdown' - - .col-sm-3.text-right-lg - = _('Runners currently online: %{active_runners_count}') % { active_runners_count: @active_runners_count } - - if @runners.any? - .content-list{ data: { testid: 'runners-table' } } - .table-holder - .gl-responsive-table-row.table-row-header{ role: 'row' } - .table-section.section-10{ role: 'rowheader' }= _('Type/State') - .table-section.section-30{ role: 'rowheader' }= s_('Runners|Runner') - .table-section.section-10{ role: 'rowheader' }= _('Version') - .table-section.section-10{ role: 'rowheader' }= _('IP Address') - .table-section.section-5{ role: 'rowheader' }= _('Projects') - .table-section.section-5{ role: 'rowheader' }= _('Jobs') - .table-section.section-10{ role: 'rowheader' }= _('Tags') - .table-section.section-10{ role: 'rowheader' }= _('Last contact') - .table-section.section-10{ role: 'rowheader' } - - - @runners.each do |runner| - = render 'admin/runners/runner', runner: runner - = paginate @runners, theme: 'gitlab' - - else - .nothing-here-block= _('No runners found') +#js-admin-runners{ data: { registration_token: Gitlab::CurrentSettings.runners_registration_token, runner_install_help_page: 'https://docs.gitlab.com/runner/install/', active_runners_count: @active_runners_count } } diff --git a/app/views/groups/runners/_settings.html.haml b/app/views/groups/runners/_settings.html.haml index 187588f5f11..50982fa381c 100644 --- a/app/views/groups/runners/_settings.html.haml +++ b/app/views/groups/runners/_settings.html.haml @@ -75,7 +75,7 @@ = button_tag class: 'clear-search hidden' do = sprite_icon('close', size: 16, css_class: 'clear-search-icon') .filter-dropdown-container - = render 'admin/runners/sort_dropdown' + = render 'groups/runners/sort_dropdown' .col-sm-3.text-right-lg = _('Runners currently online: %{active_runners_count}') % { active_runners_count: limited_counter_with_delimiter(@all_group_runners.online) } diff --git a/app/views/admin/runners/_sort_dropdown.html.haml b/app/views/groups/runners/_sort_dropdown.html.haml index c6627ae0f27..eb826552211 100644 --- a/app/views/admin/runners/_sort_dropdown.html.haml +++ b/app/views/groups/runners/_sort_dropdown.html.haml @@ -8,4 +8,3 @@ %li = sortable_item(sort_title_created_date, page_filter_path(sort: sort_value_created_date), sorted_by) = sortable_item(sort_title_contacted_date, page_filter_path(sort: sort_value_contacted_date), sorted_by) - diff --git a/config/feature_flags/development/runner_list_view_vue_ui.yml b/config/feature_flags/development/runner_list_view_vue_ui.yml deleted file mode 100644 index 2c539e5b91c..00000000000 --- a/config/feature_flags/development/runner_list_view_vue_ui.yml +++ /dev/null @@ -1,8 +0,0 @@ ---- -name: runner_list_view_vue_ui -introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/61241 -rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/330969 -milestone: '13.12' -type: development -group: group::runner -default_enabled: true diff --git a/config/feature_flags/development/similarity_search.yml b/config/feature_flags/development/similarity_search.yml deleted file mode 100644 index 978095c94b5..00000000000 --- a/config/feature_flags/development/similarity_search.yml +++ /dev/null @@ -1,8 +0,0 @@ ---- -name: similarity_search -introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/37300/ -rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/38675 -milestone: '13.3' -type: development -group: group::optimize -default_enabled: true diff --git a/config/metrics/counts_28d/20210201124930_deployments.yml b/config/metrics/counts_28d/20210201124930_deployments.yml index ff6456731fe..80a6bc1bf4f 100644 --- a/config/metrics/counts_28d/20210201124930_deployments.yml +++ b/config/metrics/counts_28d/20210201124930_deployments.yml @@ -5,7 +5,7 @@ description: Total deployments count for recent 28 days product_section: ops product_stage: release product_group: group::ops release -product_category: +product_category: value_type: number status: data_available milestone: "13.2" @@ -19,3 +19,4 @@ tier: - free - premium - ultimate +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216174910_analytics_unique_visits_for_any_target_monthly.yml b/config/metrics/counts_28d/20210216174910_analytics_unique_visits_for_any_target_monthly.yml index a9340d29e26..7c2636a297e 100644 --- a/config/metrics/counts_28d/20210216174910_analytics_unique_visits_for_any_target_monthly.yml +++ b/config/metrics/counts_28d/20210216174910_analytics_unique_visits_for_any_target_monthly.yml @@ -5,13 +5,17 @@ description: Unique visitors to any analytics feature by month product_section: dev product_stage: manage product_group: group::optimize -product_category: +product_category: value_type: number status: data_available time_frame: 28d -data_source: +data_source: distribution: - ce tier: - free skip_validation: true +performance_indicator_type: +- smau +- gmau +- paid_gmau diff --git a/config/metrics/counts_28d/20210216174933_p_analytics_pipelines_monthly.yml b/config/metrics/counts_28d/20210216174933_p_analytics_pipelines_monthly.yml index f261fcfda1b..fcc5c0d5154 100644 --- a/config/metrics/counts_28d/20210216174933_p_analytics_pipelines_monthly.yml +++ b/config/metrics/counts_28d/20210216174933_p_analytics_pipelines_monthly.yml @@ -5,7 +5,7 @@ description: Unique visitors to /groups/:group/-/analytics/ci_cd by month product_section: dev product_stage: manage product_group: group::optimize -product_category: +product_category: value_type: number status: data_available time_frame: 28d @@ -15,3 +15,4 @@ distribution: tier: - free skip_validation: true +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216174941_p_analytics_valuestream_monthly.yml b/config/metrics/counts_28d/20210216174941_p_analytics_valuestream_monthly.yml index d81846a1736..2144c420690 100644 --- a/config/metrics/counts_28d/20210216174941_p_analytics_valuestream_monthly.yml +++ b/config/metrics/counts_28d/20210216174941_p_analytics_valuestream_monthly.yml @@ -5,7 +5,7 @@ description: Unique visitors to /:group/:project/-/value_stream_analytics by mon product_section: dev product_stage: manage product_group: group::optimize -product_category: +product_category: value_type: number status: data_available time_frame: 28d @@ -15,3 +15,4 @@ distribution: tier: - free skip_validation: true +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216174956_i_analytics_cohorts_monthly.yml b/config/metrics/counts_28d/20210216174956_i_analytics_cohorts_monthly.yml index c0c45f2df2f..0fa3c63371c 100644 --- a/config/metrics/counts_28d/20210216174956_i_analytics_cohorts_monthly.yml +++ b/config/metrics/counts_28d/20210216174956_i_analytics_cohorts_monthly.yml @@ -1,11 +1,11 @@ --- data_category: Optional key_path: redis_hll_counters.analytics.i_analytics_cohorts_monthly -description: +description: product_section: fulfillment product_stage: fulfillment product_group: group::utilization -product_category: +product_category: value_type: number status: data_available time_frame: 28d @@ -15,3 +15,4 @@ distribution: tier: - free skip_validation: true +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216175000_i_analytics_dev_ops_score_monthly.yml b/config/metrics/counts_28d/20210216175000_i_analytics_dev_ops_score_monthly.yml index 03187736700..17a54feb331 100644 --- a/config/metrics/counts_28d/20210216175000_i_analytics_dev_ops_score_monthly.yml +++ b/config/metrics/counts_28d/20210216175000_i_analytics_dev_ops_score_monthly.yml @@ -5,7 +5,7 @@ description: Unique visitors to /admin/dev_ops_report by month product_section: dev product_stage: manage product_group: group::optimize -product_category: +product_category: value_type: number status: data_available time_frame: 28d @@ -15,3 +15,4 @@ distribution: tier: - free skip_validation: true +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216175004_g_analytics_merge_request_monthly.yml b/config/metrics/counts_28d/20210216175004_g_analytics_merge_request_monthly.yml index e9fb3dbfbb2..5153b1136b7 100644 --- a/config/metrics/counts_28d/20210216175004_g_analytics_merge_request_monthly.yml +++ b/config/metrics/counts_28d/20210216175004_g_analytics_merge_request_monthly.yml @@ -1,11 +1,11 @@ --- data_category: Optional key_path: redis_hll_counters.analytics.g_analytics_merge_request_monthly -description: +description: product_section: dev product_stage: manage product_group: group::optimize -product_category: +product_category: value_type: number status: removed time_frame: 28d @@ -14,4 +14,5 @@ distribution: - ce tier: - free -skip_validation: true
\ No newline at end of file +skip_validation: true +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216175012_i_analytics_instance_statistics_monthly.yml b/config/metrics/counts_28d/20210216175012_i_analytics_instance_statistics_monthly.yml index 4d4f70b4e99..c3126fa4ea3 100644 --- a/config/metrics/counts_28d/20210216175012_i_analytics_instance_statistics_monthly.yml +++ b/config/metrics/counts_28d/20210216175012_i_analytics_instance_statistics_monthly.yml @@ -5,7 +5,7 @@ description: Unique visitors to /admin/usage_trends by month product_section: dev product_stage: manage product_group: group::optimize -product_category: +product_category: value_type: number status: data_available time_frame: 28d @@ -15,3 +15,4 @@ distribution: tier: - free skip_validation: true +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216175016_analytics_total_unique_counts_monthly.yml b/config/metrics/counts_28d/20210216175016_analytics_total_unique_counts_monthly.yml index 195b5c2fed5..789ec32aee1 100644 --- a/config/metrics/counts_28d/20210216175016_analytics_total_unique_counts_monthly.yml +++ b/config/metrics/counts_28d/20210216175016_analytics_total_unique_counts_monthly.yml @@ -5,7 +5,7 @@ description: The number of unique users who visited any analytics feature by mon product_section: dev product_stage: manage product_group: group::optimize -product_category: +product_category: value_type: number status: data_available time_frame: 28d @@ -15,3 +15,4 @@ distribution: tier: - free skip_validation: true +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216175055_merge_requests.yml b/config/metrics/counts_28d/20210216175055_merge_requests.yml index b932ade9be2..746cfa2b8f7 100644 --- a/config/metrics/counts_28d/20210216175055_merge_requests.yml +++ b/config/metrics/counts_28d/20210216175055_merge_requests.yml @@ -17,3 +17,4 @@ tier: - free - premium - ultimate +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216175057_projects_with_disable_overriding_approvers_per_merge_request.yml b/config/metrics/counts_28d/20210216175057_projects_with_disable_overriding_approvers_per_merge_request.yml index dc5ba4a9f61..e7b5a17c4aa 100644 --- a/config/metrics/counts_28d/20210216175057_projects_with_disable_overriding_approvers_per_merge_request.yml +++ b/config/metrics/counts_28d/20210216175057_projects_with_disable_overriding_approvers_per_merge_request.yml @@ -17,3 +17,4 @@ tier: - free - premium - ultimate +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216175059_projects_without_disable_overriding_approvers_per_merge_request.yml b/config/metrics/counts_28d/20210216175059_projects_without_disable_overriding_approvers_per_merge_request.yml index 6420fd972fe..ede7c42724d 100644 --- a/config/metrics/counts_28d/20210216175059_projects_without_disable_overriding_approvers_per_merge_request.yml +++ b/config/metrics/counts_28d/20210216175059_projects_without_disable_overriding_approvers_per_merge_request.yml @@ -17,3 +17,4 @@ tier: - free - premium - ultimate +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216175101_merge_requests_users.yml b/config/metrics/counts_28d/20210216175101_merge_requests_users.yml index e51b3819df6..27aa5b65d3e 100644 --- a/config/metrics/counts_28d/20210216175101_merge_requests_users.yml +++ b/config/metrics/counts_28d/20210216175101_merge_requests_users.yml @@ -17,3 +17,6 @@ tier: - free - premium - ultimate +performance_indicator_type: +- gmau +- paid_gmau diff --git a/config/metrics/counts_28d/20210216175109_suggestions.yml b/config/metrics/counts_28d/20210216175109_suggestions.yml index 9e29b3f3e4b..ce82d927e77 100644 --- a/config/metrics/counts_28d/20210216175109_suggestions.yml +++ b/config/metrics/counts_28d/20210216175109_suggestions.yml @@ -17,3 +17,4 @@ tier: - free - premium - ultimate +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216175113_merge_request_action_monthly.yml b/config/metrics/counts_28d/20210216175113_merge_request_action_monthly.yml index 969b426dc4e..b6e3c697afb 100644 --- a/config/metrics/counts_28d/20210216175113_merge_request_action_monthly.yml +++ b/config/metrics/counts_28d/20210216175113_merge_request_action_monthly.yml @@ -13,11 +13,12 @@ data_source: redis_hll instrumentation_class: RedisHLLMetric options: events: - - merge_request_action + - merge_request_action distribution: - ce - ee tier: - - free - - premium - - ultimate +- free +- premium +- ultimate +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216175117_i_source_code_code_intelligence_monthly.yml b/config/metrics/counts_28d/20210216175117_i_source_code_code_intelligence_monthly.yml index e8fa311ed23..d29e9bbc25e 100644 --- a/config/metrics/counts_28d/20210216175117_i_source_code_code_intelligence_monthly.yml +++ b/config/metrics/counts_28d/20210216175117_i_source_code_code_intelligence_monthly.yml @@ -13,11 +13,12 @@ data_source: redis_hll instrumentation_class: RedisHLLMetric options: events: - - i_source_code_code_intelligence + - i_source_code_code_intelligence distribution: - ce - ee tier: - - free - - premium - - ultimate +- free +- premium +- ultimate +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216175120_i_code_review_mr_diffs_monthly.yml b/config/metrics/counts_28d/20210216175120_i_code_review_mr_diffs_monthly.yml index 24509103daa..91bece0a527 100644 --- a/config/metrics/counts_28d/20210216175120_i_code_review_mr_diffs_monthly.yml +++ b/config/metrics/counts_28d/20210216175120_i_code_review_mr_diffs_monthly.yml @@ -14,6 +14,7 @@ distribution: - ce - ee tier: - - free - - premium - - ultimate +- free +- premium +- ultimate +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216175124_i_code_review_user_single_file_diffs_monthly.yml b/config/metrics/counts_28d/20210216175124_i_code_review_user_single_file_diffs_monthly.yml index 569666d47af..0606f00db55 100644 --- a/config/metrics/counts_28d/20210216175124_i_code_review_user_single_file_diffs_monthly.yml +++ b/config/metrics/counts_28d/20210216175124_i_code_review_user_single_file_diffs_monthly.yml @@ -14,6 +14,7 @@ distribution: - ce - ee tier: - - free - - premium - - ultimate +- free +- premium +- ultimate +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216175128_i_code_review_mr_single_file_diffs_monthly.yml b/config/metrics/counts_28d/20210216175128_i_code_review_mr_single_file_diffs_monthly.yml index b22ba8104cf..cd6d8e3fda9 100644 --- a/config/metrics/counts_28d/20210216175128_i_code_review_mr_single_file_diffs_monthly.yml +++ b/config/metrics/counts_28d/20210216175128_i_code_review_mr_single_file_diffs_monthly.yml @@ -1,8 +1,7 @@ --- data_category: Optional key_path: redis_hll_counters.code_review.i_code_review_mr_single_file_diffs_monthly -description: Count of unique merge requests per month with diffs viewed file - by file +description: Count of unique merge requests per month with diffs viewed file by file product_section: dev product_stage: create product_group: group::code review @@ -15,6 +14,7 @@ distribution: - ce - ee tier: - - free - - premium - - ultimate +- free +- premium +- ultimate +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216175132_i_code_review_user_create_mr_monthly.yml b/config/metrics/counts_28d/20210216175132_i_code_review_user_create_mr_monthly.yml index 99bb06699f5..ef497c0f2bc 100644 --- a/config/metrics/counts_28d/20210216175132_i_code_review_user_create_mr_monthly.yml +++ b/config/metrics/counts_28d/20210216175132_i_code_review_user_create_mr_monthly.yml @@ -14,6 +14,7 @@ distribution: - ce - ee tier: - - free - - premium - - ultimate +- free +- premium +- ultimate +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216175136_i_code_review_user_close_mr_monthly.yml b/config/metrics/counts_28d/20210216175136_i_code_review_user_close_mr_monthly.yml index 05b843d275b..f2e7067d43d 100644 --- a/config/metrics/counts_28d/20210216175136_i_code_review_user_close_mr_monthly.yml +++ b/config/metrics/counts_28d/20210216175136_i_code_review_user_close_mr_monthly.yml @@ -14,6 +14,7 @@ distribution: - ce - ee tier: - - free - - premium - - ultimate +- free +- premium +- ultimate +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216175140_i_code_review_user_reopen_mr_monthly.yml b/config/metrics/counts_28d/20210216175140_i_code_review_user_reopen_mr_monthly.yml index eddb909eb93..e7f3816ca5d 100644 --- a/config/metrics/counts_28d/20210216175140_i_code_review_user_reopen_mr_monthly.yml +++ b/config/metrics/counts_28d/20210216175140_i_code_review_user_reopen_mr_monthly.yml @@ -14,6 +14,7 @@ distribution: - ce - ee tier: - - free - - premium - - ultimate +- free +- premium +- ultimate +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216175144_i_code_review_user_merge_mr_monthly.yml b/config/metrics/counts_28d/20210216175144_i_code_review_user_merge_mr_monthly.yml index 485b47344d0..e299be1ac0b 100644 --- a/config/metrics/counts_28d/20210216175144_i_code_review_user_merge_mr_monthly.yml +++ b/config/metrics/counts_28d/20210216175144_i_code_review_user_merge_mr_monthly.yml @@ -14,6 +14,7 @@ distribution: - ce - ee tier: - - free - - premium - - ultimate +- free +- premium +- ultimate +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216175148_i_code_review_user_create_mr_comment_monthly.yml b/config/metrics/counts_28d/20210216175148_i_code_review_user_create_mr_comment_monthly.yml index 710cd9c05de..4194b2fee18 100644 --- a/config/metrics/counts_28d/20210216175148_i_code_review_user_create_mr_comment_monthly.yml +++ b/config/metrics/counts_28d/20210216175148_i_code_review_user_create_mr_comment_monthly.yml @@ -14,6 +14,7 @@ distribution: - ce - ee tier: - - free - - premium - - ultimate +- free +- premium +- ultimate +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216175152_i_code_review_user_edit_mr_comment_monthly.yml b/config/metrics/counts_28d/20210216175152_i_code_review_user_edit_mr_comment_monthly.yml index 304b0f2f8f3..b7fe37e659e 100644 --- a/config/metrics/counts_28d/20210216175152_i_code_review_user_edit_mr_comment_monthly.yml +++ b/config/metrics/counts_28d/20210216175152_i_code_review_user_edit_mr_comment_monthly.yml @@ -14,6 +14,7 @@ distribution: - ce - ee tier: - - free - - premium - - ultimate +- free +- premium +- ultimate +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216175156_i_code_review_user_remove_mr_comment_monthly.yml b/config/metrics/counts_28d/20210216175156_i_code_review_user_remove_mr_comment_monthly.yml index cfe688f36c5..b48a12ecfe5 100644 --- a/config/metrics/counts_28d/20210216175156_i_code_review_user_remove_mr_comment_monthly.yml +++ b/config/metrics/counts_28d/20210216175156_i_code_review_user_remove_mr_comment_monthly.yml @@ -14,6 +14,7 @@ distribution: - ce - ee tier: - - free - - premium - - ultimate +- free +- premium +- ultimate +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216175405_clusters_applications_cert_managers.yml b/config/metrics/counts_28d/20210216175405_clusters_applications_cert_managers.yml index dd9b9706b7d..b030dfc360f 100644 --- a/config/metrics/counts_28d/20210216175405_clusters_applications_cert_managers.yml +++ b/config/metrics/counts_28d/20210216175405_clusters_applications_cert_managers.yml @@ -9,7 +9,7 @@ product_category: kubernetes_management value_type: number status: data_available time_frame: 28d -data_source: +data_source: distribution: - ce - ee @@ -19,3 +19,4 @@ tier: - ultimate skip_validation: true name: "count_distinct_user_id_from_<adjective describing: '(clusters_applications_cert_managers.status IN (3, 5))'>_clusters_<with>_<adjective describing: '(clusters_applications_cert_managers.status IN (3, 5))'>_clusters_applications_cert_managers" +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216175407_clusters_applications_helm.yml b/config/metrics/counts_28d/20210216175407_clusters_applications_helm.yml index bad028774ed..fd76f35188e 100644 --- a/config/metrics/counts_28d/20210216175407_clusters_applications_helm.yml +++ b/config/metrics/counts_28d/20210216175407_clusters_applications_helm.yml @@ -9,7 +9,7 @@ product_category: kubernetes_management value_type: number status: data_available time_frame: 28d -data_source: +data_source: distribution: - ce - ee @@ -19,3 +19,4 @@ tier: - ultimate skip_validation: true name: "count_distinct_user_id_from_<adjective describing: '(clusters_applications_helm.status IN (3, 5))'>_clusters_<with>_<adjective describing: '(clusters_applications_helm.status IN (3, 5))'>_clusters_applications_helm" +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216175409_clusters_applications_ingress.yml b/config/metrics/counts_28d/20210216175409_clusters_applications_ingress.yml index a9af8e1cd3f..821855f4cd5 100644 --- a/config/metrics/counts_28d/20210216175409_clusters_applications_ingress.yml +++ b/config/metrics/counts_28d/20210216175409_clusters_applications_ingress.yml @@ -9,7 +9,7 @@ product_category: kubernetes_management value_type: number status: data_available time_frame: 28d -data_source: +data_source: distribution: - ce - ee @@ -19,3 +19,4 @@ tier: - ultimate skip_validation: true name: "count_distinct_user_id_from_<adjective describing: '(clusters_applications_ingress.status IN (3, 5))'>_clusters_<with>_<adjective describing: '(clusters_applications_ingress.status IN (3, 5))'>_clusters_applications_ingress" +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216175411_clusters_applications_knative.yml b/config/metrics/counts_28d/20210216175411_clusters_applications_knative.yml index 0d24c5e0fae..67862bc7644 100644 --- a/config/metrics/counts_28d/20210216175411_clusters_applications_knative.yml +++ b/config/metrics/counts_28d/20210216175411_clusters_applications_knative.yml @@ -9,7 +9,7 @@ product_category: kubernetes_management value_type: number status: data_available time_frame: 28d -data_source: +data_source: distribution: - ce - ee @@ -19,3 +19,4 @@ tier: - ultimate skip_validation: true name: "count_distinct_user_id_from_<adjective describing: '(clusters_applications_knative.status IN (3, 5))'>_clusters_<with>_<adjective describing: '(clusters_applications_knative.status IN (3, 5))'>_clusters_applications_knative" +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216175413_clusters_management_project.yml b/config/metrics/counts_28d/20210216175413_clusters_management_project.yml index 71ceb5cd3ea..6b573f81478 100644 --- a/config/metrics/counts_28d/20210216175413_clusters_management_project.yml +++ b/config/metrics/counts_28d/20210216175413_clusters_management_project.yml @@ -18,3 +18,4 @@ tier: - free - premium - ultimate +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216175415_clusters_disabled.yml b/config/metrics/counts_28d/20210216175415_clusters_disabled.yml index b62ee3c733b..e96d62d730c 100644 --- a/config/metrics/counts_28d/20210216175415_clusters_disabled.yml +++ b/config/metrics/counts_28d/20210216175415_clusters_disabled.yml @@ -9,7 +9,7 @@ product_category: kubernetes_management value_type: number status: data_available time_frame: 28d -data_source: +data_source: distribution: - ce - ee @@ -19,3 +19,4 @@ tier: - ultimate skip_validation: true name: "count_distinct_user_id_from_<adjective describing: '(clusters.enabled = FALSE)'>_clusters" +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216175417_clusters_enabled.yml b/config/metrics/counts_28d/20210216175417_clusters_enabled.yml index 15fa74276ff..6cc770051ff 100644 --- a/config/metrics/counts_28d/20210216175417_clusters_enabled.yml +++ b/config/metrics/counts_28d/20210216175417_clusters_enabled.yml @@ -9,7 +9,7 @@ product_category: kubernetes_management value_type: number status: data_available time_frame: 28d -data_source: +data_source: distribution: - ce - ee @@ -19,3 +19,4 @@ tier: - ultimate skip_validation: true name: "count_distinct_user_id_from_<adjective describing: '(clusters.enabled = TRUE)'>_clusters" +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216175419_clusters_platforms_gke.yml b/config/metrics/counts_28d/20210216175419_clusters_platforms_gke.yml index 0f3f4129558..b1b433590b2 100644 --- a/config/metrics/counts_28d/20210216175419_clusters_platforms_gke.yml +++ b/config/metrics/counts_28d/20210216175419_clusters_platforms_gke.yml @@ -9,7 +9,7 @@ product_category: kubernetes_management value_type: number status: data_available time_frame: 28d -data_source: +data_source: distribution: - ce - ee @@ -19,3 +19,4 @@ tier: - ultimate skip_validation: true name: "count_distinct_user_id_from_<adjective describing: '(clusters.provider_type = 1 AND (cluster_providers_gcp.status IN (3)) AND clusters.enabled = TRUE)'>_clusters_<with>_<adjective describing: '(clusters.provider_type = 1 AND (cluster_providers_gcp.status IN (3)) AND clusters.enabled = TRUE)'>_cluster_providers_gcp" +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216175420_clusters_platforms_eks.yml b/config/metrics/counts_28d/20210216175420_clusters_platforms_eks.yml index c6834fd28d9..d4747dcaf91 100644 --- a/config/metrics/counts_28d/20210216175420_clusters_platforms_eks.yml +++ b/config/metrics/counts_28d/20210216175420_clusters_platforms_eks.yml @@ -9,7 +9,7 @@ product_category: kubernetes_management value_type: number status: data_available time_frame: 28d -data_source: +data_source: distribution: - ce - ee @@ -19,3 +19,4 @@ tier: - ultimate skip_validation: true name: "count_distinct_user_id_from_<adjective describing: '(clusters.provider_type = 2 AND (cluster_providers_aws.status IN (3)) AND clusters.enabled = TRUE)'>_clusters_<with>_<adjective describing: '(clusters.provider_type = 2 AND (cluster_providers_aws.status IN (3)) AND clusters.enabled = TRUE)'>_cluster_providers_aws" +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216175422_clusters_platforms_user.yml b/config/metrics/counts_28d/20210216175422_clusters_platforms_user.yml index 1e9e9f02343..374032da3ec 100644 --- a/config/metrics/counts_28d/20210216175422_clusters_platforms_user.yml +++ b/config/metrics/counts_28d/20210216175422_clusters_platforms_user.yml @@ -9,7 +9,7 @@ product_category: kubernetes_management value_type: number status: data_available time_frame: 28d -data_source: +data_source: distribution: - ce - ee @@ -19,3 +19,4 @@ tier: - ultimate skip_validation: true name: "count_distinct_user_id_from_<adjective describing: '(clusters.provider_type = 0 AND clusters.enabled = TRUE)'>_clusters" +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216175424_instance_clusters_disabled.yml b/config/metrics/counts_28d/20210216175424_instance_clusters_disabled.yml index cb1339c8475..11917dbc798 100644 --- a/config/metrics/counts_28d/20210216175424_instance_clusters_disabled.yml +++ b/config/metrics/counts_28d/20210216175424_instance_clusters_disabled.yml @@ -9,7 +9,7 @@ product_category: kubernetes_management value_type: number status: data_available time_frame: 28d -data_source: +data_source: distribution: - ce - ee @@ -19,3 +19,4 @@ tier: - ultimate skip_validation: true name: "count_distinct_user_id_from_<adjective describing: '(clusters.enabled = FALSE AND clusters.cluster_type = 1)'>_clusters" +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216175426_instance_clusters_enabled.yml b/config/metrics/counts_28d/20210216175426_instance_clusters_enabled.yml index eae8c0f7a3c..e649c0dba9a 100644 --- a/config/metrics/counts_28d/20210216175426_instance_clusters_enabled.yml +++ b/config/metrics/counts_28d/20210216175426_instance_clusters_enabled.yml @@ -9,7 +9,7 @@ product_category: kubernetes_management value_type: number status: data_available time_frame: 28d -data_source: +data_source: distribution: - ce - ee @@ -19,3 +19,4 @@ tier: - ultimate skip_validation: true name: "count_distinct_user_id_from_<adjective describing: '(clusters.enabled = TRUE AND clusters.cluster_type = 1)'>_clusters" +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216175428_group_clusters_disabled.yml b/config/metrics/counts_28d/20210216175428_group_clusters_disabled.yml index 4c69b0a7671..f4d7b8ab504 100644 --- a/config/metrics/counts_28d/20210216175428_group_clusters_disabled.yml +++ b/config/metrics/counts_28d/20210216175428_group_clusters_disabled.yml @@ -9,7 +9,7 @@ product_category: kubernetes_management value_type: number status: data_available time_frame: 28d -data_source: +data_source: distribution: - ce - ee @@ -19,3 +19,4 @@ tier: - ultimate skip_validation: true name: "count_distinct_user_id_from_<adjective describing: '(clusters.enabled = FALSE AND clusters.cluster_type = 2)'>_clusters" +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216175430_group_clusters_enabled.yml b/config/metrics/counts_28d/20210216175430_group_clusters_enabled.yml index 3e149eefbd1..89210bba5da 100644 --- a/config/metrics/counts_28d/20210216175430_group_clusters_enabled.yml +++ b/config/metrics/counts_28d/20210216175430_group_clusters_enabled.yml @@ -9,7 +9,7 @@ product_category: kubernetes_management value_type: number status: data_available time_frame: 28d -data_source: +data_source: distribution: - ce - ee @@ -19,3 +19,4 @@ tier: - ultimate skip_validation: true name: "count_distinct_user_id_from_<adjective describing: '(clusters.enabled = TRUE AND clusters.cluster_type = 2)'>_clusters" +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216175432_project_clusters_disabled.yml b/config/metrics/counts_28d/20210216175432_project_clusters_disabled.yml index f93a6925e96..2db09000f86 100644 --- a/config/metrics/counts_28d/20210216175432_project_clusters_disabled.yml +++ b/config/metrics/counts_28d/20210216175432_project_clusters_disabled.yml @@ -9,7 +9,7 @@ product_category: kubernetes_management value_type: number status: data_available time_frame: 28d -data_source: +data_source: distribution: - ce - ee @@ -19,3 +19,4 @@ tier: - ultimate skip_validation: true name: "count_distinct_user_id_from_<adjective describing: '(clusters.enabled = FALSE AND clusters.cluster_type = 3)'>_clusters" +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216175434_project_clusters_enabled.yml b/config/metrics/counts_28d/20210216175434_project_clusters_enabled.yml index bac36e62664..3369612a761 100644 --- a/config/metrics/counts_28d/20210216175434_project_clusters_enabled.yml +++ b/config/metrics/counts_28d/20210216175434_project_clusters_enabled.yml @@ -9,7 +9,7 @@ product_category: kubernetes_management value_type: number status: data_available time_frame: 28d -data_source: +data_source: distribution: - ce - ee @@ -19,3 +19,4 @@ tier: - ultimate skip_validation: true name: "count_distinct_user_id_from_<adjective describing: '(clusters.enabled = TRUE AND clusters.cluster_type = 3)'>_clusters" +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216175542_ci_builds.yml b/config/metrics/counts_28d/20210216175542_ci_builds.yml index d856c0d2fd1..f7a8eca77ec 100644 --- a/config/metrics/counts_28d/20210216175542_ci_builds.yml +++ b/config/metrics/counts_28d/20210216175542_ci_builds.yml @@ -17,4 +17,4 @@ tier: - free - premium - ultimate - +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216175544_ci_external_pipelines.yml b/config/metrics/counts_28d/20210216175544_ci_external_pipelines.yml index 9898d32b111..31c3fbf4ce0 100644 --- a/config/metrics/counts_28d/20210216175544_ci_external_pipelines.yml +++ b/config/metrics/counts_28d/20210216175544_ci_external_pipelines.yml @@ -17,3 +17,4 @@ tier: - free - premium - ultimate +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216175546_ci_internal_pipelines.yml b/config/metrics/counts_28d/20210216175546_ci_internal_pipelines.yml index 319d1d06e62..cb629d4cc6d 100644 --- a/config/metrics/counts_28d/20210216175546_ci_internal_pipelines.yml +++ b/config/metrics/counts_28d/20210216175546_ci_internal_pipelines.yml @@ -17,3 +17,4 @@ tier: - free - premium - ultimate +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216175548_ci_pipeline_config_auto_devops.yml b/config/metrics/counts_28d/20210216175548_ci_pipeline_config_auto_devops.yml index 774387813a3..185161d661d 100644 --- a/config/metrics/counts_28d/20210216175548_ci_pipeline_config_auto_devops.yml +++ b/config/metrics/counts_28d/20210216175548_ci_pipeline_config_auto_devops.yml @@ -17,3 +17,4 @@ tier: - free - premium - ultimate +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216175550_ci_pipeline_config_repository.yml b/config/metrics/counts_28d/20210216175550_ci_pipeline_config_repository.yml index 31e92760c74..128f5eac72a 100644 --- a/config/metrics/counts_28d/20210216175550_ci_pipeline_config_repository.yml +++ b/config/metrics/counts_28d/20210216175550_ci_pipeline_config_repository.yml @@ -17,3 +17,4 @@ tier: - free - premium - ultimate +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216175552_ci_pipeline_schedules.yml b/config/metrics/counts_28d/20210216175552_ci_pipeline_schedules.yml index 5c31532f666..ace1c8d01dc 100644 --- a/config/metrics/counts_28d/20210216175552_ci_pipeline_schedules.yml +++ b/config/metrics/counts_28d/20210216175552_ci_pipeline_schedules.yml @@ -17,3 +17,4 @@ tier: - free - premium - ultimate +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216175554_ci_pipelines.yml b/config/metrics/counts_28d/20210216175554_ci_pipelines.yml index 8af3e4f4248..d6f8c6bcdbf 100644 --- a/config/metrics/counts_28d/20210216175554_ci_pipelines.yml +++ b/config/metrics/counts_28d/20210216175554_ci_pipelines.yml @@ -1,7 +1,7 @@ --- data_category: Optional key_path: usage_activity_by_stage_monthly.verify.ci_pipelines -description: "Distinct users triggering pipelines in a month" +description: "Distinct users triggering pipelines in a month" product_section: ops product_stage: verify product_group: group::pipeline execution @@ -18,3 +18,7 @@ tier: - premium - ultimate - free +performance_indicator_type: +- smau +- gmau +- paid_gmau diff --git a/config/metrics/counts_28d/20210216175556_ci_triggers.yml b/config/metrics/counts_28d/20210216175556_ci_triggers.yml index c02acdfeed6..f4f94c25df9 100644 --- a/config/metrics/counts_28d/20210216175556_ci_triggers.yml +++ b/config/metrics/counts_28d/20210216175556_ci_triggers.yml @@ -17,3 +17,4 @@ tier: - free - premium - ultimate +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216175616_user_dast_jobs.yml b/config/metrics/counts_28d/20210216175616_user_dast_jobs.yml index 6b6503e8c34..ef0454089c5 100644 --- a/config/metrics/counts_28d/20210216175616_user_dast_jobs.yml +++ b/config/metrics/counts_28d/20210216175616_user_dast_jobs.yml @@ -9,9 +9,12 @@ product_category: dynamic_application_security_testing value_type: number status: data_available time_frame: 28d -data_source: +data_source: distribution: - ce tier: - free skip_validation: true +performance_indicator_type: +- gmau +- paid_gmau diff --git a/config/metrics/counts_28d/20210216175618_dast_pipeline.yml b/config/metrics/counts_28d/20210216175618_dast_pipeline.yml index a6c78293691..f7295051f8f 100644 --- a/config/metrics/counts_28d/20210216175618_dast_pipeline.yml +++ b/config/metrics/counts_28d/20210216175618_dast_pipeline.yml @@ -9,9 +9,10 @@ product_category: dynamic_application_security_testing value_type: number status: data_available time_frame: 28d -data_source: +data_source: distribution: - ce tier: - ultimate skip_validation: true +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216180308_personal_snippets.yml b/config/metrics/counts_28d/20210216180308_personal_snippets.yml index b36c6eddc02..2d6364cb49e 100644 --- a/config/metrics/counts_28d/20210216180308_personal_snippets.yml +++ b/config/metrics/counts_28d/20210216180308_personal_snippets.yml @@ -17,3 +17,4 @@ tier: - free - premium - ultimate +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216180310_project_snippets.yml b/config/metrics/counts_28d/20210216180310_project_snippets.yml index c2b9edd4ece..2e9a55b8237 100644 --- a/config/metrics/counts_28d/20210216180310_project_snippets.yml +++ b/config/metrics/counts_28d/20210216180310_project_snippets.yml @@ -17,3 +17,4 @@ tier: - free - premium - ultimate +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216180312_snippets.yml b/config/metrics/counts_28d/20210216180312_snippets.yml index 1d8b2e3725b..89260564d97 100644 --- a/config/metrics/counts_28d/20210216180312_snippets.yml +++ b/config/metrics/counts_28d/20210216180312_snippets.yml @@ -17,3 +17,4 @@ tier: - free - premium - ultimate +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216180317_snippets.yml b/config/metrics/counts_28d/20210216180317_snippets.yml index 169b79e7316..690827f5fbd 100644 --- a/config/metrics/counts_28d/20210216180317_snippets.yml +++ b/config/metrics/counts_28d/20210216180317_snippets.yml @@ -2,7 +2,7 @@ data_category: Optional key_path: usage_activity_by_stage_monthly.create.snippets name: count_distinct_author_id_from_snippets -description: Count of distinct author_id from snippets for last 28 days +description: Count of distinct author_id from snippets for last 28 days product_section: dev product_stage: create product_group: group::editor @@ -18,3 +18,4 @@ tier: - free - premium - ultimate +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216180319_action_monthly_active_users_web_ide_edit.yml b/config/metrics/counts_28d/20210216180319_action_monthly_active_users_web_ide_edit.yml index d66a7c0a63c..91d086b3f27 100644 --- a/config/metrics/counts_28d/20210216180319_action_monthly_active_users_web_ide_edit.yml +++ b/config/metrics/counts_28d/20210216180319_action_monthly_active_users_web_ide_edit.yml @@ -1,7 +1,7 @@ --- data_category: Optional key_path: usage_activity_by_stage_monthly.create.action_monthly_active_users_web_ide_edit -description: Number of users editing using web IDE +description: Number of users editing using web IDE product_section: dev product_stage: create product_group: group::editor @@ -17,3 +17,4 @@ tier: - free - premium - ultimate +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216180321_action_monthly_active_users_sfe_edit.yml b/config/metrics/counts_28d/20210216180321_action_monthly_active_users_sfe_edit.yml index df023578215..2cd4666cd4a 100644 --- a/config/metrics/counts_28d/20210216180321_action_monthly_active_users_sfe_edit.yml +++ b/config/metrics/counts_28d/20210216180321_action_monthly_active_users_sfe_edit.yml @@ -17,3 +17,4 @@ tier: - free - premium - ultimate +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216180323_action_monthly_active_users_snippet_editor_edit.yml b/config/metrics/counts_28d/20210216180323_action_monthly_active_users_snippet_editor_edit.yml index 164128a6307..a48d6e7c263 100644 --- a/config/metrics/counts_28d/20210216180323_action_monthly_active_users_snippet_editor_edit.yml +++ b/config/metrics/counts_28d/20210216180323_action_monthly_active_users_snippet_editor_edit.yml @@ -17,3 +17,4 @@ tier: - free - premium - ultimate +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216180325_action_monthly_active_users_sse_edit.yml b/config/metrics/counts_28d/20210216180325_action_monthly_active_users_sse_edit.yml index e9e408bb1f6..020e5b68e59 100644 --- a/config/metrics/counts_28d/20210216180325_action_monthly_active_users_sse_edit.yml +++ b/config/metrics/counts_28d/20210216180325_action_monthly_active_users_sse_edit.yml @@ -17,3 +17,4 @@ tier: - free - premium - ultimate +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216180327_action_monthly_active_users_ide_edit.yml b/config/metrics/counts_28d/20210216180327_action_monthly_active_users_ide_edit.yml index 3d123932ab2..0e141a85463 100644 --- a/config/metrics/counts_28d/20210216180327_action_monthly_active_users_ide_edit.yml +++ b/config/metrics/counts_28d/20210216180327_action_monthly_active_users_ide_edit.yml @@ -17,3 +17,6 @@ tier: - free - premium - ultimate +performance_indicator_type: +- gmau +- paid_gmau diff --git a/config/metrics/counts_28d/20210216180330_g_edit_by_web_ide_monthly.yml b/config/metrics/counts_28d/20210216180330_g_edit_by_web_ide_monthly.yml index 519d51e1148..c5e0d1a1128 100644 --- a/config/metrics/counts_28d/20210216180330_g_edit_by_web_ide_monthly.yml +++ b/config/metrics/counts_28d/20210216180330_g_edit_by_web_ide_monthly.yml @@ -13,7 +13,7 @@ data_source: redis_hll instrumentation_class: RedisHLLMetric options: events: - - g_edit_by_web_ide + - g_edit_by_web_ide distribution: - ce - ee @@ -21,3 +21,4 @@ tier: - free - premium - ultimate +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216180334_g_edit_by_sfe_monthly.yml b/config/metrics/counts_28d/20210216180334_g_edit_by_sfe_monthly.yml index e0d48f56bd3..113d9343e78 100644 --- a/config/metrics/counts_28d/20210216180334_g_edit_by_sfe_monthly.yml +++ b/config/metrics/counts_28d/20210216180334_g_edit_by_sfe_monthly.yml @@ -13,7 +13,7 @@ data_source: redis_hll instrumentation_class: RedisHLLMetric options: events: - - g_edit_by_sfe + - g_edit_by_sfe distribution: - ce - ee @@ -21,3 +21,4 @@ tier: - free - premium - ultimate +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216180338_g_edit_by_snippet_ide_monthly.yml b/config/metrics/counts_28d/20210216180338_g_edit_by_snippet_ide_monthly.yml index d41df97ffba..70a509045f0 100644 --- a/config/metrics/counts_28d/20210216180338_g_edit_by_snippet_ide_monthly.yml +++ b/config/metrics/counts_28d/20210216180338_g_edit_by_snippet_ide_monthly.yml @@ -13,7 +13,7 @@ data_source: redis_hll instrumentation_class: RedisHLLMetric options: events: - - g_edit_by_snippet_ide + - g_edit_by_snippet_ide distribution: - ce - ee @@ -21,3 +21,4 @@ tier: - free - premium - ultimate +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216180341_ide_edit_total_unique_counts_monthly.yml b/config/metrics/counts_28d/20210216180341_ide_edit_total_unique_counts_monthly.yml index ae276335097..b2744df874d 100644 --- a/config/metrics/counts_28d/20210216180341_ide_edit_total_unique_counts_monthly.yml +++ b/config/metrics/counts_28d/20210216180341_ide_edit_total_unique_counts_monthly.yml @@ -13,10 +13,10 @@ data_source: redis_hll instrumentation_class: RedisHLLMetric options: events: - - g_edit_by_web_ide - - g_edit_by_sfe - - g_edit_by_snippet_ide - - g_edit_by_sse + - g_edit_by_web_ide + - g_edit_by_sfe + - g_edit_by_snippet_ide + - g_edit_by_sse distribution: - ce - ee @@ -24,3 +24,4 @@ tier: - free - premium - ultimate +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216180355_user_api_fuzzing_jobs.yml b/config/metrics/counts_28d/20210216180355_user_api_fuzzing_jobs.yml index aa02ce01a0d..9bc7e8b0772 100644 --- a/config/metrics/counts_28d/20210216180355_user_api_fuzzing_jobs.yml +++ b/config/metrics/counts_28d/20210216180355_user_api_fuzzing_jobs.yml @@ -5,13 +5,14 @@ description: Count of API Fuzzing jobs by job name product_section: sec product_stage: secure product_group: group::fuzz testing -product_category: +product_category: value_type: number status: data_available time_frame: 28d -data_source: +data_source: distribution: - ce tier: - free skip_validation: true +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216180424_i_search_total_monthly.yml b/config/metrics/counts_28d/20210216180424_i_search_total_monthly.yml index dfec960830d..7f32bc22606 100644 --- a/config/metrics/counts_28d/20210216180424_i_search_total_monthly.yml +++ b/config/metrics/counts_28d/20210216180424_i_search_total_monthly.yml @@ -13,7 +13,7 @@ data_source: redis_hll instrumentation_class: RedisHLLMetric options: events: - - i_search_total + - i_search_total distribution: - ce - ee @@ -21,3 +21,4 @@ tier: - free - premium - ultimate +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216180431_search_total_unique_counts_monthly.yml b/config/metrics/counts_28d/20210216180431_search_total_unique_counts_monthly.yml index 2bb0d4edc0d..fbfc43eb553 100644 --- a/config/metrics/counts_28d/20210216180431_search_total_unique_counts_monthly.yml +++ b/config/metrics/counts_28d/20210216180431_search_total_unique_counts_monthly.yml @@ -13,9 +13,9 @@ data_source: redis_hll instrumentation_class: RedisHLLMetric options: events: - - i_search_total - - i_search_advanced - - i_search_paid + - i_search_total + - i_search_advanced + - i_search_paid distribution: - ce - ee @@ -23,3 +23,5 @@ tier: - free - premium - ultimate +performance_indicator_type: +- gmau diff --git a/config/metrics/counts_28d/20210216180509_incident_management_alerts_total_unique_counts.yml b/config/metrics/counts_28d/20210216180509_incident_management_alerts_total_unique_counts.yml index 0d784481951..00cc03ebd88 100644 --- a/config/metrics/counts_28d/20210216180509_incident_management_alerts_total_unique_counts.yml +++ b/config/metrics/counts_28d/20210216180509_incident_management_alerts_total_unique_counts.yml @@ -17,3 +17,4 @@ tier: - free - premium - ultimate +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216180511_incident_management_incidents_total_unique_counts.yml b/config/metrics/counts_28d/20210216180511_incident_management_incidents_total_unique_counts.yml index 58fd23391b0..1928f834fe0 100644 --- a/config/metrics/counts_28d/20210216180511_incident_management_incidents_total_unique_counts.yml +++ b/config/metrics/counts_28d/20210216180511_incident_management_incidents_total_unique_counts.yml @@ -17,3 +17,4 @@ tier: - free - premium - ultimate +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216180524_projects_with_incidents.yml b/config/metrics/counts_28d/20210216180524_projects_with_incidents.yml index 3046bf5f8a8..12739d124f4 100644 --- a/config/metrics/counts_28d/20210216180524_projects_with_incidents.yml +++ b/config/metrics/counts_28d/20210216180524_projects_with_incidents.yml @@ -17,3 +17,4 @@ tier: - free - premium - ultimate +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216180526_projects_with_alert_incidents.yml b/config/metrics/counts_28d/20210216180526_projects_with_alert_incidents.yml index 3ac5ec37317..7626b56bc11 100644 --- a/config/metrics/counts_28d/20210216180526_projects_with_alert_incidents.yml +++ b/config/metrics/counts_28d/20210216180526_projects_with_alert_incidents.yml @@ -18,3 +18,4 @@ tier: - free - premium - ultimate +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216180530_incident_management_alert_status_changed_monthly.yml b/config/metrics/counts_28d/20210216180530_incident_management_alert_status_changed_monthly.yml index 9d1a1327a99..8cdfa4851ae 100644 --- a/config/metrics/counts_28d/20210216180530_incident_management_alert_status_changed_monthly.yml +++ b/config/metrics/counts_28d/20210216180530_incident_management_alert_status_changed_monthly.yml @@ -5,7 +5,7 @@ description: Count of unique users changing alert's status changes per month product_section: ops product_stage: monitor product_group: group::monitor -product_category: +product_category: value_type: number status: data_available time_frame: 28d @@ -21,3 +21,4 @@ tier: - free - premium - ultimate +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216180533_incident_management_alert_assigned_monthly.yml b/config/metrics/counts_28d/20210216180533_incident_management_alert_assigned_monthly.yml index 8d35a78d5a5..3a8ff85518b 100644 --- a/config/metrics/counts_28d/20210216180533_incident_management_alert_assigned_monthly.yml +++ b/config/metrics/counts_28d/20210216180533_incident_management_alert_assigned_monthly.yml @@ -5,7 +5,7 @@ description: Count of unique users assigning an alert per month product_section: ops product_stage: monitor product_group: group::monitor -product_category: +product_category: value_type: number status: data_available time_frame: 28d @@ -21,3 +21,4 @@ tier: - free - premium - ultimate +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216180537_incident_management_alert_todo_monthly.yml b/config/metrics/counts_28d/20210216180537_incident_management_alert_todo_monthly.yml index 56ae20c7ebd..d056f6e5883 100644 --- a/config/metrics/counts_28d/20210216180537_incident_management_alert_todo_monthly.yml +++ b/config/metrics/counts_28d/20210216180537_incident_management_alert_todo_monthly.yml @@ -5,7 +5,7 @@ description: Count of unique users adding alerts to the TODO list per month product_section: ops product_stage: monitor product_group: group::monitor -product_category: +product_category: value_type: number status: data_available time_frame: 28d @@ -21,3 +21,4 @@ tier: - free - premium - ultimate +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216180541_incident_management_incident_created_monthly.yml b/config/metrics/counts_28d/20210216180541_incident_management_incident_created_monthly.yml index 1c3c339c710..6fa9855a966 100644 --- a/config/metrics/counts_28d/20210216180541_incident_management_incident_created_monthly.yml +++ b/config/metrics/counts_28d/20210216180541_incident_management_incident_created_monthly.yml @@ -5,7 +5,7 @@ description: Count of unique users creating incidents per month product_section: ops product_stage: monitor product_group: group::monitor -product_category: +product_category: value_type: number status: data_available time_frame: 28d @@ -21,3 +21,4 @@ tier: - free - premium - ultimate +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216180545_incident_management_incident_reopened_monthly.yml b/config/metrics/counts_28d/20210216180545_incident_management_incident_reopened_monthly.yml index 9f1d199dd1f..e17d074f243 100644 --- a/config/metrics/counts_28d/20210216180545_incident_management_incident_reopened_monthly.yml +++ b/config/metrics/counts_28d/20210216180545_incident_management_incident_reopened_monthly.yml @@ -5,7 +5,7 @@ description: Count of unique users reopening incidents per month product_section: ops product_stage: monitor product_group: group::monitor -product_category: +product_category: value_type: number status: data_available time_frame: 28d @@ -21,3 +21,4 @@ tier: - free - premium - ultimate +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216180548_incident_management_incident_closed_monthly.yml b/config/metrics/counts_28d/20210216180548_incident_management_incident_closed_monthly.yml index bcdd4e9a1f5..73c595574d4 100644 --- a/config/metrics/counts_28d/20210216180548_incident_management_incident_closed_monthly.yml +++ b/config/metrics/counts_28d/20210216180548_incident_management_incident_closed_monthly.yml @@ -5,7 +5,7 @@ description: Count of users closing incidents per month product_section: ops product_stage: monitor product_group: group::monitor -product_category: +product_category: value_type: number status: data_available time_frame: 28d @@ -21,3 +21,4 @@ tier: - free - premium - ultimate +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216180552_incident_management_incident_assigned_monthly.yml b/config/metrics/counts_28d/20210216180552_incident_management_incident_assigned_monthly.yml index 01fb17158b6..9201fba4905 100644 --- a/config/metrics/counts_28d/20210216180552_incident_management_incident_assigned_monthly.yml +++ b/config/metrics/counts_28d/20210216180552_incident_management_incident_assigned_monthly.yml @@ -5,7 +5,7 @@ description: Count of users assigning incidents per month product_section: ops product_stage: monitor product_group: group::monitor -product_category: +product_category: value_type: number status: data_available time_frame: 28d @@ -21,3 +21,4 @@ tier: - free - premium - ultimate +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216180556_incident_management_incident_todo_monthly.yml b/config/metrics/counts_28d/20210216180556_incident_management_incident_todo_monthly.yml index bd4c919018c..5d4a04a823c 100644 --- a/config/metrics/counts_28d/20210216180556_incident_management_incident_todo_monthly.yml +++ b/config/metrics/counts_28d/20210216180556_incident_management_incident_todo_monthly.yml @@ -5,7 +5,7 @@ description: Count of unique users adding incidents to the TODO list per month product_section: ops product_stage: monitor product_group: group::monitor -product_category: +product_category: value_type: number status: data_available time_frame: 28d @@ -21,3 +21,4 @@ tier: - free - premium - ultimate +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216180559_incident_management_incident_comment_monthly.yml b/config/metrics/counts_28d/20210216180559_incident_management_incident_comment_monthly.yml index f4846c3a820..fb0b8b1c784 100644 --- a/config/metrics/counts_28d/20210216180559_incident_management_incident_comment_monthly.yml +++ b/config/metrics/counts_28d/20210216180559_incident_management_incident_comment_monthly.yml @@ -5,7 +5,7 @@ description: Count of unique users adding comments per month on incidents product_section: ops product_stage: monitor product_group: group::monitor -product_category: +product_category: value_type: number status: data_available time_frame: 28d @@ -21,3 +21,4 @@ tier: - free - premium - ultimate +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216180603_incident_management_incident_zoom_meeting_monthly.yml b/config/metrics/counts_28d/20210216180603_incident_management_incident_zoom_meeting_monthly.yml index 989d0b2ece3..e71c7b597c3 100644 --- a/config/metrics/counts_28d/20210216180603_incident_management_incident_zoom_meeting_monthly.yml +++ b/config/metrics/counts_28d/20210216180603_incident_management_incident_zoom_meeting_monthly.yml @@ -5,7 +5,7 @@ description: Count of users creating Zoom meetings about incidents per month product_section: ops product_stage: monitor product_group: group::monitor -product_category: +product_category: value_type: number status: data_available time_frame: 28d @@ -21,3 +21,4 @@ tier: - free - premium - ultimate +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216180611_incident_management_incident_relate_monthly.yml b/config/metrics/counts_28d/20210216180611_incident_management_incident_relate_monthly.yml index 1609cabbe7a..906014bccf5 100644 --- a/config/metrics/counts_28d/20210216180611_incident_management_incident_relate_monthly.yml +++ b/config/metrics/counts_28d/20210216180611_incident_management_incident_relate_monthly.yml @@ -5,7 +5,7 @@ description: Count of unique users adding issues per month that are related to a product_section: ops product_stage: monitor product_group: group::monitor -product_category: +product_category: value_type: number status: data_available time_frame: 28d @@ -21,3 +21,4 @@ tier: - free - premium - ultimate +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216180614_incident_management_incident_unrelate_monthly.yml b/config/metrics/counts_28d/20210216180614_incident_management_incident_unrelate_monthly.yml index 8c14ea79a40..f8d9cfb416a 100644 --- a/config/metrics/counts_28d/20210216180614_incident_management_incident_unrelate_monthly.yml +++ b/config/metrics/counts_28d/20210216180614_incident_management_incident_unrelate_monthly.yml @@ -5,7 +5,7 @@ description: Count of users removing issues that are related to an incident per product_section: ops product_stage: monitor product_group: group::monitor -product_category: +product_category: value_type: number status: data_available time_frame: 28d @@ -21,3 +21,4 @@ tier: - free - premium - ultimate +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216180618_incident_management_incident_change_confidential_monthly.yml b/config/metrics/counts_28d/20210216180618_incident_management_incident_change_confidential_monthly.yml index ac884241332..6eb5f7b7757 100644 --- a/config/metrics/counts_28d/20210216180618_incident_management_incident_change_confidential_monthly.yml +++ b/config/metrics/counts_28d/20210216180618_incident_management_incident_change_confidential_monthly.yml @@ -5,7 +5,7 @@ description: Count of users changing incidents to confidential per month product_section: ops product_stage: monitor product_group: group::monitor -product_category: +product_category: value_type: number status: data_available time_frame: 28d @@ -21,3 +21,4 @@ tier: - free - premium - ultimate +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216180622_incident_management_total_unique_counts_monthly.yml b/config/metrics/counts_28d/20210216180622_incident_management_total_unique_counts_monthly.yml index 851528087b3..aabf78c5a20 100644 --- a/config/metrics/counts_28d/20210216180622_incident_management_total_unique_counts_monthly.yml +++ b/config/metrics/counts_28d/20210216180622_incident_management_total_unique_counts_monthly.yml @@ -5,7 +5,7 @@ description: Count of unique users performing events related with incidents per product_section: ops product_stage: monitor product_group: group::monitor -product_category: +product_category: value_type: number status: data_available time_frame: 28d @@ -34,3 +34,7 @@ tier: - free - premium - ultimate +performance_indicator_type: +- smau +- gmau +- paid_gmau diff --git a/config/metrics/counts_28d/20210216180625_incident_management_alert_create_incident_monthly.yml b/config/metrics/counts_28d/20210216180625_incident_management_alert_create_incident_monthly.yml index 4dc304d685f..e5c543e7ea7 100644 --- a/config/metrics/counts_28d/20210216180625_incident_management_alert_create_incident_monthly.yml +++ b/config/metrics/counts_28d/20210216180625_incident_management_alert_create_incident_monthly.yml @@ -22,3 +22,4 @@ tier: - free - premium - ultimate +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216180731_projects_imported_from_github.yml b/config/metrics/counts_28d/20210216180731_projects_imported_from_github.yml index 1ac24ccf6c8..afeec6c1e9c 100644 --- a/config/metrics/counts_28d/20210216180731_projects_imported_from_github.yml +++ b/config/metrics/counts_28d/20210216180731_projects_imported_from_github.yml @@ -17,3 +17,4 @@ tier: - free - premium - ultimate +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216180745_action_monthly_active_users_design_management.yml b/config/metrics/counts_28d/20210216180745_action_monthly_active_users_design_management.yml index 1468589281d..eec12d91eb7 100644 --- a/config/metrics/counts_28d/20210216180745_action_monthly_active_users_design_management.yml +++ b/config/metrics/counts_28d/20210216180745_action_monthly_active_users_design_management.yml @@ -17,3 +17,5 @@ tier: - free - premium - ultimate +performance_indicator_type: +- paid_gmau diff --git a/config/metrics/counts_28d/20210216180747_action_monthly_active_users_wiki_repo.yml b/config/metrics/counts_28d/20210216180747_action_monthly_active_users_wiki_repo.yml index fa650effab3..c8b4e7bc9ad 100644 --- a/config/metrics/counts_28d/20210216180747_action_monthly_active_users_wiki_repo.yml +++ b/config/metrics/counts_28d/20210216180747_action_monthly_active_users_wiki_repo.yml @@ -17,3 +17,4 @@ tier: - free - premium - ultimate +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216180814_events.yml b/config/metrics/counts_28d/20210216180814_events.yml index 745a3c0066a..6d30965425e 100644 --- a/config/metrics/counts_28d/20210216180814_events.yml +++ b/config/metrics/counts_28d/20210216180814_events.yml @@ -1,18 +1,20 @@ --- data_category: Optional key_path: usage_activity_by_stage_monthly.manage.events -description: +description: product_section: dev -product_stage: +product_stage: product_group: group::manage -product_category: +product_category: value_type: number status: data_available time_frame: 28d -data_source: +data_source: distribution: - ce - ee tier: - free skip_validation: true +performance_indicator_type: +- umau diff --git a/config/metrics/counts_28d/20210216180816_groups.yml b/config/metrics/counts_28d/20210216180816_groups.yml index 0ae86d09c13..e47143bc3c9 100644 --- a/config/metrics/counts_28d/20210216180816_groups.yml +++ b/config/metrics/counts_28d/20210216180816_groups.yml @@ -17,3 +17,4 @@ tier: - free - premium - ultimate +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216180818_users_created.yml b/config/metrics/counts_28d/20210216180818_users_created.yml index 40e881638bb..ddaf652960d 100644 --- a/config/metrics/counts_28d/20210216180818_users_created.yml +++ b/config/metrics/counts_28d/20210216180818_users_created.yml @@ -17,3 +17,4 @@ tier: - free - premium - ultimate +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216180955_projects_with_prometheus_alerts.yml b/config/metrics/counts_28d/20210216180955_projects_with_prometheus_alerts.yml index aa0191ff47f..ca6883c4967 100644 --- a/config/metrics/counts_28d/20210216180955_projects_with_prometheus_alerts.yml +++ b/config/metrics/counts_28d/20210216180955_projects_with_prometheus_alerts.yml @@ -3,7 +3,7 @@ data_category: Optional key_path: usage_activity_by_stage_monthly.configure.projects_with_prometheus_alerts description: Projects with Prometheus alerting enabled product_section: ops -product_stage: +product_stage: product_group: group::monitor product_category: metrics value_type: number @@ -12,9 +12,10 @@ milestone_removed: '14.0' time_frame: 28d data_source: database distribution: - - ce - - ee +- ce +- ee tier: - - free - - premium - - ultimate +- free +- premium +- ultimate +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216180956_clusters.yml b/config/metrics/counts_28d/20210216180956_clusters.yml index 2fb39849c11..be5f5d9be35 100644 --- a/config/metrics/counts_28d/20210216180956_clusters.yml +++ b/config/metrics/counts_28d/20210216180956_clusters.yml @@ -3,7 +3,7 @@ data_category: Optional key_path: usage_activity_by_stage_monthly.monitor.clusters description: Count users creating clusters in last 28 days. product_section: ops -product_stage: +product_stage: product_group: group::monitor product_category: metrics value_type: number @@ -11,9 +11,10 @@ status: data_available time_frame: 28d data_source: database distribution: - - ce - - ee +- ce +- ee tier: - - free - - premium - - ultimate +- free +- premium +- ultimate +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216180958_clusters_applications_prometheus.yml b/config/metrics/counts_28d/20210216180958_clusters_applications_prometheus.yml index ef305404ad1..18ae674dcc6 100644 --- a/config/metrics/counts_28d/20210216180958_clusters_applications_prometheus.yml +++ b/config/metrics/counts_28d/20210216180958_clusters_applications_prometheus.yml @@ -3,7 +3,7 @@ data_category: Optional key_path: usage_activity_by_stage_monthly.monitor.clusters_applications_prometheus description: Users creating clusters with Prometheus enabled in last 28 days. product_section: ops -product_stage: +product_stage: product_group: group::monitor product_category: metrics value_type: number @@ -11,9 +11,10 @@ status: data_available time_frame: 28d data_source: database distribution: - - ce - - ee +- ce +- ee tier: - - free - - premium - - ultimate +- free +- premium +- ultimate +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216181000_operations_dashboard_default_dashboard.yml b/config/metrics/counts_28d/20210216181000_operations_dashboard_default_dashboard.yml index 6d57a5c0ce1..219b2b4ffd5 100644 --- a/config/metrics/counts_28d/20210216181000_operations_dashboard_default_dashboard.yml +++ b/config/metrics/counts_28d/20210216181000_operations_dashboard_default_dashboard.yml @@ -3,7 +3,7 @@ data_category: Optional key_path: usage_activity_by_stage_monthly.monitor.operations_dashboard_default_dashboard description: Active users with enabled operations dashboard product_section: ops -product_stage: +product_stage: product_group: group::monitor product_category: metrics value_type: number @@ -11,9 +11,10 @@ status: data_available time_frame: 28d data_source: database distribution: - - ce - - ee +- ce +- ee tier: - - free - - premium - - ultimate +- free +- premium +- ultimate +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216181002_projects_with_tracing_enabled.yml b/config/metrics/counts_28d/20210216181002_projects_with_tracing_enabled.yml index 13cf98b9a2a..b5798063805 100644 --- a/config/metrics/counts_28d/20210216181002_projects_with_tracing_enabled.yml +++ b/config/metrics/counts_28d/20210216181002_projects_with_tracing_enabled.yml @@ -3,7 +3,7 @@ data_category: Optional key_path: usage_activity_by_stage_monthly.monitor.projects_with_tracing_enabled description: Projects with tracing enabled product_section: ops -product_stage: +product_stage: product_group: group::monitor product_category: tracing value_type: number @@ -11,9 +11,10 @@ status: data_available time_frame: 28d data_source: database distribution: - - ce - - ee +- ce +- ee tier: - - free - - premium - - ultimate +- free +- premium +- ultimate +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216181004_projects_with_error_tracking_enabled.yml b/config/metrics/counts_28d/20210216181004_projects_with_error_tracking_enabled.yml index 5b67dcc38d7..446bd17478f 100644 --- a/config/metrics/counts_28d/20210216181004_projects_with_error_tracking_enabled.yml +++ b/config/metrics/counts_28d/20210216181004_projects_with_error_tracking_enabled.yml @@ -3,7 +3,7 @@ data_category: Optional key_path: usage_activity_by_stage_monthly.monitor.projects_with_error_tracking_enabled description: Count of users creating projects with error tracking enabled. product_section: ops -product_stage: +product_stage: product_group: group::monitor product_category: metrics value_type: number @@ -11,9 +11,10 @@ status: data_available time_frame: 28d data_source: database distribution: - - ce - - ee +- ce +- ee tier: - - free - - premium - - ultimate +- free +- premium +- ultimate +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216181006_operations_dashboard_users_with_projects_added.yml b/config/metrics/counts_28d/20210216181006_operations_dashboard_users_with_projects_added.yml index 5fde9570540..2954560a8ca 100644 --- a/config/metrics/counts_28d/20210216181006_operations_dashboard_users_with_projects_added.yml +++ b/config/metrics/counts_28d/20210216181006_operations_dashboard_users_with_projects_added.yml @@ -3,7 +3,7 @@ data_category: Optional key_path: usage_activity_by_stage_monthly.monitor.operations_dashboard_users_with_projects_added description: Active users with projects on operations dashboard product_section: ops -product_stage: +product_stage: product_group: group::monitor product_category: metrics value_type: number @@ -11,9 +11,10 @@ status: data_available time_frame: 28d data_source: database distribution: - - ce - - ee +- ce +- ee tier: - - free - - premium - - ultimate +- free +- premium +- ultimate +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216181050_packages.yml b/config/metrics/counts_28d/20210216181050_packages.yml index d818f90c7a0..1603e8f8568 100644 --- a/config/metrics/counts_28d/20210216181050_packages.yml +++ b/config/metrics/counts_28d/20210216181050_packages.yml @@ -17,3 +17,4 @@ tier: - free - premium - ultimate +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216181057_projects_with_packages.yml b/config/metrics/counts_28d/20210216181057_projects_with_packages.yml index bd8ec61b39f..5d106bcb3a4 100644 --- a/config/metrics/counts_28d/20210216181057_projects_with_packages.yml +++ b/config/metrics/counts_28d/20210216181057_projects_with_packages.yml @@ -17,3 +17,4 @@ tier: - free - premium - ultimate +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216181139_issues.yml b/config/metrics/counts_28d/20210216181139_issues.yml index 8264ea12af0..b3080dbde7c 100644 --- a/config/metrics/counts_28d/20210216181139_issues.yml +++ b/config/metrics/counts_28d/20210216181139_issues.yml @@ -18,3 +18,4 @@ tier: - free - premium - ultimate +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216181141_notes.yml b/config/metrics/counts_28d/20210216181141_notes.yml index d041f9b8685..92ffc9ab5ef 100644 --- a/config/metrics/counts_28d/20210216181141_notes.yml +++ b/config/metrics/counts_28d/20210216181141_notes.yml @@ -9,11 +9,12 @@ product_category: issue_tracking value_type: number status: data_available time_frame: 28d -data_source: database +data_source: database distribution: - ce -- ee +- ee tier: - free -- premium +- premium - ultimate +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216181143_projects.yml b/config/metrics/counts_28d/20210216181143_projects.yml index a367ade1802..2ad6f985b4b 100644 --- a/config/metrics/counts_28d/20210216181143_projects.yml +++ b/config/metrics/counts_28d/20210216181143_projects.yml @@ -3,7 +3,7 @@ data_category: Optional key_path: usage_activity_by_stage_monthly.plan.projects description: Count of MAU creating projects product_section: dev -product_stage: plan +product_stage: plan product_group: group::project management product_category: projects value_type: number @@ -12,8 +12,9 @@ time_frame: 28d data_source: database distribution: - ce -- ee +- ee tier: - free -- premium -- ultimate +- premium +- ultimate +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216181145_todos.yml b/config/metrics/counts_28d/20210216181145_todos.yml index 43a19351939..88aece81a3e 100644 --- a/config/metrics/counts_28d/20210216181145_todos.yml +++ b/config/metrics/counts_28d/20210216181145_todos.yml @@ -5,15 +5,16 @@ description: Count of MAU creating todos product_section: dev product_stage: plan product_group: group::project management -product_category: issue_tracking +product_category: issue_tracking value_type: number status: data_available time_frame: 28d -data_source: database +data_source: database distribution: - ce -- ee +- ee tier: - free -- premium +- premium - ultimate +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216181147_service_desk_enabled_projects.yml b/config/metrics/counts_28d/20210216181147_service_desk_enabled_projects.yml index 708df218357..c26e76645f8 100644 --- a/config/metrics/counts_28d/20210216181147_service_desk_enabled_projects.yml +++ b/config/metrics/counts_28d/20210216181147_service_desk_enabled_projects.yml @@ -1,18 +1,19 @@ --- data_category: Optional key_path: usage_activity_by_stage_monthly.plan.service_desk_enabled_projects -description: +description: product_section: dev -product_stage: +product_stage: product_group: group::plan -product_category: +product_category: value_type: number status: data_available time_frame: 28d -data_source: +data_source: distribution: - ce - ee tier: - free skip_validation: true +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216181148_service_desk_issues.yml b/config/metrics/counts_28d/20210216181148_service_desk_issues.yml index 0a8bc14a581..6dcf7127148 100644 --- a/config/metrics/counts_28d/20210216181148_service_desk_issues.yml +++ b/config/metrics/counts_28d/20210216181148_service_desk_issues.yml @@ -1,18 +1,19 @@ --- data_category: Operational key_path: usage_activity_by_stage_monthly.plan.service_desk_issues -description: +description: product_section: dev -product_stage: +product_stage: product_group: group::plan -product_category: +product_category: value_type: number status: data_available time_frame: 28d -data_source: +data_source: distribution: - ce - ee tier: - free skip_validation: true +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216181150_projects_jira_active.yml b/config/metrics/counts_28d/20210216181150_projects_jira_active.yml index 60be7632ceb..51991dada22 100644 --- a/config/metrics/counts_28d/20210216181150_projects_jira_active.yml +++ b/config/metrics/counts_28d/20210216181150_projects_jira_active.yml @@ -1,17 +1,18 @@ --- data_category: Operational key_path: usage_activity_by_stage_monthly.plan.projects_jira_active -description: +description: product_section: dev -product_stage: +product_stage: product_group: group::plan -product_category: +product_category: value_type: number status: data_available time_frame: 28d -data_source: +data_source: distribution: - ce tier: - free skip_validation: true +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216181152_projects_jira_dvcs_cloud_active.yml b/config/metrics/counts_28d/20210216181152_projects_jira_dvcs_cloud_active.yml index bab2db5ad43..e82186f4c78 100644 --- a/config/metrics/counts_28d/20210216181152_projects_jira_dvcs_cloud_active.yml +++ b/config/metrics/counts_28d/20210216181152_projects_jira_dvcs_cloud_active.yml @@ -1,17 +1,18 @@ --- data_category: Operational key_path: usage_activity_by_stage_monthly.plan.projects_jira_dvcs_cloud_active -description: +description: product_section: dev -product_stage: +product_stage: product_group: group::plan -product_category: +product_category: value_type: number status: data_available time_frame: 28d -data_source: +data_source: distribution: - ce tier: - free skip_validation: true +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216181154_projects_jira_dvcs_server_active.yml b/config/metrics/counts_28d/20210216181154_projects_jira_dvcs_server_active.yml index 0d9a42d3512..500800a6285 100644 --- a/config/metrics/counts_28d/20210216181154_projects_jira_dvcs_server_active.yml +++ b/config/metrics/counts_28d/20210216181154_projects_jira_dvcs_server_active.yml @@ -1,17 +1,18 @@ --- data_category: Operational key_path: usage_activity_by_stage_monthly.plan.projects_jira_dvcs_server_active -description: +description: product_section: dev -product_stage: +product_stage: product_group: group::plan -product_category: +product_category: value_type: number status: data_available time_frame: 28d -data_source: +data_source: distribution: - ce tier: - free skip_validation: true +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216181158_epics.yml b/config/metrics/counts_28d/20210216181158_epics.yml index 8b5694c96c0..db7e8870c6a 100644 --- a/config/metrics/counts_28d/20210216181158_epics.yml +++ b/config/metrics/counts_28d/20210216181158_epics.yml @@ -1,17 +1,20 @@ --- data_category: Optional key_path: usage_activity_by_stage_monthly.plan.epics -description: +description: product_section: dev -product_stage: +product_stage: product_group: group::plan -product_category: +product_category: value_type: number status: data_available time_frame: 28d -data_source: +data_source: distribution: - ce tier: - free skip_validation: true +performance_indicator_type: +- gmau +- paid_gmau diff --git a/config/metrics/counts_28d/20210216181200_label_lists.yml b/config/metrics/counts_28d/20210216181200_label_lists.yml index 354c8c3f41b..91463a4678c 100644 --- a/config/metrics/counts_28d/20210216181200_label_lists.yml +++ b/config/metrics/counts_28d/20210216181200_label_lists.yml @@ -4,16 +4,17 @@ key_path: usage_activity_by_stage_monthly.plan.label_lists description: Count of MAU creating label lists on Boards product_section: dev product_stage: plan -product_group: group::project management -product_category: boards +product_group: group::project management +product_category: boards value_type: number status: data_available time_frame: 28d -data_source: database +data_source: database distribution: - ce -- ee +- ee tier: - free -- premium -- ultimate +- premium +- ultimate +performance_indicator_type: [] 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 545741e02c5..c00f26994d8 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 @@ -17,3 +17,4 @@ tier: - free - premium - ultimate +performance_indicator_type: [] 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 6afaaf788d2..6610a4df2d3 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 @@ -12,8 +12,9 @@ time_frame: 28d data_source: redis_hll distribution: - ce -- ee +- ee tier: - free -- premium +- premium - ultimate +performance_indicator_type: [] 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 0fbdb16384f..cd400db57ea 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 @@ -11,10 +11,10 @@ status: data_available time_frame: 28d data_source: redis_hll distribution: -- ce -- ee +- ce +- ee tier: -- free -- premium -- ultimate - +- free +- premium +- ultimate +performance_indicator_type: [] 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 64584106f54..afc08c91ed1 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 @@ -12,8 +12,9 @@ time_frame: 28d data_source: redis_hll distribution: - ce -- ee +- ee tier: - free - premium -- ultimate +- ultimate +performance_indicator_type: [] 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 12ad3c7469e..871583812ea 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 @@ -12,8 +12,9 @@ time_frame: 28d data_source: redis_hll distribution: - ce -- ee +- ee tier: - free - premium -- ultimate +- ultimate +performance_indicator_type: [] 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 1e1a93572a2..d330defab80 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 @@ -12,8 +12,9 @@ time_frame: 28d data_source: redis_hll distribution: - ce -- ee +- ee tier: - free - premium - ultimate +performance_indicator_type: [] 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 c5f26b01f76..abfd7c56e5e 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 @@ -12,8 +12,9 @@ time_frame: 28d data_source: redis_hll distribution: - ce -- ee +- ee tier: - free -- premium +- premium - ultimate +performance_indicator_type: [] 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 79148942f11..c70ad295be9 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 @@ -12,8 +12,9 @@ time_frame: 28d data_source: redis_hll distribution: - ce -- ee +- ee tier: - free -- premium +- premium - ultimate +performance_indicator_type: [] 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 aa6c7f74a34..e17f4f25823 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 @@ -17,3 +17,4 @@ tier: - free - premium - ultimate +performance_indicator_type: [] 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 fc2b81eaf96..bb1219ce38b 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 @@ -17,3 +17,4 @@ tier: - free - premium - ultimate +performance_indicator_type: [] 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 da20c78f10d..c34403dbee9 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 @@ -17,3 +17,4 @@ tier: - free - premium - ultimate +performance_indicator_type: [] 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 80c55c9c75f..53a4ddd973f 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 @@ -17,3 +17,4 @@ tier: - free - premium - ultimate +performance_indicator_type: [] 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 30e688b95f7..24f380bdefc 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 @@ -17,3 +17,4 @@ tier: - free - premium - ultimate +performance_indicator_type: [] 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 a5786dcc00e..e80b69a6eab 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 @@ -17,3 +17,4 @@ tier: - free - premium - ultimate +performance_indicator_type: [] 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 ccc96aefc7b..4aba7913e10 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 @@ -17,3 +17,4 @@ tier: - free - premium - ultimate +performance_indicator_type: [] 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 38d1cddb8ff..bcf6139f9f0 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 @@ -17,3 +17,4 @@ tier: - free - premium - ultimate +performance_indicator_type: [] 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 2045f29d91b..c6c415c7a06 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 @@ -17,3 +17,4 @@ tier: - free - premium - ultimate +performance_indicator_type: [] 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 a9a6335b158..a2f5aba207c 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 @@ -17,3 +17,4 @@ tier: - free - premium - ultimate +performance_indicator_type: [] 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 b029c819f21..68fd822154d 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 @@ -17,3 +17,4 @@ tier: - free - premium - ultimate +performance_indicator_type: [] 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 a47c5a7b4dd..c33d75e7cea 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 @@ -17,3 +17,4 @@ tier: - free - premium - ultimate +performance_indicator_type: [] 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 13e127d9235..3f817290468 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 @@ -17,3 +17,4 @@ tier: - free - premium - ultimate +performance_indicator_type: [] 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 d6a364929bc..5f84f8b925a 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 @@ -17,3 +17,4 @@ tier: - free - premium - ultimate +performance_indicator_type: [] 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 fe0386739ba..3933f65c1e6 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 @@ -17,3 +17,4 @@ tier: - free - premium - ultimate +performance_indicator_type: [] 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 e2ff10cb06f..3bea2ecf08e 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 @@ -17,3 +17,4 @@ tier: - free - premium - ultimate +performance_indicator_type: [] 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 610746013fd..38f0f295dcc 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 @@ -17,3 +17,4 @@ tier: - free - premium - ultimate +performance_indicator_type: [] 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 776fc707274..bc10624fd20 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 @@ -17,3 +17,4 @@ tier: - free - premium - ultimate +performance_indicator_type: [] 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 e509b4d2af2..5c94aafe2b5 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 @@ -17,3 +17,4 @@ tier: - free - premium - ultimate +performance_indicator_type: [] 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 f0234ca62a6..6ac1d0acb72 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 @@ -17,3 +17,7 @@ tier: - free - premium - ultimate +performance_indicator_type: +- smau +- gmau +- paid_gmau diff --git a/config/metrics/counts_28d/20210216181923_successful_deployments.yml b/config/metrics/counts_28d/20210216181923_successful_deployments.yml index 8a8137fb6e5..c7878ed9283 100644 --- a/config/metrics/counts_28d/20210216181923_successful_deployments.yml +++ b/config/metrics/counts_28d/20210216181923_successful_deployments.yml @@ -17,3 +17,5 @@ tier: - free - premium - ultimate +skip_validation: true +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216181924_failed_deployments.yml b/config/metrics/counts_28d/20210216181924_failed_deployments.yml index 0b483d91f5f..00b148e51d1 100644 --- a/config/metrics/counts_28d/20210216181924_failed_deployments.yml +++ b/config/metrics/counts_28d/20210216181924_failed_deployments.yml @@ -17,3 +17,5 @@ tier: - free - premium - ultimate +skip_validation: true +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216181935_deployments.yml b/config/metrics/counts_28d/20210216181935_deployments.yml index 6c38d6cd234..751b2bb52d8 100644 --- a/config/metrics/counts_28d/20210216181935_deployments.yml +++ b/config/metrics/counts_28d/20210216181935_deployments.yml @@ -16,3 +16,6 @@ tier: - free - premium - ultimate +skip_validation: true +performance_indicator_type: +- smau diff --git a/config/metrics/counts_28d/20210216181937_failed_deployments.yml b/config/metrics/counts_28d/20210216181937_failed_deployments.yml index c38d518eef4..3c772526e78 100644 --- a/config/metrics/counts_28d/20210216181937_failed_deployments.yml +++ b/config/metrics/counts_28d/20210216181937_failed_deployments.yml @@ -17,3 +17,5 @@ tier: - free - premium - ultimate +skip_validation: true +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216181939_releases.yml b/config/metrics/counts_28d/20210216181939_releases.yml index ff7864d2ea0..e2536a92e1a 100644 --- a/config/metrics/counts_28d/20210216181939_releases.yml +++ b/config/metrics/counts_28d/20210216181939_releases.yml @@ -17,3 +17,7 @@ tier: - free - premium - ultimate +skip_validation: true +performance_indicator_type: +- gmau +- paid_gmau diff --git a/config/metrics/counts_28d/20210216181941_successful_deployments.yml b/config/metrics/counts_28d/20210216181941_successful_deployments.yml index 5e4ca7cfd50..f9a8d048ff0 100644 --- a/config/metrics/counts_28d/20210216181941_successful_deployments.yml +++ b/config/metrics/counts_28d/20210216181941_successful_deployments.yml @@ -17,3 +17,5 @@ tier: - free - premium - ultimate +skip_validation: true +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216181951_clusters_applications_runner.yml b/config/metrics/counts_28d/20210216181951_clusters_applications_runner.yml index f80caef1333..d66bc893846 100644 --- a/config/metrics/counts_28d/20210216181951_clusters_applications_runner.yml +++ b/config/metrics/counts_28d/20210216181951_clusters_applications_runner.yml @@ -9,7 +9,7 @@ product_category: runner value_type: number status: data_available time_frame: 28d -data_source: +data_source: distribution: - ce - ee @@ -18,3 +18,4 @@ tier: - premium - ultimate skip_validation: true +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216181956_user_unique_users_all_secure_scanners.yml b/config/metrics/counts_28d/20210216181956_user_unique_users_all_secure_scanners.yml index a1d2b955480..fa593c4443c 100644 --- a/config/metrics/counts_28d/20210216181956_user_unique_users_all_secure_scanners.yml +++ b/config/metrics/counts_28d/20210216181956_user_unique_users_all_secure_scanners.yml @@ -1,17 +1,19 @@ --- data_category: Operational key_path: usage_activity_by_stage_monthly.secure.user_unique_users_all_secure_scanners -description: +description: product_section: sec -product_stage: +product_stage: product_group: group::secure -product_category: +product_category: value_type: number status: data_available time_frame: 28d -data_source: +data_source: distribution: - ce tier: - free skip_validation: true +performance_indicator_type: +- smau diff --git a/config/metrics/counts_28d/20210216182034_deploy_keys.yml b/config/metrics/counts_28d/20210216182034_deploy_keys.yml index 62ce9d03fa0..16bb8d53e6d 100644 --- a/config/metrics/counts_28d/20210216182034_deploy_keys.yml +++ b/config/metrics/counts_28d/20210216182034_deploy_keys.yml @@ -17,3 +17,4 @@ tier: - free - premium - ultimate +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216182036_keys.yml b/config/metrics/counts_28d/20210216182036_keys.yml index 95d2524dd6e..c1bbdbbe4ca 100644 --- a/config/metrics/counts_28d/20210216182036_keys.yml +++ b/config/metrics/counts_28d/20210216182036_keys.yml @@ -17,3 +17,4 @@ tier: - free - premium - ultimate +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216182038_remote_mirrors.yml b/config/metrics/counts_28d/20210216182038_remote_mirrors.yml index 01375ac0584..3475eacdf44 100644 --- a/config/metrics/counts_28d/20210216182038_remote_mirrors.yml +++ b/config/metrics/counts_28d/20210216182038_remote_mirrors.yml @@ -17,3 +17,4 @@ tier: - free - premium - ultimate +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216182040_action_monthly_active_users_project_repo.yml b/config/metrics/counts_28d/20210216182040_action_monthly_active_users_project_repo.yml index cecef03078d..885cf560521 100644 --- a/config/metrics/counts_28d/20210216182040_action_monthly_active_users_project_repo.yml +++ b/config/metrics/counts_28d/20210216182040_action_monthly_active_users_project_repo.yml @@ -17,3 +17,7 @@ tier: - free - premium - ultimate +performance_indicator_type: +- smau +- gmau +- paid_gmau diff --git a/config/metrics/counts_28d/20210216182041_action_monthly_active_users_git_write.yml b/config/metrics/counts_28d/20210216182041_action_monthly_active_users_git_write.yml index b91b87800e1..087afb371fa 100644 --- a/config/metrics/counts_28d/20210216182041_action_monthly_active_users_git_write.yml +++ b/config/metrics/counts_28d/20210216182041_action_monthly_active_users_git_write.yml @@ -17,3 +17,4 @@ tier: - free - premium - ultimate +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216182051_protected_branches.yml b/config/metrics/counts_28d/20210216182051_protected_branches.yml index 196ecce497e..acb1914f1c6 100644 --- a/config/metrics/counts_28d/20210216182051_protected_branches.yml +++ b/config/metrics/counts_28d/20210216182051_protected_branches.yml @@ -17,3 +17,4 @@ tier: - free - premium - ultimate +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216182102_wiki_action_monthly.yml b/config/metrics/counts_28d/20210216182102_wiki_action_monthly.yml index 118a33016a5..fab51aaa8a0 100644 --- a/config/metrics/counts_28d/20210216182102_wiki_action_monthly.yml +++ b/config/metrics/counts_28d/20210216182102_wiki_action_monthly.yml @@ -13,7 +13,7 @@ data_source: redis_hll instrumentation_class: RedisHLLMetric options: events: - - wiki_action + - wiki_action distribution: - ce - ee @@ -21,3 +21,4 @@ tier: - free - premium - ultimate +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216182106_design_action_monthly.yml b/config/metrics/counts_28d/20210216182106_design_action_monthly.yml index b725b30a03f..3f05898ed4e 100644 --- a/config/metrics/counts_28d/20210216182106_design_action_monthly.yml +++ b/config/metrics/counts_28d/20210216182106_design_action_monthly.yml @@ -13,7 +13,7 @@ data_source: redis_hll instrumentation_class: RedisHLLMetric options: events: - - design_action + - design_action distribution: - ce - ee @@ -21,3 +21,4 @@ tier: - free - premium - ultimate +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216182109_project_action_monthly.yml b/config/metrics/counts_28d/20210216182109_project_action_monthly.yml index fa8c04668b6..7ed87e33e1e 100644 --- a/config/metrics/counts_28d/20210216182109_project_action_monthly.yml +++ b/config/metrics/counts_28d/20210216182109_project_action_monthly.yml @@ -13,7 +13,7 @@ data_source: redis_hll instrumentation_class: RedisHLLMetric options: events: - - project_action + - project_action distribution: - ce - ee @@ -21,3 +21,4 @@ tier: - free - premium - ultimate +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216182125_user_sast_jobs.yml b/config/metrics/counts_28d/20210216182125_user_sast_jobs.yml index 1cac9649385..07b29b212d6 100644 --- a/config/metrics/counts_28d/20210216182125_user_sast_jobs.yml +++ b/config/metrics/counts_28d/20210216182125_user_sast_jobs.yml @@ -17,3 +17,6 @@ tier: - free - premium - ultimate +performance_indicator_type: +- gmau +- paid_gmau diff --git a/config/metrics/counts_28d/20210216182127_user_secret_detection_jobs.yml b/config/metrics/counts_28d/20210216182127_user_secret_detection_jobs.yml index c1da3f76981..42d3b6c88dc 100644 --- a/config/metrics/counts_28d/20210216182127_user_secret_detection_jobs.yml +++ b/config/metrics/counts_28d/20210216182127_user_secret_detection_jobs.yml @@ -17,3 +17,6 @@ tier: - free - premium - ultimate +performance_indicator_type: +- gmau +- paid_gmau diff --git a/config/metrics/counts_28d/20210216182129_sast_pipeline.yml b/config/metrics/counts_28d/20210216182129_sast_pipeline.yml index a340dc960d3..5057ab925e9 100644 --- a/config/metrics/counts_28d/20210216182129_sast_pipeline.yml +++ b/config/metrics/counts_28d/20210216182129_sast_pipeline.yml @@ -17,3 +17,4 @@ tier: - free - premium - ultimate +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216182131_secret_detection_pipeline.yml b/config/metrics/counts_28d/20210216182131_secret_detection_pipeline.yml index 171a9696d12..7ce0f4cb4a0 100644 --- a/config/metrics/counts_28d/20210216182131_secret_detection_pipeline.yml +++ b/config/metrics/counts_28d/20210216182131_secret_detection_pipeline.yml @@ -17,3 +17,4 @@ tier: - free - premium - ultimate +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216182136_i_testing_test_case_parsed_monthly.yml b/config/metrics/counts_28d/20210216182136_i_testing_test_case_parsed_monthly.yml index 0a94cd08b0e..23a7074e72a 100644 --- a/config/metrics/counts_28d/20210216182136_i_testing_test_case_parsed_monthly.yml +++ b/config/metrics/counts_28d/20210216182136_i_testing_test_case_parsed_monthly.yml @@ -18,3 +18,4 @@ tier: - free - premium - ultimate +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216183159_projects_with_alerts_created.yml b/config/metrics/counts_28d/20210216183159_projects_with_alerts_created.yml index 64d403d10d3..196fc834155 100644 --- a/config/metrics/counts_28d/20210216183159_projects_with_alerts_created.yml +++ b/config/metrics/counts_28d/20210216183159_projects_with_alerts_created.yml @@ -3,7 +3,7 @@ data_category: Optional key_path: counts_monthly.projects_with_alerts_created description: Monthly count of unique projects with HTTP alerting enabled product_section: ops -product_stage: +product_stage: product_group: group::monitor product_category: metrics value_type: number @@ -11,9 +11,10 @@ status: data_available time_frame: 28d data_source: database distribution: - - ce - - ee +- ce +- ee tier: - - free - - premium - - ultimate +- free +- premium +- ultimate +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216183627_omniauth_providers.yml b/config/metrics/counts_28d/20210216183627_omniauth_providers.yml index 2a3544fa601..ccea430d8ac 100644 --- a/config/metrics/counts_28d/20210216183627_omniauth_providers.yml +++ b/config/metrics/counts_28d/20210216183627_omniauth_providers.yml @@ -16,3 +16,4 @@ tier: - free - premium - ultimate +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216183634_standard.yml b/config/metrics/counts_28d/20210216183634_standard.yml index 0144c251c93..0fd7d6f4708 100644 --- a/config/metrics/counts_28d/20210216183634_standard.yml +++ b/config/metrics/counts_28d/20210216183634_standard.yml @@ -16,3 +16,4 @@ tier: - free - premium - ultimate +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216183636_google_oauth2.yml b/config/metrics/counts_28d/20210216183636_google_oauth2.yml index ce5112fcc88..7d9bdd6c5dd 100644 --- a/config/metrics/counts_28d/20210216183636_google_oauth2.yml +++ b/config/metrics/counts_28d/20210216183636_google_oauth2.yml @@ -16,3 +16,4 @@ tier: - free - premium - ultimate +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216183638_unique_users_all_imports.yml b/config/metrics/counts_28d/20210216183638_unique_users_all_imports.yml index 0e2933ec421..296b0aeda37 100644 --- a/config/metrics/counts_28d/20210216183638_unique_users_all_imports.yml +++ b/config/metrics/counts_28d/20210216183638_unique_users_all_imports.yml @@ -17,3 +17,6 @@ tier: - free - premium - ultimate +performance_indicator_type: +- gmau +- paid_gmau diff --git a/config/metrics/counts_28d/20210216183640_gitlab.yml b/config/metrics/counts_28d/20210216183640_gitlab.yml index c72492f4abb..dd93201f085 100644 --- a/config/metrics/counts_28d/20210216183640_gitlab.yml +++ b/config/metrics/counts_28d/20210216183640_gitlab.yml @@ -17,3 +17,4 @@ tier: - free - premium - ultimate +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216183712_total.yml b/config/metrics/counts_28d/20210216183712_total.yml index 6122ed956a8..370eba135ea 100644 --- a/config/metrics/counts_28d/20210216183712_total.yml +++ b/config/metrics/counts_28d/20210216183712_total.yml @@ -17,3 +17,4 @@ tier: - free - premium - ultimate +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216183714_gitlab_project.yml b/config/metrics/counts_28d/20210216183714_gitlab_project.yml index 49a474794e2..0318e869c40 100644 --- a/config/metrics/counts_28d/20210216183714_gitlab_project.yml +++ b/config/metrics/counts_28d/20210216183714_gitlab_project.yml @@ -17,3 +17,4 @@ tier: - free - premium - ultimate +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216183716_gitlab.yml b/config/metrics/counts_28d/20210216183716_gitlab.yml index 0ce3dd43d9e..16f9295459a 100644 --- a/config/metrics/counts_28d/20210216183716_gitlab.yml +++ b/config/metrics/counts_28d/20210216183716_gitlab.yml @@ -17,3 +17,4 @@ tier: - free - premium - ultimate +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216183718_github.yml b/config/metrics/counts_28d/20210216183718_github.yml index 8af4721aae7..e2bf0a2c5a9 100644 --- a/config/metrics/counts_28d/20210216183718_github.yml +++ b/config/metrics/counts_28d/20210216183718_github.yml @@ -17,3 +17,4 @@ tier: - free - premium - ultimate +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216183720_bitbucket.yml b/config/metrics/counts_28d/20210216183720_bitbucket.yml index 1119c77d72c..cab61cd4472 100644 --- a/config/metrics/counts_28d/20210216183720_bitbucket.yml +++ b/config/metrics/counts_28d/20210216183720_bitbucket.yml @@ -17,3 +17,4 @@ tier: - free - premium - ultimate +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216183722_bitbucket_server.yml b/config/metrics/counts_28d/20210216183722_bitbucket_server.yml index 7abd0444a55..176ef054949 100644 --- a/config/metrics/counts_28d/20210216183722_bitbucket_server.yml +++ b/config/metrics/counts_28d/20210216183722_bitbucket_server.yml @@ -17,3 +17,4 @@ tier: - free - premium - ultimate +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216183724_gitea.yml b/config/metrics/counts_28d/20210216183724_gitea.yml index e55ddcdef7c..43270b79fa5 100644 --- a/config/metrics/counts_28d/20210216183724_gitea.yml +++ b/config/metrics/counts_28d/20210216183724_gitea.yml @@ -17,3 +17,4 @@ tier: - free - premium - ultimate +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216183726_git.yml b/config/metrics/counts_28d/20210216183726_git.yml index 665670c2a9c..cd8e524de5b 100644 --- a/config/metrics/counts_28d/20210216183726_git.yml +++ b/config/metrics/counts_28d/20210216183726_git.yml @@ -17,3 +17,4 @@ tier: - free - premium - ultimate +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216183728_manifest.yml b/config/metrics/counts_28d/20210216183728_manifest.yml index aca33145416..f1dd348112b 100644 --- a/config/metrics/counts_28d/20210216183728_manifest.yml +++ b/config/metrics/counts_28d/20210216183728_manifest.yml @@ -17,3 +17,4 @@ tier: - free - premium - ultimate +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216183730_jira.yml b/config/metrics/counts_28d/20210216183730_jira.yml index 90109ccac0d..e540fda2c14 100644 --- a/config/metrics/counts_28d/20210216183730_jira.yml +++ b/config/metrics/counts_28d/20210216183730_jira.yml @@ -17,3 +17,4 @@ tier: - free - premium - ultimate +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216183731_fogbugz.yml b/config/metrics/counts_28d/20210216183731_fogbugz.yml index f437b1b31f1..716f4245eca 100644 --- a/config/metrics/counts_28d/20210216183731_fogbugz.yml +++ b/config/metrics/counts_28d/20210216183731_fogbugz.yml @@ -17,3 +17,4 @@ tier: - free - premium - ultimate +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216183733_phabricator.yml b/config/metrics/counts_28d/20210216183733_phabricator.yml index b63ae23aa44..2e6dbdfc791 100644 --- a/config/metrics/counts_28d/20210216183733_phabricator.yml +++ b/config/metrics/counts_28d/20210216183733_phabricator.yml @@ -17,3 +17,4 @@ tier: - free - premium - ultimate +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216183735_csv.yml b/config/metrics/counts_28d/20210216183735_csv.yml index aa958aa3bcb..bca04d3b416 100644 --- a/config/metrics/counts_28d/20210216183735_csv.yml +++ b/config/metrics/counts_28d/20210216183735_csv.yml @@ -17,3 +17,4 @@ tier: - free - premium - ultimate +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216183737_groups_imported.yml b/config/metrics/counts_28d/20210216183737_groups_imported.yml index 48a2231700a..cb86542bd45 100644 --- a/config/metrics/counts_28d/20210216183737_groups_imported.yml +++ b/config/metrics/counts_28d/20210216183737_groups_imported.yml @@ -17,3 +17,4 @@ tier: - free - premium - ultimate +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216183817_user_coverage_fuzzing_jobs.yml b/config/metrics/counts_28d/20210216183817_user_coverage_fuzzing_jobs.yml index a348b5a9717..0dd8f7b9f68 100644 --- a/config/metrics/counts_28d/20210216183817_user_coverage_fuzzing_jobs.yml +++ b/config/metrics/counts_28d/20210216183817_user_coverage_fuzzing_jobs.yml @@ -9,9 +9,12 @@ product_category: '' value_type: number status: data_available time_frame: 28d -data_source: +data_source: distribution: - ce tier: - free skip_validation: true +performance_indicator_type: +- gmau +- paid_gmau diff --git a/config/metrics/counts_28d/20210216183826_sast_scans.yml b/config/metrics/counts_28d/20210216183826_sast_scans.yml index 9299f45041c..3e24bb9a28c 100644 --- a/config/metrics/counts_28d/20210216183826_sast_scans.yml +++ b/config/metrics/counts_28d/20210216183826_sast_scans.yml @@ -9,9 +9,10 @@ product_category: '' value_type: number status: data_available time_frame: 28d -data_source: +data_source: distribution: - ce tier: - free skip_validation: true +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216183830_container_scanning_scans.yml b/config/metrics/counts_28d/20210216183830_container_scanning_scans.yml index ca3d9284456..93ac69f5434 100644 --- a/config/metrics/counts_28d/20210216183830_container_scanning_scans.yml +++ b/config/metrics/counts_28d/20210216183830_container_scanning_scans.yml @@ -9,9 +9,10 @@ product_category: '' value_type: number status: data_available time_frame: 28d -data_source: +data_source: distribution: - ce tier: - free skip_validation: true +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216183832_dast_scans.yml b/config/metrics/counts_28d/20210216183832_dast_scans.yml index b83d5da0f9d..db70df0fd9c 100644 --- a/config/metrics/counts_28d/20210216183832_dast_scans.yml +++ b/config/metrics/counts_28d/20210216183832_dast_scans.yml @@ -9,9 +9,10 @@ product_category: '' value_type: number status: data_available time_frame: 28d -data_source: +data_source: distribution: - ce tier: - free skip_validation: true +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216183834_secret_detection_scans.yml b/config/metrics/counts_28d/20210216183834_secret_detection_scans.yml index 55e55c6b4a1..a1bf05e201b 100644 --- a/config/metrics/counts_28d/20210216183834_secret_detection_scans.yml +++ b/config/metrics/counts_28d/20210216183834_secret_detection_scans.yml @@ -9,9 +9,10 @@ product_category: '' value_type: number status: data_available time_frame: 28d -data_source: +data_source: distribution: - ce tier: - free skip_validation: true +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216183836_coverage_fuzzing_scans.yml b/config/metrics/counts_28d/20210216183836_coverage_fuzzing_scans.yml index aac4dca0667..058e00a64bc 100644 --- a/config/metrics/counts_28d/20210216183836_coverage_fuzzing_scans.yml +++ b/config/metrics/counts_28d/20210216183836_coverage_fuzzing_scans.yml @@ -9,9 +9,10 @@ product_category: '' value_type: number status: data_available time_frame: 28d -data_source: +data_source: distribution: - ce tier: - free skip_validation: true +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216183838_api_fuzzing_scans.yml b/config/metrics/counts_28d/20210216183838_api_fuzzing_scans.yml index 8986ea82ac8..3fda9daa701 100644 --- a/config/metrics/counts_28d/20210216183838_api_fuzzing_scans.yml +++ b/config/metrics/counts_28d/20210216183838_api_fuzzing_scans.yml @@ -9,9 +9,10 @@ product_category: '' value_type: number status: data_available time_frame: 28d -data_source: +data_source: distribution: - ce tier: - free skip_validation: true +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216184024_g_edit_by_sse_monthly.yml b/config/metrics/counts_28d/20210216184024_g_edit_by_sse_monthly.yml index d7b07b6c8a5..f962e1abba6 100644 --- a/config/metrics/counts_28d/20210216184024_g_edit_by_sse_monthly.yml +++ b/config/metrics/counts_28d/20210216184024_g_edit_by_sse_monthly.yml @@ -13,7 +13,7 @@ data_source: redis_hll instrumentation_class: RedisHLLMetric options: events: - - g_edit_by_sse + - g_edit_by_sse distribution: - ce - ee @@ -21,3 +21,4 @@ tier: - free - premium - ultimate +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216184047_git_write_action_monthly.yml b/config/metrics/counts_28d/20210216184047_git_write_action_monthly.yml index cc722bd3da2..f5ad324b0dc 100644 --- a/config/metrics/counts_28d/20210216184047_git_write_action_monthly.yml +++ b/config/metrics/counts_28d/20210216184047_git_write_action_monthly.yml @@ -13,7 +13,7 @@ data_source: redis_hll instrumentation_class: RedisHLLMetric options: events: - - git_write_action + - git_write_action distribution: - ce - ee @@ -21,3 +21,4 @@ tier: - free - premium - ultimate +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216184140_testing_total_unique_counts_monthly.yml b/config/metrics/counts_28d/20210216184140_testing_total_unique_counts_monthly.yml index 3b86a4e46fb..3e6e920e3ec 100644 --- a/config/metrics/counts_28d/20210216184140_testing_total_unique_counts_monthly.yml +++ b/config/metrics/counts_28d/20210216184140_testing_total_unique_counts_monthly.yml @@ -14,3 +14,4 @@ distribution: - ce tier: - free +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216184255_i_snippets_show_monthly.yml b/config/metrics/counts_28d/20210216184255_i_snippets_show_monthly.yml index 77386f794ac..fef847b51b4 100644 --- a/config/metrics/counts_28d/20210216184255_i_snippets_show_monthly.yml +++ b/config/metrics/counts_28d/20210216184255_i_snippets_show_monthly.yml @@ -17,3 +17,4 @@ tier: - free - premium - ultimate +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216184259_p_terraform_state_api_unique_users_monthly.yml b/config/metrics/counts_28d/20210216184259_p_terraform_state_api_unique_users_monthly.yml index 19c8fe52d3b..2aec3aaa14c 100644 --- a/config/metrics/counts_28d/20210216184259_p_terraform_state_api_unique_users_monthly.yml +++ b/config/metrics/counts_28d/20210216184259_p_terraform_state_api_unique_users_monthly.yml @@ -17,3 +17,7 @@ tier: - free - premium - ultimate +performance_indicator_type: +- smau +- gmau +- paid_gmau diff --git a/config/metrics/counts_28d/20210216184303_o_pipeline_authoring_unique_users_committing_ciconfigfile_monthly.yml b/config/metrics/counts_28d/20210216184303_o_pipeline_authoring_unique_users_committing_ciconfigfile_monthly.yml index cfc5123301f..ec5b2045f1c 100644 --- a/config/metrics/counts_28d/20210216184303_o_pipeline_authoring_unique_users_committing_ciconfigfile_monthly.yml +++ b/config/metrics/counts_28d/20210216184303_o_pipeline_authoring_unique_users_committing_ciconfigfile_monthly.yml @@ -17,3 +17,4 @@ tier: - free - premium - ultimate +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216184353_i_code_review_user_create_review_note_monthly.yml b/config/metrics/counts_28d/20210216184353_i_code_review_user_create_review_note_monthly.yml index 9d31aafc1db..0ba31238281 100644 --- a/config/metrics/counts_28d/20210216184353_i_code_review_user_create_review_note_monthly.yml +++ b/config/metrics/counts_28d/20210216184353_i_code_review_user_create_review_note_monthly.yml @@ -13,6 +13,7 @@ distribution: - ce - ee tier: - - free - - premium - - ultimate +- free +- premium +- ultimate +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216184357_i_code_review_user_publish_review_monthly.yml b/config/metrics/counts_28d/20210216184357_i_code_review_user_publish_review_monthly.yml index 41e1b2a1918..4c98ba7436c 100644 --- a/config/metrics/counts_28d/20210216184357_i_code_review_user_publish_review_monthly.yml +++ b/config/metrics/counts_28d/20210216184357_i_code_review_user_publish_review_monthly.yml @@ -13,6 +13,7 @@ distribution: - ce - ee tier: - - free - - premium - - ultimate +- free +- premium +- ultimate +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216184401_i_code_review_user_create_multiline_mr_comment_monthly.yml b/config/metrics/counts_28d/20210216184401_i_code_review_user_create_multiline_mr_comment_monthly.yml index 9054ab2986a..1a18da75ec3 100644 --- a/config/metrics/counts_28d/20210216184401_i_code_review_user_create_multiline_mr_comment_monthly.yml +++ b/config/metrics/counts_28d/20210216184401_i_code_review_user_create_multiline_mr_comment_monthly.yml @@ -13,6 +13,7 @@ distribution: - ce - ee tier: - - free - - premium - - ultimate +- free +- premium +- ultimate +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216184405_i_code_review_user_edit_multiline_mr_comment_monthly.yml b/config/metrics/counts_28d/20210216184405_i_code_review_user_edit_multiline_mr_comment_monthly.yml index 649272b492b..6565c65aa24 100644 --- a/config/metrics/counts_28d/20210216184405_i_code_review_user_edit_multiline_mr_comment_monthly.yml +++ b/config/metrics/counts_28d/20210216184405_i_code_review_user_edit_multiline_mr_comment_monthly.yml @@ -13,6 +13,7 @@ distribution: - ce - ee tier: - - free - - premium - - ultimate +- free +- premium +- ultimate +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216184446_i_code_review_user_vs_code_api_request_monthly.yml b/config/metrics/counts_28d/20210216184446_i_code_review_user_vs_code_api_request_monthly.yml index 22d442d0d84..9418ff0bb15 100644 --- a/config/metrics/counts_28d/20210216184446_i_code_review_user_vs_code_api_request_monthly.yml +++ b/config/metrics/counts_28d/20210216184446_i_code_review_user_vs_code_api_request_monthly.yml @@ -13,6 +13,7 @@ distribution: - ce - ee tier: - - free - - premium - - ultimate +- free +- premium +- ultimate +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216184454_code_review_total_unique_counts_monthly.yml b/config/metrics/counts_28d/20210216184454_code_review_total_unique_counts_monthly.yml index 8d3792288c9..747ded40348 100644 --- a/config/metrics/counts_28d/20210216184454_code_review_total_unique_counts_monthly.yml +++ b/config/metrics/counts_28d/20210216184454_code_review_total_unique_counts_monthly.yml @@ -13,6 +13,7 @@ distribution: - ce - ee tier: - - free - - premium - - ultimate +- free +- premium +- ultimate +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216184517_p_ci_templates_5_min_production_app_monthly.yml b/config/metrics/counts_28d/20210216184517_p_ci_templates_5_min_production_app_monthly.yml index 3ad6b97db37..1474f229d77 100644 --- a/config/metrics/counts_28d/20210216184517_p_ci_templates_5_min_production_app_monthly.yml +++ b/config/metrics/counts_28d/20210216184517_p_ci_templates_5_min_production_app_monthly.yml @@ -17,3 +17,4 @@ tier: - free - premium - ultimate +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216184523_p_ci_templates_auto_devops_monthly.yml b/config/metrics/counts_28d/20210216184523_p_ci_templates_auto_devops_monthly.yml index ee2182d8c83..94dc4763471 100644 --- a/config/metrics/counts_28d/20210216184523_p_ci_templates_auto_devops_monthly.yml +++ b/config/metrics/counts_28d/20210216184523_p_ci_templates_auto_devops_monthly.yml @@ -17,3 +17,4 @@ tier: - free - premium - ultimate +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216184534_p_ci_templates_auto_devops_build_monthly.yml b/config/metrics/counts_28d/20210216184534_p_ci_templates_auto_devops_build_monthly.yml index 01e0fbe81b2..8e8f11f034b 100644 --- a/config/metrics/counts_28d/20210216184534_p_ci_templates_auto_devops_build_monthly.yml +++ b/config/metrics/counts_28d/20210216184534_p_ci_templates_auto_devops_build_monthly.yml @@ -17,3 +17,4 @@ tier: - free - premium - ultimate +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216184538_p_ci_templates_auto_devops_deploy_monthly.yml b/config/metrics/counts_28d/20210216184538_p_ci_templates_auto_devops_deploy_monthly.yml index c6f9087c9bc..200fb9a7c1e 100644 --- a/config/metrics/counts_28d/20210216184538_p_ci_templates_auto_devops_deploy_monthly.yml +++ b/config/metrics/counts_28d/20210216184538_p_ci_templates_auto_devops_deploy_monthly.yml @@ -17,3 +17,4 @@ tier: - free - premium - ultimate +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216184546_p_ci_templates_security_sast_monthly.yml b/config/metrics/counts_28d/20210216184546_p_ci_templates_security_sast_monthly.yml index 2938236ef56..b264fe19f26 100644 --- a/config/metrics/counts_28d/20210216184546_p_ci_templates_security_sast_monthly.yml +++ b/config/metrics/counts_28d/20210216184546_p_ci_templates_security_sast_monthly.yml @@ -15,3 +15,4 @@ distribution: tier: - free skip_validation: true +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216184551_p_ci_templates_security_secret_detection_monthly.yml b/config/metrics/counts_28d/20210216184551_p_ci_templates_security_secret_detection_monthly.yml index 15e28870d11..cfe17ea167d 100644 --- a/config/metrics/counts_28d/20210216184551_p_ci_templates_security_secret_detection_monthly.yml +++ b/config/metrics/counts_28d/20210216184551_p_ci_templates_security_secret_detection_monthly.yml @@ -15,3 +15,4 @@ distribution: tier: - free skip_validation: true +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216184555_p_ci_templates_terraform_base_latest_monthly.yml b/config/metrics/counts_28d/20210216184555_p_ci_templates_terraform_base_latest_monthly.yml index 3bfa045b833..bd7a17b87ab 100644 --- a/config/metrics/counts_28d/20210216184555_p_ci_templates_terraform_base_latest_monthly.yml +++ b/config/metrics/counts_28d/20210216184555_p_ci_templates_terraform_base_latest_monthly.yml @@ -17,3 +17,4 @@ tier: - free - premium - ultimate +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216184559_ci_templates_total_unique_counts_monthly.yml b/config/metrics/counts_28d/20210216184559_ci_templates_total_unique_counts_monthly.yml index e3f418abaa2..a8a144c9f7e 100644 --- a/config/metrics/counts_28d/20210216184559_ci_templates_total_unique_counts_monthly.yml +++ b/config/metrics/counts_28d/20210216184559_ci_templates_total_unique_counts_monthly.yml @@ -18,4 +18,4 @@ tier: - free - premium - ultimate - +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216184830_i_package_maven_deploy_token_monthly.yml b/config/metrics/counts_28d/20210216184830_i_package_maven_deploy_token_monthly.yml index 415d136fadc..cc9f97ee1d5 100644 --- a/config/metrics/counts_28d/20210216184830_i_package_maven_deploy_token_monthly.yml +++ b/config/metrics/counts_28d/20210216184830_i_package_maven_deploy_token_monthly.yml @@ -17,3 +17,4 @@ tier: - free - premium - ultimate +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216184834_i_package_npm_deploy_token_monthly.yml b/config/metrics/counts_28d/20210216184834_i_package_npm_deploy_token_monthly.yml index 10e3d154698..d0dce27f3dc 100644 --- a/config/metrics/counts_28d/20210216184834_i_package_npm_deploy_token_monthly.yml +++ b/config/metrics/counts_28d/20210216184834_i_package_npm_deploy_token_monthly.yml @@ -17,3 +17,4 @@ tier: - free - premium - ultimate +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216184838_i_package_nuget_deploy_token_monthly.yml b/config/metrics/counts_28d/20210216184838_i_package_nuget_deploy_token_monthly.yml index ea9d0c6434c..e8557007c34 100644 --- a/config/metrics/counts_28d/20210216184838_i_package_nuget_deploy_token_monthly.yml +++ b/config/metrics/counts_28d/20210216184838_i_package_nuget_deploy_token_monthly.yml @@ -17,3 +17,4 @@ tier: - free - premium - ultimate +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216184842_i_package_pypi_deploy_token_monthly.yml b/config/metrics/counts_28d/20210216184842_i_package_pypi_deploy_token_monthly.yml index 5e840499c9e..f72bb17bedb 100644 --- a/config/metrics/counts_28d/20210216184842_i_package_pypi_deploy_token_monthly.yml +++ b/config/metrics/counts_28d/20210216184842_i_package_pypi_deploy_token_monthly.yml @@ -17,4 +17,4 @@ tier: - free - premium - ultimate - +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216184850_deploy_token_packages_total_unique_counts_monthly.yml b/config/metrics/counts_28d/20210216184850_deploy_token_packages_total_unique_counts_monthly.yml index 007a0087173..67968bb1520 100644 --- a/config/metrics/counts_28d/20210216184850_deploy_token_packages_total_unique_counts_monthly.yml +++ b/config/metrics/counts_28d/20210216184850_deploy_token_packages_total_unique_counts_monthly.yml @@ -17,3 +17,4 @@ tier: - free - premium - ultimate +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216184854_i_package_composer_user_monthly.yml b/config/metrics/counts_28d/20210216184854_i_package_composer_user_monthly.yml index 9c7f0a48d2c..cb42ba4186e 100644 --- a/config/metrics/counts_28d/20210216184854_i_package_composer_user_monthly.yml +++ b/config/metrics/counts_28d/20210216184854_i_package_composer_user_monthly.yml @@ -17,3 +17,4 @@ tier: - free - premium - ultimate +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216184858_i_package_conan_user_monthly.yml b/config/metrics/counts_28d/20210216184858_i_package_conan_user_monthly.yml index f4f53f344d3..e37d9e69c2d 100644 --- a/config/metrics/counts_28d/20210216184858_i_package_conan_user_monthly.yml +++ b/config/metrics/counts_28d/20210216184858_i_package_conan_user_monthly.yml @@ -17,3 +17,4 @@ tier: - free - premium - ultimate +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216184917_i_package_maven_user_monthly.yml b/config/metrics/counts_28d/20210216184917_i_package_maven_user_monthly.yml index fbf543ab69b..8aadb66dfbb 100644 --- a/config/metrics/counts_28d/20210216184917_i_package_maven_user_monthly.yml +++ b/config/metrics/counts_28d/20210216184917_i_package_maven_user_monthly.yml @@ -17,3 +17,4 @@ tier: - free - premium - ultimate +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216184921_i_package_npm_user_monthly.yml b/config/metrics/counts_28d/20210216184921_i_package_npm_user_monthly.yml index 8b73015fbfb..ef281ea174c 100644 --- a/config/metrics/counts_28d/20210216184921_i_package_npm_user_monthly.yml +++ b/config/metrics/counts_28d/20210216184921_i_package_npm_user_monthly.yml @@ -17,3 +17,4 @@ tier: - free - premium - ultimate +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216184925_i_package_nuget_user_monthly.yml b/config/metrics/counts_28d/20210216184925_i_package_nuget_user_monthly.yml index 4df4da25bb3..e89c7811a4e 100644 --- a/config/metrics/counts_28d/20210216184925_i_package_nuget_user_monthly.yml +++ b/config/metrics/counts_28d/20210216184925_i_package_nuget_user_monthly.yml @@ -17,3 +17,4 @@ tier: - free - premium - ultimate +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216184929_i_package_pypi_user_monthly.yml b/config/metrics/counts_28d/20210216184929_i_package_pypi_user_monthly.yml index f8047de893d..a1d3c6d1db4 100644 --- a/config/metrics/counts_28d/20210216184929_i_package_pypi_user_monthly.yml +++ b/config/metrics/counts_28d/20210216184929_i_package_pypi_user_monthly.yml @@ -17,3 +17,4 @@ tier: - free - premium - ultimate +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210216184937_user_packages_total_unique_counts_monthly.yml b/config/metrics/counts_28d/20210216184937_user_packages_total_unique_counts_monthly.yml index 826c7e660e6..b6f25efd154 100644 --- a/config/metrics/counts_28d/20210216184937_user_packages_total_unique_counts_monthly.yml +++ b/config/metrics/counts_28d/20210216184937_user_packages_total_unique_counts_monthly.yml @@ -17,3 +17,6 @@ tier: - free - premium - ultimate +performance_indicator_type: +- smau +- gmau diff --git a/config/metrics/counts_28d/20210216184957_ecosystem_total_unique_counts_monthly.yml b/config/metrics/counts_28d/20210216184957_ecosystem_total_unique_counts_monthly.yml index 76452c300b7..825bcdb1a82 100644 --- a/config/metrics/counts_28d/20210216184957_ecosystem_total_unique_counts_monthly.yml +++ b/config/metrics/counts_28d/20210216184957_ecosystem_total_unique_counts_monthly.yml @@ -17,3 +17,6 @@ tier: - free - premium - ultimate +performance_indicator_type: +- gmau +- paid_gmau diff --git a/config/metrics/counts_28d/20210301144228_o_pipeline_authoring_unique_users_pushing_mr_ciconfigfile_monthly.yml b/config/metrics/counts_28d/20210301144228_o_pipeline_authoring_unique_users_pushing_mr_ciconfigfile_monthly.yml index 20bc2888444..680061913d1 100644 --- a/config/metrics/counts_28d/20210301144228_o_pipeline_authoring_unique_users_pushing_mr_ciconfigfile_monthly.yml +++ b/config/metrics/counts_28d/20210301144228_o_pipeline_authoring_unique_users_pushing_mr_ciconfigfile_monthly.yml @@ -19,3 +19,4 @@ tier: - free - premium - ultimate +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210427102618_code_review_category_monthly_active_users.yml b/config/metrics/counts_28d/20210427102618_code_review_category_monthly_active_users.yml index c5a8796d0c7..f092c87e80d 100644 --- a/config/metrics/counts_28d/20210427102618_code_review_category_monthly_active_users.yml +++ b/config/metrics/counts_28d/20210427102618_code_review_category_monthly_active_users.yml @@ -2,17 +2,17 @@ data_category: Optional key_path: counts_monthly.aggregated_metrics.code_review_category_monthly_active_users name: "0" -description: -product_section: -product_stage: -product_group: -product_category: +description: +product_section: +product_stage: +product_group: +product_category: value_type: number status: data_available milestone: "13.12" -introduced_by_url: +introduced_by_url: time_frame: 28d -data_source: +data_source: distribution: - ce - ee @@ -21,3 +21,4 @@ tier: - premium - ultimate skip_validation: true +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210427103010_code_review_extension_category_monthly_active_users.yml b/config/metrics/counts_28d/20210427103010_code_review_extension_category_monthly_active_users.yml index 5dba13c4339..663bc22a8b1 100644 --- a/config/metrics/counts_28d/20210427103010_code_review_extension_category_monthly_active_users.yml +++ b/config/metrics/counts_28d/20210427103010_code_review_extension_category_monthly_active_users.yml @@ -2,17 +2,17 @@ data_category: Optional key_path: counts_monthly.aggregated_metrics.code_review_extension_category_monthly_active_users name: "0" -description: -product_section: -product_stage: -product_group: -product_category: +description: +product_section: +product_stage: +product_group: +product_category: value_type: number status: data_available milestone: "13.12" -introduced_by_url: +introduced_by_url: time_frame: 28d -data_source: +data_source: distribution: - ce - ee @@ -21,3 +21,4 @@ tier: - premium - ultimate skip_validation: true +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210427103119_code_review_group_monthly_active_users.yml b/config/metrics/counts_28d/20210427103119_code_review_group_monthly_active_users.yml index 2a9c92b0840..16ca7da854d 100644 --- a/config/metrics/counts_28d/20210427103119_code_review_group_monthly_active_users.yml +++ b/config/metrics/counts_28d/20210427103119_code_review_group_monthly_active_users.yml @@ -2,17 +2,17 @@ data_category: Optional key_path: counts_monthly.aggregated_metrics.code_review_group_monthly_active_users name: "0" -description: -product_section: -product_stage: -product_group: -product_category: +description: +product_section: +product_stage: +product_group: +product_category: value_type: number status: data_available milestone: "13.12" -introduced_by_url: +introduced_by_url: time_frame: 28d -data_source: +data_source: distribution: - ce - ee @@ -21,3 +21,4 @@ tier: - premium - ultimate skip_validation: true +performance_indicator_type: [] diff --git a/config/metrics/counts_28d/20210427213346_geo_secondary_web_oauth_users.yml b/config/metrics/counts_28d/20210427213346_geo_secondary_web_oauth_users.yml index 66589c662c5..34d9e157975 100644 --- a/config/metrics/counts_28d/20210427213346_geo_secondary_web_oauth_users.yml +++ b/config/metrics/counts_28d/20210427213346_geo_secondary_web_oauth_users.yml @@ -2,17 +2,17 @@ data_category: Optional key_path: usage_activity_by_stage_monthly.enablement.geo_secondary_web_oauth_users name: "" -description: -product_section: -product_stage: -product_group: -product_category: +description: +product_section: +product_stage: +product_group: +product_category: value_type: number status: data_available milestone: "13.12" -introduced_by_url: +introduced_by_url: time_frame: 28d -data_source: +data_source: distribution: - ce - ee @@ -21,3 +21,6 @@ tier: - premium - ultimate skip_validation: true +performance_indicator_type: +- gmau +- paid_gmau diff --git a/doc/api/groups.md b/doc/api/groups.md index 81bf6fd38c4..3831aef10c9 100644 --- a/doc/api/groups.md +++ b/doc/api/groups.md @@ -288,11 +288,8 @@ Parameters: | `with_security_reports` | boolean | no | **(ULTIMATE)** Return only projects that have security reports artifacts present in any of their builds. This means "projects with security reports enabled". Default is `false` | 1. Order by similarity: Orders the results by a similarity score calculated from the provided `search` -URL parameter. This is an [alpha](https://about.gitlab.com/handbook/product/gitlab-the-product/#alpha) feature [introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/221043) in GitLab 13.3. - - The feature is behind a feature flag, you can [enable it](../administration/feature_flags.md#enable-or-disable-the-feature) -with the `similarity_search` flag. When using `order_by=similarity` the `sort` parameter is -ignored. When the `search` parameter is not provided, the API returns the projects ordered by `name`. +URL parameter. When using `order_by=similarity`, the `sort` parameter is ignored. When the `search` +parameter is not provided, the API returns the projects ordered by `name`. Example response: diff --git a/doc/development/usage_ping/dictionary.md b/doc/development/usage_ping/dictionary.md index b201dfc421f..abd8da373ec 100644 --- a/doc/development/usage_ping/dictionary.md +++ b/doc/development/usage_ping/dictionary.md @@ -5024,7 +5024,7 @@ Total GitLab Pages domains [YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_all/20210216181946_pages_domains.yml) -Group: `group::release management` +Group: `group::release` Data Category: `Optional` diff --git a/lib/api/groups.rb b/lib/api/groups.rb index 760f2adae01..0896357cc73 100644 --- a/lib/api/groups.rb +++ b/lib/api/groups.rb @@ -137,7 +137,7 @@ module API # rubocop: disable CodeReuse/ActiveRecord def handle_similarity_order(group, projects) - if params[:search].present? && Feature.enabled?(:similarity_search, group, default_enabled: true) + if params[:search].present? projects.sorted_by_similarity_desc(params[:search]) else order_options = { name: :asc } diff --git a/lib/gitlab/quick_actions/issuable_actions.rb b/lib/gitlab/quick_actions/issuable_actions.rb index 3cec734c2e7..cf5c9296d8c 100644 --- a/lib/gitlab/quick_actions/issuable_actions.rb +++ b/lib/gitlab/quick_actions/issuable_actions.rb @@ -246,14 +246,20 @@ module Gitlab params '1 / S1 / Critical' types Issue condition do - quick_action_target.supports_severity? + !quick_action_target.persisted? || quick_action_target.supports_severity? end parse_params do |severity| find_severity(severity) end command :severity do |severity| + next unless quick_action_target.supports_severity? + if severity - ::Issues::UpdateService.new(project: quick_action_target.project, current_user: current_user, params: { severity: severity }).execute(quick_action_target) + if quick_action_target.persisted? + ::Issues::UpdateService.new(project: quick_action_target.project, current_user: current_user, params: { severity: severity }).execute(quick_action_target) + else + quick_action_target.build_issuable_severity(severity: severity) + end @execution_message[:severity] = _("Severity updated to %{severity}.") % { severity: severity.capitalize } else diff --git a/locale/gitlab.pot b/locale/gitlab.pot index d8f0d38ee17..339e6d192ca 100644 --- a/locale/gitlab.pot +++ b/locale/gitlab.pot @@ -11672,9 +11672,6 @@ msgid_plural "Dismiss %d selected vulnerabilities as" msgstr[0] "" msgstr[1] "" -msgid "Dismiss DevOps Report introduction" -msgstr "" - msgid "Dismiss Value Stream Analytics introduction box" msgstr "" diff --git a/spec/controllers/admin/runners_controller_spec.rb b/spec/controllers/admin/runners_controller_spec.rb index b5e7af2c012..8e57b4f03a7 100644 --- a/spec/controllers/admin/runners_controller_spec.rb +++ b/spec/controllers/admin/runners_controller_spec.rb @@ -12,42 +12,11 @@ RSpec.describe Admin::RunnersController do describe '#index' do render_views - before do - stub_feature_flags(runner_list_view_vue_ui: false) - end - it 'lists all runners' do get :index expect(response).to have_gitlab_http_status(:ok) - end - - it 'avoids N+1 queries', :request_store do - get :index - - control_count = ActiveRecord::QueryRecorder.new { get :index }.count - - create_list(:ci_runner, 5, :tagged_only) - - # There is still an N+1 query for `runner.builds.count` - # We also need to add 1 because it takes 2 queries to preload tags - # also looking for token nonce requires database queries - expect { get :index }.not_to exceed_query_limit(control_count + 16) - - expect(response).to have_gitlab_http_status(:ok) - expect(response.body).to have_content('tag1') - expect(response.body).to have_content('tag2') - end - - it 'paginates runners' do - stub_const("Admin::RunnersController::NUMBER_OF_RUNNERS_PER_PAGE", 1) - - create(:ci_runner) - - get :index - - expect(response).to have_gitlab_http_status(:ok) - expect(assigns(:runners).count).to be(1) + expect(response).to render_template(:index) end end diff --git a/spec/features/admin/admin_dev_ops_report_spec.rb b/spec/features/admin/admin_dev_ops_report_spec.rb index 8f1960b681c..cee79f8f440 100644 --- a/spec/features/admin/admin_dev_ops_report_spec.rb +++ b/spec/features/admin/admin_dev_ops_report_spec.rb @@ -19,7 +19,9 @@ RSpec.describe 'DevOps Report page', :js do expect(page).to have_content 'Introducing Your DevOps Report' - find('.js-close-callout').click + page.within(find('[data-testid="devops-score-container"]')) do + find('[data-testid="close-icon"]').click + end expect(page).not_to have_content 'Introducing Your DevOps Report' end diff --git a/spec/frontend/admin/analytics/devops_score/components/devops_score_callout_spec.js b/spec/frontend/admin/analytics/devops_score/components/devops_score_callout_spec.js new file mode 100644 index 00000000000..ee14e002f1b --- /dev/null +++ b/spec/frontend/admin/analytics/devops_score/components/devops_score_callout_spec.js @@ -0,0 +1,67 @@ +import { GlBanner } from '@gitlab/ui'; +import { shallowMount } from '@vue/test-utils'; +import DevopsScoreCallout from '~/analytics/devops_report/components/devops_score_callout.vue'; +import { INTRO_COOKIE_KEY } from '~/analytics/devops_report/constants'; +import * as utils from '~/lib/utils/common_utils'; +import { devopsReportDocsPath, devopsScoreIntroImagePath } from '../mock_data'; + +describe('DevopsScoreCallout', () => { + let wrapper; + + const createComponent = () => { + wrapper = shallowMount(DevopsScoreCallout, { + provide: { + devopsReportDocsPath, + devopsScoreIntroImagePath, + }, + }); + }; + + const findBanner = () => wrapper.findComponent(GlBanner); + + afterEach(() => { + wrapper.destroy(); + }); + + describe('with no cookie set', () => { + beforeEach(() => { + utils.setCookie = jest.fn(); + + createComponent(); + }); + + it('displays the banner', () => { + expect(findBanner().exists()).toBe(true); + }); + + it('does not call setCookie', () => { + expect(utils.setCookie).not.toHaveBeenCalled(); + }); + + describe('when the close button is clicked', () => { + beforeEach(() => { + findBanner().vm.$emit('close'); + }); + + it('sets the dismissed cookie', () => { + expect(utils.setCookie).toHaveBeenCalledWith(INTRO_COOKIE_KEY, 'true'); + }); + + it('hides the banner', () => { + expect(findBanner().exists()).toBe(false); + }); + }); + }); + + describe('with the dismissed cookie set', () => { + beforeEach(() => { + jest.spyOn(utils, 'getCookie').mockReturnValue('true'); + + createComponent(); + }); + + it('hides the banner', () => { + expect(findBanner().exists()).toBe(false); + }); + }); +}); diff --git a/spec/frontend/admin/analytics/devops_score/components/devops_score_spec.js b/spec/frontend/admin/analytics/devops_score/components/devops_score_spec.js index 7c20bbe21c8..cd8b70bccf0 100644 --- a/spec/frontend/admin/analytics/devops_score/components/devops_score_spec.js +++ b/spec/frontend/admin/analytics/devops_score/components/devops_score_spec.js @@ -3,6 +3,7 @@ import { GlSingleStat } from '@gitlab/ui/dist/charts'; import { mount } from '@vue/test-utils'; import { extendedWrapper } from 'helpers/vue_test_utils_helper'; import DevopsScore from '~/analytics/devops_report/components/devops_score.vue'; +import DevopsScoreCallout from '~/analytics/devops_report/components/devops_score_callout.vue'; import { devopsScoreMetricsData, devopsReportDocsPath, @@ -30,12 +31,17 @@ describe('DevopsScore', () => { const findCol = (testId) => findTable().find(`[data-testid="${testId}"]`); const findUsageCol = () => findCol('usageCol'); const findDevopsScoreApp = () => wrapper.findByTestId('devops-score-app'); + const bannerExists = () => wrapper.findComponent(DevopsScoreCallout).exists(); describe('with no data', () => { beforeEach(() => { createComponent({ devopsScoreMetrics: {} }); }); + it('includes the DevopsScoreCallout component ', () => { + expect(bannerExists()).toBe(true); + }); + describe('empty state', () => { it('displays the empty state', () => { expect(findEmptyState().exists()).toBe(true); @@ -62,6 +68,10 @@ describe('DevopsScore', () => { createComponent(); }); + it('includes the DevopsScoreCallout component ', () => { + expect(bannerExists()).toBe(true); + }); + it('does not display the empty state', () => { expect(findEmptyState().exists()).toBe(false); }); diff --git a/spec/frontend/admin/analytics/devops_score/mock_data.js b/spec/frontend/admin/analytics/devops_score/mock_data.js index ae0c01a2661..e8f8b778ffa 100644 --- a/spec/frontend/admin/analytics/devops_score/mock_data.js +++ b/spec/frontend/admin/analytics/devops_score/mock_data.js @@ -44,3 +44,5 @@ export const devopsScoreMetricsData = { export const devopsReportDocsPath = 'docs-path'; export const noDataImagePath = 'image-path'; + +export const devopsScoreIntroImagePath = 'image-path'; diff --git a/spec/frontend/packages_and_registries/package_registry/components/details/__snapshots__/npm_installation_spec.js.snap b/spec/frontend/packages_and_registries/package_registry/components/details/__snapshots__/npm_installation_spec.js.snap index 015c7b94dde..6a7f14dc33f 100644 --- a/spec/frontend/packages_and_registries/package_registry/components/details/__snapshots__/npm_installation_spec.js.snap +++ b/spec/frontend/packages_and_registries/package_registry/components/details/__snapshots__/npm_installation_spec.js.snap @@ -9,7 +9,7 @@ exports[`NpmInstallation renders all the messages 1`] = ` <code-instruction-stub copytext="Copy npm command" - instruction="npm i @Test/package" + instruction="npm i @gitlab-org/package-15" label="" trackingaction="copy_npm_install_command" trackinglabel="code_instruction" @@ -23,7 +23,7 @@ exports[`NpmInstallation renders all the messages 1`] = ` <code-instruction-stub copytext="Copy npm setup command" - instruction="echo @Test:registry=undefined/ >> .npmrc" + instruction="echo @gitlab-org:registry=npmPath/ >> .npmrc" label="" trackingaction="copy_npm_setup_command" trackinglabel="code_instruction" diff --git a/spec/frontend/packages_and_registries/package_registry/components/details/__snapshots__/nuget_installation_spec.js.snap b/spec/frontend/packages_and_registries/package_registry/components/details/__snapshots__/nuget_installation_spec.js.snap index 04532743952..29ddd7b77ed 100644 --- a/spec/frontend/packages_and_registries/package_registry/components/details/__snapshots__/nuget_installation_spec.js.snap +++ b/spec/frontend/packages_and_registries/package_registry/components/details/__snapshots__/nuget_installation_spec.js.snap @@ -9,7 +9,7 @@ exports[`NugetInstallation renders all the messages 1`] = ` <code-instruction-stub copytext="Copy NuGet Command" - instruction="foo/command" + instruction="nuget install @gitlab-org/package-15 -Source \\"GitLab\\"" label="NuGet Command" trackingaction="copy_nuget_install_command" trackinglabel="code_instruction" @@ -23,7 +23,7 @@ exports[`NugetInstallation renders all the messages 1`] = ` <code-instruction-stub copytext="Copy NuGet Setup Command" - instruction="foo/setup" + instruction="nuget source Add -Name \\"GitLab\\" -Source \\"nugetPath\\" -UserName <your_username> -Password <your_token>" label="Add NuGet Source" trackingaction="copy_nuget_setup_command" trackinglabel="code_instruction" diff --git a/spec/frontend/packages_and_registries/package_registry/components/details/__snapshots__/pypi_installation_spec.js.snap b/spec/frontend/packages_and_registries/package_registry/components/details/__snapshots__/pypi_installation_spec.js.snap index d5bb825d8d1..158bbbc3463 100644 --- a/spec/frontend/packages_and_registries/package_registry/components/details/__snapshots__/pypi_installation_spec.js.snap +++ b/spec/frontend/packages_and_registries/package_registry/components/details/__snapshots__/pypi_installation_spec.js.snap @@ -10,7 +10,7 @@ exports[`PypiInstallation renders all the messages 1`] = ` <code-instruction-stub copytext="Copy Pip command" data-testid="pip-command" - instruction="pip install" + instruction="pip install @gitlab-org/package-15 --extra-index-url pypiPath" label="Pip Command" trackingaction="copy_pip_install_command" trackinglabel="code_instruction" @@ -31,7 +31,10 @@ exports[`PypiInstallation renders all the messages 1`] = ` <code-instruction-stub copytext="Copy .pypirc content" data-testid="pypi-setup-content" - instruction="python setup" + instruction="[gitlab] +repository = pypiSetupPath +username = __token__ +password = <your personal access token>" label="" multiline="true" trackingaction="copy_pypi_setup_command" diff --git a/spec/frontend/packages_and_registries/package_registry/components/details/app_spec.js b/spec/frontend/packages_and_registries/package_registry/components/details/app_spec.js index e6d12f5e479..d6214402fcc 100644 --- a/spec/frontend/packages_and_registries/package_registry/components/details/app_spec.js +++ b/spec/frontend/packages_and_registries/package_registry/components/details/app_spec.js @@ -7,6 +7,7 @@ import createFlash from '~/flash'; import AdditionalMetadata from '~/packages_and_registries/package_registry/components/details/additional_metadata.vue'; import PackagesApp from '~/packages_and_registries/package_registry/components/details/app.vue'; +import InstallationCommands from '~/packages_and_registries/package_registry/components/details/installation_commands.vue'; import PackageHistory from '~/packages_and_registries/package_registry/components/details/package_history.vue'; import PackageTitle from '~/packages_and_registries/package_registry/components/details/package_title.vue'; import { FETCH_PACKAGE_DETAILS_ERROR_MESSAGE } from '~/packages_and_registries/package_registry/constants'; @@ -50,6 +51,7 @@ describe('PackagesApp', () => { const findPackageTitle = () => wrapper.findComponent(PackageTitle); const findPackageHistory = () => wrapper.findComponent(PackageHistory); const findAdditionalMetadata = () => wrapper.findComponent(AdditionalMetadata); + const findInstallationCommands = () => wrapper.findComponent(InstallationCommands); afterEach(() => { wrapper.destroy(); @@ -98,7 +100,7 @@ describe('PackagesApp', () => { }); }); - it('renders additional metadata and has the right props', async () => { + it('renders additional metadata and has the right props', async () => { createComponent(); await waitForPromises(); @@ -108,4 +110,15 @@ describe('PackagesApp', () => { packageEntity: expect.objectContaining(packageData()), }); }); + + it('renders installation commands and has the right props', async () => { + createComponent(); + + await waitForPromises(); + + expect(findInstallationCommands().exists()).toBe(true); + expect(findInstallationCommands().props()).toMatchObject({ + packageEntity: expect.objectContaining(packageData()), + }); + }); }); diff --git a/spec/frontend/packages_and_registries/package_registry/components/details/npm_installation_spec.js b/spec/frontend/packages_and_registries/package_registry/components/details/npm_installation_spec.js index e4b41133fd5..083c6858ad0 100644 --- a/spec/frontend/packages_and_registries/package_registry/components/details/npm_installation_spec.js +++ b/spec/frontend/packages_and_registries/package_registry/components/details/npm_installation_spec.js @@ -1,41 +1,40 @@ -import { shallowMount, createLocalVue } from '@vue/test-utils'; import { nextTick } from 'vue'; -import Vuex from 'vuex'; -import { registryUrl as nugetPath } from 'jest/packages/details/mock_data'; -import { npmPackage as packageEntity } from 'jest/packages/mock_data'; -import { TrackingActions } from '~/packages/details/constants'; -import { npmInstallationCommand, npmSetupCommand } from '~/packages/details/store/getters'; +import { shallowMountExtended } from 'helpers/vue_test_utils_helper'; + +import { packageData } from 'jest/packages_and_registries/package_registry/mock_data'; import InstallationTitle from '~/packages_and_registries/package_registry/components/details/installation_title.vue'; import NpmInstallation from '~/packages_and_registries/package_registry/components/details/npm_installation.vue'; +import { + TRACKING_ACTION_COPY_NPM_INSTALL_COMMAND, + TRACKING_ACTION_COPY_NPM_SETUP_COMMAND, + TRACKING_ACTION_COPY_YARN_INSTALL_COMMAND, + TRACKING_ACTION_COPY_YARN_SETUP_COMMAND, + PACKAGE_TYPE_NPM, + NPM_PACKAGE_MANAGER, + YARN_PACKAGE_MANAGER, +} from '~/packages_and_registries/package_registry/constants'; import CodeInstructions from '~/vue_shared/components/registry/code_instruction.vue'; -const localVue = createLocalVue(); -localVue.use(Vuex); +const packageEntity = { ...packageData(), packageType: PACKAGE_TYPE_NPM }; describe('NpmInstallation', () => { let wrapper; - const npmInstallationCommandLabel = 'npm i @Test/package'; - const yarnInstallationCommandLabel = 'yarn add @Test/package'; + const npmInstallationCommandLabel = 'npm i @gitlab-org/package-15'; + const yarnInstallationCommandLabel = 'yarn add @gitlab-org/package-15'; - const findCodeInstructions = () => wrapper.findAll(CodeInstructions); + const findCodeInstructions = () => wrapper.findAllComponents(CodeInstructions); const findInstallationTitle = () => wrapper.findComponent(InstallationTitle); function createComponent({ data = {} } = {}) { - const store = new Vuex.Store({ - state: { - packageEntity, - nugetPath, + wrapper = shallowMountExtended(NpmInstallation, { + provide: { + npmHelpPath: 'npmHelpPath', + npmPath: 'npmPath', }, - getters: { - npmInstallationCommand, - npmSetupCommand, + propsData: { + packageEntity, }, - }); - - wrapper = shallowMount(NpmInstallation, { - localVue, - store, data() { return data; }, @@ -58,10 +57,10 @@ describe('NpmInstallation', () => { it('has the installation title component', () => { expect(findInstallationTitle().exists()).toBe(true); expect(findInstallationTitle().props()).toMatchObject({ - packageType: 'npm', + packageType: NPM_PACKAGE_MANAGER, options: [ - { value: 'npm', label: 'Show NPM commands' }, - { value: 'yarn', label: 'Show Yarn commands' }, + { value: NPM_PACKAGE_MANAGER, label: 'Show NPM commands' }, + { value: YARN_PACKAGE_MANAGER, label: 'Show Yarn commands' }, ], }); }); @@ -70,7 +69,7 @@ describe('NpmInstallation', () => { createComponent(); expect(findCodeInstructions().at(0).props('instruction')).toBe(npmInstallationCommandLabel); - findInstallationTitle().vm.$emit('change', 'yarn'); + findInstallationTitle().vm.$emit('change', YARN_PACKAGE_MANAGER); await nextTick(); @@ -86,37 +85,37 @@ describe('NpmInstallation', () => { expect(findCodeInstructions().at(0).props()).toMatchObject({ instruction: npmInstallationCommandLabel, multiline: false, - trackingAction: TrackingActions.COPY_NPM_INSTALL_COMMAND, + trackingAction: TRACKING_ACTION_COPY_NPM_INSTALL_COMMAND, }); }); it('renders the correct setup command', () => { expect(findCodeInstructions().at(1).props()).toMatchObject({ - instruction: 'echo @Test:registry=undefined/ >> .npmrc', + instruction: 'echo @gitlab-org:registry=npmPath/ >> .npmrc', multiline: false, - trackingAction: TrackingActions.COPY_NPM_SETUP_COMMAND, + trackingAction: TRACKING_ACTION_COPY_NPM_SETUP_COMMAND, }); }); }); describe('yarn', () => { beforeEach(() => { - createComponent({ data: { instructionType: 'yarn' } }); + createComponent({ data: { instructionType: YARN_PACKAGE_MANAGER } }); }); it('renders the correct setup command', () => { expect(findCodeInstructions().at(0).props()).toMatchObject({ instruction: yarnInstallationCommandLabel, multiline: false, - trackingAction: TrackingActions.COPY_YARN_INSTALL_COMMAND, + trackingAction: TRACKING_ACTION_COPY_YARN_INSTALL_COMMAND, }); }); it('renders the correct registry command', () => { expect(findCodeInstructions().at(1).props()).toMatchObject({ - instruction: 'echo \\"@Test:registry\\" \\"undefined/\\" >> .yarnrc', + instruction: 'echo \\"@gitlab-org:registry\\" \\"npmPath/\\" >> .yarnrc', multiline: false, - trackingAction: TrackingActions.COPY_YARN_SETUP_COMMAND, + trackingAction: TRACKING_ACTION_COPY_YARN_SETUP_COMMAND, }); }); }); diff --git a/spec/frontend/packages_and_registries/package_registry/components/details/nuget_installation_spec.js b/spec/frontend/packages_and_registries/package_registry/components/details/nuget_installation_spec.js index c642714f7cd..c48a3f07299 100644 --- a/spec/frontend/packages_and_registries/package_registry/components/details/nuget_installation_spec.js +++ b/spec/frontend/packages_and_registries/package_registry/components/details/nuget_installation_spec.js @@ -1,39 +1,35 @@ -import { shallowMount, createLocalVue } from '@vue/test-utils'; -import Vuex from 'vuex'; -import { registryUrl as nugetPath } from 'jest/packages/details/mock_data'; -import { nugetPackage as packageEntity } from 'jest/packages/mock_data'; -import { TrackingActions } from '~/packages/details/constants'; +import { shallowMountExtended } from 'helpers/vue_test_utils_helper'; +import { packageData } from 'jest/packages_and_registries/package_registry/mock_data'; import InstallationTitle from '~/packages_and_registries/package_registry/components/details/installation_title.vue'; import NugetInstallation from '~/packages_and_registries/package_registry/components/details/nuget_installation.vue'; +import { + TRACKING_ACTION_COPY_NUGET_INSTALL_COMMAND, + TRACKING_ACTION_COPY_NUGET_SETUP_COMMAND, + PACKAGE_TYPE_NUGET, +} from '~/packages_and_registries/package_registry/constants'; import CodeInstructions from '~/vue_shared/components/registry/code_instruction.vue'; -const localVue = createLocalVue(); -localVue.use(Vuex); +const packageEntity = { ...packageData(), packageType: PACKAGE_TYPE_NUGET }; describe('NugetInstallation', () => { let wrapper; - const nugetInstallationCommandStr = 'foo/command'; - const nugetSetupCommandStr = 'foo/setup'; + const nugetInstallationCommandStr = 'nuget install @gitlab-org/package-15 -Source "GitLab"'; + const nugetSetupCommandStr = + 'nuget source Add -Name "GitLab" -Source "nugetPath" -UserName <your_username> -Password <your_token>'; - const store = new Vuex.Store({ - state: { - packageEntity, - nugetPath, - }, - getters: { - nugetInstallationCommand: () => nugetInstallationCommandStr, - nugetSetupCommand: () => nugetSetupCommandStr, - }, - }); - - const findCodeInstructions = () => wrapper.findAll(CodeInstructions); + const findCodeInstructions = () => wrapper.findAllComponents(CodeInstructions); const findInstallationTitle = () => wrapper.findComponent(InstallationTitle); function createComponent() { - wrapper = shallowMount(NugetInstallation, { - localVue, - store, + wrapper = shallowMountExtended(NugetInstallation, { + provide: { + nugetHelpPath: 'nugetHelpPath', + nugetPath: 'nugetPath', + }, + propsData: { + packageEntity, + }, }); } @@ -63,7 +59,7 @@ describe('NugetInstallation', () => { it('renders the correct command', () => { expect(findCodeInstructions().at(0).props()).toMatchObject({ instruction: nugetInstallationCommandStr, - trackingAction: TrackingActions.COPY_NUGET_INSTALL_COMMAND, + trackingAction: TRACKING_ACTION_COPY_NUGET_INSTALL_COMMAND, }); }); }); @@ -72,7 +68,7 @@ describe('NugetInstallation', () => { it('renders the correct command', () => { expect(findCodeInstructions().at(1).props()).toMatchObject({ instruction: nugetSetupCommandStr, - trackingAction: TrackingActions.COPY_NUGET_SETUP_COMMAND, + trackingAction: TRACKING_ACTION_COPY_NUGET_SETUP_COMMAND, }); }); }); diff --git a/spec/frontend/packages_and_registries/package_registry/components/details/pypi_installation_spec.js b/spec/frontend/packages_and_registries/package_registry/components/details/pypi_installation_spec.js index 43a09b53be5..410c1b65348 100644 --- a/spec/frontend/packages_and_registries/package_registry/components/details/pypi_installation_spec.js +++ b/spec/frontend/packages_and_registries/package_registry/components/details/pypi_installation_spec.js @@ -1,38 +1,39 @@ -import { shallowMount, createLocalVue } from '@vue/test-utils'; -import Vuex from 'vuex'; -import { pypiPackage as packageEntity } from 'jest/packages/mock_data'; +import { shallowMountExtended } from 'helpers/vue_test_utils_helper'; +import { packageData } from 'jest/packages_and_registries/package_registry/mock_data'; import InstallationTitle from '~/packages_and_registries/package_registry/components/details/installation_title.vue'; import PypiInstallation from '~/packages_and_registries/package_registry/components/details/pypi_installation.vue'; +import { + PACKAGE_TYPE_PYPI, + TRACKING_ACTION_COPY_PIP_INSTALL_COMMAND, + TRACKING_ACTION_COPY_PYPI_SETUP_COMMAND, +} from '~/packages_and_registries/package_registry/constants'; -const localVue = createLocalVue(); -localVue.use(Vuex); +const packageEntity = { ...packageData(), packageType: PACKAGE_TYPE_PYPI }; describe('PypiInstallation', () => { let wrapper; - const pipCommandStr = 'pip install'; - const pypiSetupStr = 'python setup'; + const pipCommandStr = 'pip install @gitlab-org/package-15 --extra-index-url pypiPath'; + const pypiSetupStr = `[gitlab] +repository = pypiSetupPath +username = __token__ +password = <your personal access token>`; - const store = new Vuex.Store({ - state: { - packageEntity, - pypiHelpPath: 'foo', - }, - getters: { - pypiPipCommand: () => pipCommandStr, - pypiSetupCommand: () => pypiSetupStr, - }, - }); - - const pipCommand = () => wrapper.find('[data-testid="pip-command"]'); - const setupInstruction = () => wrapper.find('[data-testid="pypi-setup-content"]'); + const pipCommand = () => wrapper.findByTestId('pip-command'); + const setupInstruction = () => wrapper.findByTestId('pypi-setup-content'); const findInstallationTitle = () => wrapper.findComponent(InstallationTitle); function createComponent() { - wrapper = shallowMount(PypiInstallation, { - localVue, - store, + wrapper = shallowMountExtended(PypiInstallation, { + provide: { + pypiHelpPath: 'pypiHelpPath', + pypiPath: 'pypiPath', + pypiSetupPath: 'pypiSetupPath', + }, + propsData: { + packageEntity, + }, }); } @@ -60,13 +61,20 @@ describe('PypiInstallation', () => { describe('installation commands', () => { it('renders the correct pip command', () => { - expect(pipCommand().props('instruction')).toBe(pipCommandStr); + expect(pipCommand().props()).toMatchObject({ + instruction: pipCommandStr, + trackingAction: TRACKING_ACTION_COPY_PIP_INSTALL_COMMAND, + }); }); }); describe('setup commands', () => { it('renders the correct setup block', () => { - expect(setupInstruction().props('instruction')).toBe(pypiSetupStr); + expect(setupInstruction().props()).toMatchObject({ + instruction: pypiSetupStr, + multiline: true, + trackingAction: TRACKING_ACTION_COPY_PYPI_SETUP_COMMAND, + }); }); }); }); diff --git a/spec/frontend/repository/components/breadcrumbs_spec.js b/spec/frontend/repository/components/breadcrumbs_spec.js index 93bfd3d9d32..0733cffe4f4 100644 --- a/spec/frontend/repository/components/breadcrumbs_spec.js +++ b/spec/frontend/repository/components/breadcrumbs_spec.js @@ -3,10 +3,14 @@ import { shallowMount, RouterLinkStub } from '@vue/test-utils'; import Breadcrumbs from '~/repository/components/breadcrumbs.vue'; import UploadBlobModal from '~/repository/components/upload_blob_modal.vue'; +const defaultMockRoute = { + name: 'blobPath', +}; + describe('Repository breadcrumbs component', () => { let wrapper; - const factory = (currentPath, extraProps = {}) => { + const factory = (currentPath, extraProps = {}, mockRoute = {}) => { const $apollo = { queries: { userPermissions: { @@ -23,7 +27,13 @@ describe('Repository breadcrumbs component', () => { stubs: { RouterLink: RouterLinkStub, }, - mocks: { $apollo }, + mocks: { + $route: { + defaultMockRoute, + ...mockRoute, + }, + $apollo, + }, }); }; @@ -69,6 +79,21 @@ describe('Repository breadcrumbs component', () => { expect(wrapper.find(GlDropdown).exists()).toBe(false); }); + it.each` + routeName | isRendered + ${'blobPath'} | ${false} + ${'blobPathDecoded'} | ${false} + ${'treePath'} | ${true} + ${'treePathDecoded'} | ${true} + ${'projectRoot'} | ${true} + `( + 'does render add to tree dropdown $isRendered when route is $routeName', + ({ routeName, isRendered }) => { + factory('app/assets/javascripts.js', { canCollaborate: true }, { name: routeName }); + expect(wrapper.find(GlDropdown).exists()).toBe(isRendered); + }, + ); + it('renders add to tree dropdown when permissions are true', async () => { factory('/', { canCollaborate: true }); diff --git a/spec/lib/gitlab/data_builder/pipeline_spec.rb b/spec/lib/gitlab/data_builder/pipeline_spec.rb index 163de0fd80e..4c23b24aa31 100644 --- a/spec/lib/gitlab/data_builder/pipeline_spec.rb +++ b/spec/lib/gitlab/data_builder/pipeline_spec.rb @@ -15,7 +15,7 @@ RSpec.describe Gitlab::DataBuilder::Pipeline do user: user) end - let_it_be(:build) { create(:ci_build, pipeline: pipeline) } + let!(:build) { create(:ci_build, pipeline: pipeline) } describe '.build' do let(:data) { described_class.build(pipeline) } diff --git a/spec/models/concerns/each_batch_spec.rb b/spec/models/concerns/each_batch_spec.rb index 5f4e5d4bd98..f1fb4fcbd03 100644 --- a/spec/models/concerns/each_batch_spec.rb +++ b/spec/models/concerns/each_batch_spec.rb @@ -9,6 +9,8 @@ RSpec.describe EachBatch do include EachBatch self.table_name = 'users' + + scope :never_signed_in, -> { where(sign_in_count: 0) } end end @@ -72,5 +74,16 @@ RSpec.describe EachBatch do expect(ids).to eq(ids.sort.reverse) end + + describe 'current scope' do + let(:entry) { create(:user, sign_in_count: 1) } + let(:ids_with_new_relation) { model.where(id: entry.id).pluck(:id) } + + it 'does not leak current scope to block being executed' do + model.never_signed_in.each_batch(of: 5) do |relation| + expect(ids_with_new_relation).to include(entry.id) + end + end + end end end diff --git a/spec/models/hooks/system_hook_spec.rb b/spec/models/hooks/system_hook_spec.rb index a99263078b3..17cb5da977a 100644 --- a/spec/models/hooks/system_hook_spec.rb +++ b/spec/models/hooks/system_hook_spec.rb @@ -16,6 +16,21 @@ RSpec.describe SystemHook do end end + describe 'validations' do + describe 'url' do + let(:url) { 'http://localhost:9000' } + + it { is_expected.not_to allow_value(url).for(:url) } + + it 'is valid if application settings allow local requests from system hooks' do + settings = ApplicationSetting.new(allow_local_requests_from_system_hooks: true) + allow(ApplicationSetting).to receive(:current).and_return(settings) + + is_expected.to allow_value(url).for(:url) + end + end + end + describe "execute", :sidekiq_might_not_need_inline do let(:system_hook) { create(:system_hook) } let(:user) { create(:user) } diff --git a/spec/models/hooks/web_hook_spec.rb b/spec/models/hooks/web_hook_spec.rb index af51a518bff..c68ad3bf0c4 100644 --- a/spec/models/hooks/web_hook_spec.rb +++ b/spec/models/hooks/web_hook_spec.rb @@ -32,6 +32,19 @@ RSpec.describe WebHook do it { is_expected.not_to allow_value('ftp://example.com').for(:url) } it { is_expected.not_to allow_value('herp-and-derp').for(:url) } + context 'when url is local' do + let(:url) { 'http://localhost:9000' } + + it { is_expected.not_to allow_value(url).for(:url) } + + it 'is valid if application settings allow local requests from web hooks' do + settings = ApplicationSetting.new(allow_local_requests_from_web_hooks_and_services: true) + allow(ApplicationSetting).to receive(:current).and_return(settings) + + is_expected.to allow_value(url).for(:url) + end + end + it 'strips :url before saving it' do hook.url = ' https://example.com ' hook.save! diff --git a/spec/models/integrations/datadog_spec.rb b/spec/models/integrations/datadog_spec.rb index 0920302e386..677bd4c5e48 100644 --- a/spec/models/integrations/datadog_spec.rb +++ b/spec/models/integrations/datadog_spec.rb @@ -140,21 +140,29 @@ RSpec.describe Integrations::Datadog do end describe '#test' do - context 'when request is succesful' do - subject { saved_instance.test(pipeline_data) } + subject(:result) { saved_instance.test(pipeline_data) } - before do - stub_request(:post, expected_hook_url).to_return(body: 'OK') - end + let(:body) { 'OK' } + let(:status) { 200 } + + before do + stub_request(:post, expected_hook_url).to_return(body: body, status: status) + end + + context 'when request is successful with a HTTP 200 status' do it { is_expected.to eq({ success: true, result: 'OK' }) } end - context 'when request fails' do - subject { saved_instance.test(pipeline_data) } + context 'when request is successful with a HTTP 202 status' do + let(:status) { 202 } + + it { is_expected.to eq({ success: true, result: 'OK' }) } + end + + context 'when request fails with a HTTP 500 status' do + let(:status) { 500 } + let(:body) { 'CRASH!!!' } - before do - stub_request(:post, expected_hook_url).to_return(body: 'CRASH!!!', status: 500) - end it { is_expected.to eq({ success: false, result: 'CRASH!!!' }) } end end diff --git a/spec/requests/api/groups_spec.rb b/spec/requests/api/groups_spec.rb index 661ca8d5f3c..30df47ccc41 100644 --- a/spec/requests/api/groups_spec.rb +++ b/spec/requests/api/groups_spec.rb @@ -965,23 +965,6 @@ RSpec.describe API::Groups do expect(project_names).to eq(['Project', 'Test', 'Test Project']) end end - - context 'when `similarity_search` feature flag is off' do - before do - stub_feature_flags(similarity_search: false) - end - - it 'returns items ordered by name' do - subject - - expect(response).to have_gitlab_http_status(:ok) - expect(response).to include_pagination_headers - expect(json_response.length).to eq(2) - - project_names = json_response.map { |proj| proj['name'] } - expect(project_names).to eq(['Test', 'Test Project']) - end - end end it "returns the group's projects with simple representation" do diff --git a/spec/services/ci/create_pipeline_service/cross_project_pipeline_spec.rb b/spec/services/ci/create_pipeline_service/cross_project_pipeline_spec.rb index 9abe089952b..e1d60ed57ef 100644 --- a/spec/services/ci/create_pipeline_service/cross_project_pipeline_spec.rb +++ b/spec/services/ci/create_pipeline_service/cross_project_pipeline_spec.rb @@ -6,7 +6,7 @@ RSpec.describe Ci::CreatePipelineService, '#execute' do let_it_be(:group) { create(:group, name: 'my-organization') } let(:upstream_project) { create(:project, :repository, name: 'upstream', group: group) } - let(:downstram_project) { create(:project, :repository, name: 'downstream', group: group) } + let(:downstream_project) { create(:project, :repository, name: 'downstream', group: group) } let(:user) { create(:user) } let(:service) do @@ -15,9 +15,9 @@ RSpec.describe Ci::CreatePipelineService, '#execute' do before do upstream_project.add_developer(user) - downstram_project.add_developer(user) + downstream_project.add_developer(user) create_gitlab_ci_yml(upstream_project, upstream_config) - create_gitlab_ci_yml(downstram_project, downstream_config) + create_gitlab_ci_yml(downstream_project, downstream_config) end context 'with resource group', :aggregate_failures do diff --git a/spec/services/quick_actions/interpret_service_spec.rb b/spec/services/quick_actions/interpret_service_spec.rb index 812aa11d7fd..a1b726071d6 100644 --- a/spec/services/quick_actions/interpret_service_spec.rb +++ b/spec/services/quick_actions/interpret_service_spec.rb @@ -2096,6 +2096,19 @@ RSpec.describe QuickActions::InterpretService do end end + context 'when quick action is used on creation' do + let(:content) { '/severity s3' } + let(:issuable) { build(:incident, project: project) } + + it_behaves_like 'updates the severity', 'medium' + + context 'issuable does not support severity' do + let(:issuable) { build(:issue, project: project) } + + it_behaves_like 'failed command', '' + end + end + context 'severity given with S format' do let(:content) { '/severity s3' } |