From 99befc3927c859a3ecc9ef5d895d3f820ac5317d Mon Sep 17 00:00:00 2001 From: GitLab Bot Date: Tue, 27 Jul 2021 15:09:49 +0000 Subject: [PATCH] Add latest changes from gitlab-org/gitlab@master --- .gitlab/ci/cng.gitlab-ci.yml | 2 +- .gitlab/ci/review.gitlab-ci.yml | 9 +- .../boards/components/board_form.vue | 13 +- .../queries/group_users_search.query.graphql | 15 ++ .../components/sidebar_dropdown_widget.vue | 32 ++- app/assets/javascripts/sidebar/constants.js | 2 + app/models/integrations/pushover.rb | 51 +++-- .../_performance_bar.html.haml | 4 +- .../metrics_and_profiling.html.haml | 4 +- app/views/admin/applications/show.html.haml | 48 +---- .../doorkeeper/applications/_show.html.haml | 9 + ...16180731_projects_imported_from_github.yml | 10 +- ...0210216183638_unique_users_all_imports.yml | 4 +- .../counts_28d/20210216183640_gitlab.yml | 16 +- .../counts_28d/20210216183642_gitlab_v1.yml | 16 +- .../20210216183644_gitlab_project.yml | 4 +- .../counts_28d/20210216183646_gitlab.yml | 2 +- .../counts_28d/20210216183648_github.yml | 2 +- .../counts_28d/20210216183650_bitbucket.yml | 2 +- .../20210216183652_bitbucket_server.yml | 2 +- .../counts_28d/20210216183653_gitea.yml | 2 +- .../metrics/counts_28d/20210216183655_git.yml | 2 +- .../counts_28d/20210216183657_manifest.yml | 4 +- .../20210216183659_gitlab_migration.yml | 4 +- .../counts_28d/20210216183701_jira.yml | 16 +- .../counts_28d/20210216183703_fogbugz.yml | 16 +- .../counts_28d/20210216183705_phabricator.yml | 16 +- .../metrics/counts_28d/20210216183707_csv.yml | 16 +- .../20210216183709_group_import.yml | 2 +- .../20210216183711_gitlab_migration.yml | 16 +- .../counts_28d/20210216183712_total.yml | 16 +- .../20210216183714_gitlab_project.yml | 16 +- .../counts_28d/20210216183716_gitlab.yml | 16 +- .../counts_28d/20210216183718_github.yml | 16 +- .../counts_28d/20210216183720_bitbucket.yml | 2 +- .../20210216183722_bitbucket_server.yml | 2 +- .../counts_28d/20210216183724_gitea.yml | 16 +- .../metrics/counts_28d/20210216183726_git.yml | 16 +- .../counts_28d/20210216183728_manifest.yml | 16 +- .../counts_28d/20210216183730_jira.yml | 16 +- .../counts_28d/20210216183731_fogbugz.yml | 16 +- .../counts_28d/20210216183733_phabricator.yml | 16 +- .../metrics/counts_28d/20210216183735_csv.yml | 16 +- .../20210216183737_groups_imported.yml | 10 +- ...16180628_projects_imported_from_github.yml | 8 +- ...16180630_projects_imported_from_github.yml | 10 +- ...0210216180632_unique_users_all_imports.yml | 8 +- .../counts_all/20210216180634_gitlab.yml | 8 +- .../counts_all/20210216180636_gitlab_v1.yml | 8 +- .../20210216180638_gitlab_project.yml | 2 +- .../counts_all/20210216180639_gitlab.yml | 2 +- .../counts_all/20210216180641_github.yml | 2 +- .../counts_all/20210216180643_bitbucket.yml | 2 +- .../20210216180645_bitbucket_server.yml | 2 +- .../counts_all/20210216180647_gitea.yml | 2 +- .../metrics/counts_all/20210216180649_git.yml | 2 +- .../counts_all/20210216180650_manifest.yml | 2 +- .../20210216180652_gitlab_migration.yml | 2 +- .../counts_all/20210216180654_jira.yml | 8 +- .../counts_all/20210216180656_fogbugz.yml | 8 +- .../counts_all/20210216180658_phabricator.yml | 8 +- .../metrics/counts_all/20210216180700_csv.yml | 8 +- .../20210216180702_group_import.yml | 10 +- .../20210216180703_gitlab_migration.yml | 8 +- .../counts_all/20210216180705_total.yml | 8 +- .../20210216180707_gitlab_project.yml | 8 +- .../counts_all/20210216180709_gitlab.yml | 8 +- .../counts_all/20210216180711_github.yml | 8 +- .../counts_all/20210216180713_bitbucket.yml | 8 +- .../20210216180715_bitbucket_server.yml | 8 +- .../counts_all/20210216180716_gitea.yml | 8 +- .../metrics/counts_all/20210216180718_git.yml | 8 +- .../counts_all/20210216180720_manifest.yml | 8 +- .../counts_all/20210216180722_jira.yml | 8 +- .../counts_all/20210216180724_fogbugz.yml | 8 +- .../counts_all/20210216180726_phabricator.yml | 8 +- .../metrics/counts_all/20210216180727_csv.yml | 8 +- .../20210216180729_groups_imported.yml | 8 +- config/metrics/schema.json | 7 + .../monitoring/performance/performance_bar.md | 47 +++-- doc/administration/wikis/index.md | 8 + doc/ci/docker/using_kaniko.md | 6 +- .../service_ping/metrics_dictionary.md | 1 + doc/development/usage_ping/dictionary.md | 186 +++++++++--------- doc/user/admin_area/settings/index.md | 2 +- .../metric_definition.yml | 1 + locale/gitlab.pot | 66 ++++--- qa/qa/resource/base.rb | 19 +- .../kubernetes/kubernetes_integration_spec.rb | 6 +- qa/spec/resource/base_spec.rb | 72 +++---- scripts/trigger-build | 38 ++-- spec/features/admin/admin_settings_spec.rb | 14 +- spec/features/profile_spec.rb | 2 - .../services/user_activates_pushover_spec.rb | 2 +- .../sample_metric.yml | 1 + .../sample_metric_with_ee.yml | 1 + .../sample_metric_with_name_suggestions.yml | 1 + .../sidebar_dropdown_widget_spec.js | 2 - spec/frontend/sidebar/mock_data.js | 39 +++- spec/support/database_cleaner.rb | 6 +- 100 files changed, 747 insertions(+), 533 deletions(-) create mode 100644 app/assets/javascripts/graphql_shared/queries/group_users_search.query.graphql diff --git a/.gitlab/ci/cng.gitlab-ci.yml b/.gitlab/ci/cng.gitlab-ci.yml index f75497c1a3f..bf439288be2 100644 --- a/.gitlab/ci/cng.gitlab-ci.yml +++ b/.gitlab/ci/cng.gitlab-ci.yml @@ -7,4 +7,4 @@ cloud-native-image: GIT_DEPTH: "1" script: - install_gitlab_gem - - CNG_PROJECT_PATH="gitlab-org/build/CNG" ./scripts/trigger-build cng + - ./scripts/trigger-build cng diff --git a/.gitlab/ci/review.gitlab-ci.yml b/.gitlab/ci/review.gitlab-ci.yml index e8d6f9b6dd9..4e635ef5984 100644 --- a/.gitlab/ci/review.gitlab-ci.yml +++ b/.gitlab/ci/review.gitlab-ci.yml @@ -27,12 +27,15 @@ review-build-cng: - .review:rules:review-build-cng image: ${GITLAB_DEPENDENCY_PROXY}ruby:2.7-alpine3.13 stage: review-prepare - before_script: - - source ./scripts/utils.sh - - install_gitlab_gem needs: - job: compile-production-assets artifacts: false + variables: + CNG_PROJECT_ACCESS_TOKEN: "${CNG_MIRROR_PROJECT_ACCESS_TOKEN}" # "Multi-pipeline (from 'gitlab-org/gitlab' 'review-build-cng' job)" at https://gitlab.com/gitlab-org/build/CNG-mirror/-/settings/access_tokens + CNG_PROJECT_PATH: "gitlab-org/build/CNG-mirror" + before_script: + - source ./scripts/utils.sh + - install_gitlab_gem script: - ./scripts/trigger-build cng diff --git a/app/assets/javascripts/boards/components/board_form.vue b/app/assets/javascripts/boards/components/board_form.vue index 386ed6bd0a1..d7aea7b7290 100644 --- a/app/assets/javascripts/boards/components/board_form.vue +++ b/app/assets/javascripts/boards/components/board_form.vue @@ -2,7 +2,7 @@ import { GlModal, GlAlert } from '@gitlab/ui'; import { mapGetters, mapActions, mapState } from 'vuex'; import ListLabel from '~/boards/models/label'; -import { TYPE_ITERATION, TYPE_MILESTONE, TYPE_USER } from '~/graphql_shared/constants'; +import { TYPE_ITERATION, TYPE_MILESTONE } from '~/graphql_shared/constants'; import { convertToGraphQLId } from '~/graphql_shared/utils'; import { getParameterByName, visitUrl } from '~/lib/utils/url_utility'; import { __, s__ } from '~/locale'; @@ -21,7 +21,6 @@ const boardDefaults = { milestone_id: undefined, iteration_id: undefined, assignee: {}, - assignee_id: undefined, weight: null, hide_backlog_list: false, hide_closed_list: false, @@ -190,9 +189,7 @@ export default { issueBoardScopeMutationVariables() { return { weight: this.board.weight, - assigneeId: this.board.assignee?.id - ? convertToGraphQLId(TYPE_USER, this.board.assignee.id) - : null, + assigneeId: this.board.assignee?.id || null, milestoneId: this.board.milestone?.id || this.board.milestone?.id === 0 ? convertToGraphQLId(TYPE_MILESTONE, this.board.milestone.id) @@ -306,6 +303,11 @@ export default { } }); }, + setAssignee(assigneeId) { + this.board.assignee = { + id: assigneeId, + }; + }, }, }; @@ -373,6 +375,7 @@ export default { :weights="weights" @set-iteration="setIteration" @set-board-labels="setBoardLabels" + @set-assignee="setAssignee" /> diff --git a/app/assets/javascripts/graphql_shared/queries/group_users_search.query.graphql b/app/assets/javascripts/graphql_shared/queries/group_users_search.query.graphql new file mode 100644 index 00000000000..e345fe97281 --- /dev/null +++ b/app/assets/javascripts/graphql_shared/queries/group_users_search.query.graphql @@ -0,0 +1,15 @@ +#import "../fragments/user.fragment.graphql" +#import "~/graphql_shared/fragments/user_availability.fragment.graphql" + +query usersSearch($search: String!, $fullPath: ID!) { + workspace: group(fullPath: $fullPath) { + users: groupMembers(search: $search, relations: [DIRECT, INHERITED]) { + nodes { + user { + ...User + ...UserAvailability + } + } + } + } +} diff --git a/app/assets/javascripts/sidebar/components/sidebar_dropdown_widget.vue b/app/assets/javascripts/sidebar/components/sidebar_dropdown_widget.vue index 2e00a23de7c..af17ef0867d 100644 --- a/app/assets/javascripts/sidebar/components/sidebar_dropdown_widget.vue +++ b/app/assets/javascripts/sidebar/components/sidebar_dropdown_widget.vue @@ -22,6 +22,7 @@ import { issuableAttributesQueries, noAttributeId, defaultEpicSort, + epicIidPattern, } from '~/sidebar/constants'; export default { @@ -118,17 +119,37 @@ export default { return query; }, skip() { + if (this.isEpic && this.searchTerm.startsWith('&') && this.searchTerm.length < 2) { + return true; + } + return !this.editing; }, debounce: 250, variables() { - return { + if (!this.isEpic) { + return { + fullPath: this.attrWorkspacePath, + title: this.searchTerm, + state: this.$options.IssuableAttributeState[this.issuableAttribute], + }; + } + + const variables = { fullPath: this.attrWorkspacePath, - title: this.searchTerm, - in: this.searchTerm && this.issuableAttribute === IssuableType.Epic ? 'TITLE' : undefined, state: this.$options.IssuableAttributeState[this.issuableAttribute], - sort: this.issuableAttribute === IssuableType.Epic ? defaultEpicSort : null, + sort: defaultEpicSort, }; + + if (epicIidPattern.test(this.searchTerm)) { + const matches = this.searchTerm.match(epicIidPattern); + variables.iidStartsWith = matches.groups.iid; + } else if (this.searchTerm !== '') { + variables.in = 'TITLE'; + variables.title = this.searchTerm; + } + + return variables; }, update(data) { if (data?.workspace) { @@ -214,6 +235,9 @@ export default { ), }; }, + isEpic() { + return this.issuableAttribute === IssuableType.Epic; + }, }, methods: { updateAttribute(attributeId) { diff --git a/app/assets/javascripts/sidebar/constants.js b/app/assets/javascripts/sidebar/constants.js index 08ee4379c0c..fd43fb80b7f 100644 --- a/app/assets/javascripts/sidebar/constants.js +++ b/app/assets/javascripts/sidebar/constants.js @@ -48,6 +48,8 @@ export const ASSIGNEES_DEBOUNCE_DELAY = DEFAULT_DEBOUNCE_AND_THROTTLE_MS; export const defaultEpicSort = 'TITLE_ASC'; +export const epicIidPattern = /^&(?\d+)$/; + export const assigneesQueries = { [IssuableType.Issue]: { query: getIssueAssignees, diff --git a/app/models/integrations/pushover.rb b/app/models/integrations/pushover.rb index b0cadc7ef4e..db39a4c68bd 100644 --- a/app/models/integrations/pushover.rb +++ b/app/models/integrations/pushover.rb @@ -21,18 +21,46 @@ module Integrations def fields [ - { type: 'text', name: 'api_key', title: _('API key'), placeholder: s_('PushoverService|Your application key'), required: true }, - { type: 'text', name: 'user_key', placeholder: s_('PushoverService|Your user key'), required: true }, - { type: 'text', name: 'device', placeholder: s_('PushoverService|Leave blank for all active devices') }, - { type: 'select', name: 'priority', required: true, choices: + { + type: 'text', + name: 'api_key', + title: _('API key'), + help: s_('PushoverService|Enter your application key.'), + placeholder: '', + required: true + }, + { + type: 'text', + name: 'user_key', + title: _('User key'), + help: s_('PushoverService|Enter your user key.'), + placeholder: '', + required: true + }, + { + type: 'text', + name: 'device', + title: _('Devices (optional)'), + help: s_('PushoverService|Leave blank for all active devices.'), + placeholder: '' + }, + { + type: 'select', + name: 'priority', + required: true, + choices: [ - [s_('PushoverService|Lowest Priority'), -2], - [s_('PushoverService|Low Priority'), -1], - [s_('PushoverService|Normal Priority'), 0], - [s_('PushoverService|High Priority'), 1] + [s_('PushoverService|Lowest priority'), -2], + [s_('PushoverService|Low priority'), -1], + [s_('PushoverService|Normal priority'), 0], + [s_('PushoverService|High priority'), 1] ], - default_choice: 0 }, - { type: 'select', name: 'sound', choices: + default_choice: 0 + }, + { + type: 'select', + name: 'sound', + choices: [ ['Device default sound', nil], ['Pushover (default)', 'pushover'], @@ -57,7 +85,8 @@ module Integrations ['Pushover Echo (long)', 'echo'], ['Up Down (long)', 'updown'], ['None (silent)', 'none'] - ] } + ] + } ] end diff --git a/app/views/admin/application_settings/_performance_bar.html.haml b/app/views/admin/application_settings/_performance_bar.html.haml index f603dcab407..ba7d747fa04 100644 --- a/app/views/admin/application_settings/_performance_bar.html.haml +++ b/app/views/admin/application_settings/_performance_bar.html.haml @@ -6,9 +6,9 @@ .form-check = f.check_box :performance_bar_enabled, class: 'form-check-input', data: { qa_selector: 'enable_performance_bar_checkbox'} = f.label :performance_bar_enabled, class: 'form-check-label' do - = _("Enable access to the Performance Bar") + = _("Allow non-administrators to access to the performance bar") .form-group - = f.label :performance_bar_allowed_group_path, _('Allowed group'), class: 'label-bold' + = f.label :performance_bar_allowed_group_path, _('Allow access to members of the following group'), class: 'label-bold' = f.text_field :performance_bar_allowed_group_path, class: 'form-control gl-form-input', placeholder: 'my-org/my-group', value: @application_setting.performance_bar_allowed_group&.full_path = f.submit _('Save changes'), class: 'gl-button btn btn-confirm qa-save-changes-button' diff --git a/app/views/admin/application_settings/metrics_and_profiling.html.haml b/app/views/admin/application_settings/metrics_and_profiling.html.haml index fcd3720e3d5..121f0e96f1d 100644 --- a/app/views/admin/application_settings/metrics_and_profiling.html.haml +++ b/app/views/admin/application_settings/metrics_and_profiling.html.haml @@ -35,8 +35,8 @@ %button.btn.gl-button.btn-default.js-settings-toggle{ type: 'button' } = expanded_by_default? ? _('Collapse') : _('Expand') %p - = _('Enable access to the Performance Bar for a given group.') - = link_to sprite_icon('question-o'), help_page_path('administration/monitoring/performance/performance_bar') + = _('Enable access to the performance bar for non-administrators in a given group.') + = link_to s_('Learn more.'), help_page_path('administration/monitoring/performance/performance_bar.md', anchor: 'enable-the-performance-bar-for-non-administrators'), target: '_blank', rel: 'noopener noreferrer' .settings-content = render 'performance_bar' diff --git a/app/views/admin/applications/show.html.haml b/app/views/admin/applications/show.html.haml index 8d643a7a4bc..8dcd5f81c23 100644 --- a/app/views/admin/applications/show.html.haml +++ b/app/views/admin/applications/show.html.haml @@ -3,47 +3,7 @@ %h3.page-title Application: #{@application.name} -.table-holder.oauth-application-show - %table.table - %tr - %td - = _('Application ID') - %td - .clipboard-group - .input-group - %input.label.label-monospace.monospace{ id: "application_id", type: "text", autocomplete: 'off', value: @application.uid, readonly: true } - .input-group-append - = clipboard_button(target: '#application_id', title: _("Copy ID"), class: "gl-button btn btn-default") - %tr - %td - = _('Secret') - %td - .clipboard-group - .input-group - %input.label.label-monospace.monospace{ id: "secret", type: "text", autocomplete: 'off', value: @application.secret, readonly: true } - .input-group-append - = clipboard_button(target: '#secret', title: _("Copy secret"), class: "gl-button btn btn-default") - %tr - %td - = _('Callback URL') - %td - - @application.redirect_uri.split.each do |uri| - %div - %span.monospace= uri - %tr - %td - Trusted - %td - = @application.trusted? ? 'Y' : 'N' - - %tr - %td - Confidential - %td - = @application.confidential? ? 'Y' : 'N' - - = render "shared/tokens/scopes_list", token: @application - -.form-actions - = link_to 'Edit', edit_admin_application_path(@application), class: 'gl-button btn btn-confirm wide float-left' - = render 'delete_form', application: @application, submit_btn_css: 'gl-button btn btn-danger gl-ml-3' += render 'shared/doorkeeper/applications/show', + edit_path: edit_admin_application_path(@application), + delete_path: admin_application_path(@application), + show_trusted_row: true diff --git a/app/views/shared/doorkeeper/applications/_show.html.haml b/app/views/shared/doorkeeper/applications/_show.html.haml index b690aa74ff0..d855b3aca83 100644 --- a/app/views/shared/doorkeeper/applications/_show.html.haml +++ b/app/views/shared/doorkeeper/applications/_show.html.haml @@ -1,3 +1,5 @@ +- show_trusted_row = local_assigns.fetch(:show_trusted_row, false) + .table-holder.oauth-application-show %table.table %tr @@ -26,6 +28,13 @@ %div %span.monospace= uri + - if show_trusted_row + %tr + %td + = _('Trusted') + %td + = @application.trusted? ? _('Yes') : _('No') + %tr %td = _('Confidential') 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 da71196bce9..1ac24ccf6c8 100644 --- a/config/metrics/counts_28d/20210216180731_projects_imported_from_github.yml +++ b/config/metrics/counts_28d/20210216180731_projects_imported_from_github.yml @@ -1,17 +1,19 @@ --- data_category: Optional key_path: usage_activity_by_stage_monthly.create.projects_imported_from_github -description: +description: Count of projects imported from GitHub product_section: dev product_stage: manage product_group: group::import -product_category: +product_category: importers value_type: number status: data_available time_frame: 28d -data_source: +data_source: database distribution: - ce +- ee tier: - free -skip_validation: true +- premium +- ultimate 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 49473e2cfad..0e2933ec421 100644 --- a/config/metrics/counts_28d/20210216183638_unique_users_all_imports.yml +++ b/config/metrics/counts_28d/20210216183638_unique_users_all_imports.yml @@ -1,11 +1,11 @@ --- data_category: Optional key_path: usage_activity_by_stage_monthly.manage.unique_users_all_imports -description: Number of users from projects imported +description: Number of unique users performing imports product_section: dev product_stage: manage product_group: group::import -product_category: '' +product_category: importers value_type: number status: data_available time_frame: 28d diff --git a/config/metrics/counts_28d/20210216183640_gitlab.yml b/config/metrics/counts_28d/20210216183640_gitlab.yml index 2c53566fbd5..c72492f4abb 100644 --- a/config/metrics/counts_28d/20210216183640_gitlab.yml +++ b/config/metrics/counts_28d/20210216183640_gitlab.yml @@ -1,17 +1,19 @@ --- data_category: Optional key_path: usage_activity_by_stage_monthly.manage.bulk_imports.gitlab -description: '' -product_section: '' -product_stage: '' -product_group: '' -product_category: '' +description: DEPRECATED - Count of projects imported using bulk imports +product_section: dev +product_stage: manage +product_group: group::import +product_category: importers value_type: number status: deprecated time_frame: 28d -data_source: +data_source: database distribution: - ce +- ee tier: - free -skip_validation: true +- premium +- ultimate diff --git a/config/metrics/counts_28d/20210216183642_gitlab_v1.yml b/config/metrics/counts_28d/20210216183642_gitlab_v1.yml index dd0ba521d2f..8f448ad04c9 100644 --- a/config/metrics/counts_28d/20210216183642_gitlab_v1.yml +++ b/config/metrics/counts_28d/20210216183642_gitlab_v1.yml @@ -1,17 +1,19 @@ --- data_category: Optional key_path: usage_activity_by_stage_monthly.manage.bulk_imports.gitlab_v1 -description: '' -product_section: '' -product_stage: '' -product_group: '' -product_category: '' +description: Count of bulk imports - GitLab Migration +product_section: dev +product_stage: manage +product_group: group::import +product_category: importers value_type: number status: data_available time_frame: 28d -data_source: +data_source: database distribution: - ce +- ee tier: - free -skip_validation: true +- premium +- ultimate diff --git a/config/metrics/counts_28d/20210216183644_gitlab_project.yml b/config/metrics/counts_28d/20210216183644_gitlab_project.yml index 6ec8fdc7509..bd41426f678 100644 --- a/config/metrics/counts_28d/20210216183644_gitlab_project.yml +++ b/config/metrics/counts_28d/20210216183644_gitlab_project.yml @@ -1,11 +1,11 @@ --- data_category: Optional key_path: usage_activity_by_stage_monthly.manage.project_imports.gitlab_project -description: '' +description: Count of projects imported using Project Import/Export product_section: dev product_stage: manage product_group: group::import -product_category: '' +product_category: importers value_type: number status: data_available time_frame: 28d diff --git a/config/metrics/counts_28d/20210216183646_gitlab.yml b/config/metrics/counts_28d/20210216183646_gitlab.yml index 09825a146db..0871d5d8c80 100644 --- a/config/metrics/counts_28d/20210216183646_gitlab.yml +++ b/config/metrics/counts_28d/20210216183646_gitlab.yml @@ -5,7 +5,7 @@ description: Count of projects imported from GitLab using Project Export/Import product_section: dev product_stage: manage product_group: group::import -product_category: '' +product_category: importers value_type: number status: data_available time_frame: 28d diff --git a/config/metrics/counts_28d/20210216183648_github.yml b/config/metrics/counts_28d/20210216183648_github.yml index 62873a57949..0a3264c42c1 100644 --- a/config/metrics/counts_28d/20210216183648_github.yml +++ b/config/metrics/counts_28d/20210216183648_github.yml @@ -5,7 +5,7 @@ description: Count of projects imported from GitHub product_section: dev product_stage: manage product_group: group::import -product_category: +product_category: importers value_type: number status: data_available time_frame: all diff --git a/config/metrics/counts_28d/20210216183650_bitbucket.yml b/config/metrics/counts_28d/20210216183650_bitbucket.yml index 82be4fb910a..eb6562ffd34 100644 --- a/config/metrics/counts_28d/20210216183650_bitbucket.yml +++ b/config/metrics/counts_28d/20210216183650_bitbucket.yml @@ -5,7 +5,7 @@ description: Count of projects imported from Bitbucket product_section: dev product_stage: manage product_group: group::import -product_category: +product_category: importers value_type: number status: data_available time_frame: all diff --git a/config/metrics/counts_28d/20210216183652_bitbucket_server.yml b/config/metrics/counts_28d/20210216183652_bitbucket_server.yml index cbf34c1d7cd..33052c998ab 100644 --- a/config/metrics/counts_28d/20210216183652_bitbucket_server.yml +++ b/config/metrics/counts_28d/20210216183652_bitbucket_server.yml @@ -5,7 +5,7 @@ description: Count of projects imported from Bitbucket Server product_section: dev product_stage: manage product_group: group::import -product_category: +product_category: importers value_type: number status: data_available time_frame: all diff --git a/config/metrics/counts_28d/20210216183653_gitea.yml b/config/metrics/counts_28d/20210216183653_gitea.yml index 0b660825f83..07cf905e938 100644 --- a/config/metrics/counts_28d/20210216183653_gitea.yml +++ b/config/metrics/counts_28d/20210216183653_gitea.yml @@ -5,7 +5,7 @@ description: Count of projects imported from Gitea product_section: dev product_stage: manage product_group: group::import -product_category: +product_category: importers value_type: number status: data_available time_frame: 28d diff --git a/config/metrics/counts_28d/20210216183655_git.yml b/config/metrics/counts_28d/20210216183655_git.yml index 7b0457c5902..5fe5dd58521 100644 --- a/config/metrics/counts_28d/20210216183655_git.yml +++ b/config/metrics/counts_28d/20210216183655_git.yml @@ -5,7 +5,7 @@ description: Count of projects imported from Git product_section: dev product_stage: manage product_group: group::import -product_category: '' +product_category: importers value_type: number status: data_available time_frame: 28d diff --git a/config/metrics/counts_28d/20210216183657_manifest.yml b/config/metrics/counts_28d/20210216183657_manifest.yml index 28796fefaf4..5c9f008a2ea 100644 --- a/config/metrics/counts_28d/20210216183657_manifest.yml +++ b/config/metrics/counts_28d/20210216183657_manifest.yml @@ -1,11 +1,11 @@ --- data_category: Optional key_path: usage_activity_by_stage_monthly.manage.project_imports.manifest -description: '' +description: Count of projects imported using Manifest file product_section: dev product_stage: manage product_group: group::import -product_category: '' +product_category: importers value_type: number status: data_available time_frame: 28d diff --git a/config/metrics/counts_28d/20210216183659_gitlab_migration.yml b/config/metrics/counts_28d/20210216183659_gitlab_migration.yml index 081992cab1f..49b8cf23a37 100644 --- a/config/metrics/counts_28d/20210216183659_gitlab_migration.yml +++ b/config/metrics/counts_28d/20210216183659_gitlab_migration.yml @@ -1,11 +1,11 @@ --- data_category: Optional key_path: usage_activity_by_stage_monthly.manage.project_imports.gitlab_migration -description: '' +description: Count of projects imported using GitLab Migration product_section: dev product_stage: manage product_group: group::import -product_category: '' +product_category: importers value_type: number status: data_available time_frame: 28d diff --git a/config/metrics/counts_28d/20210216183701_jira.yml b/config/metrics/counts_28d/20210216183701_jira.yml index 3dbb664d5f6..ca48d7ffd3d 100644 --- a/config/metrics/counts_28d/20210216183701_jira.yml +++ b/config/metrics/counts_28d/20210216183701_jira.yml @@ -1,17 +1,19 @@ --- data_category: Optional key_path: usage_activity_by_stage_monthly.manage.issue_imports.jira -description: '' -product_section: '' -product_stage: '' -product_group: '' -product_category: '' +description: Count of imports from Jira +product_section: dev +product_stage: manage +product_group: group::import +product_category: importers value_type: number status: data_available time_frame: 28d -data_source: +data_source: database distribution: - ce +- ee tier: - free -skip_validation: true +- premium +- ultimate diff --git a/config/metrics/counts_28d/20210216183703_fogbugz.yml b/config/metrics/counts_28d/20210216183703_fogbugz.yml index e89d9a7befb..3342c8a5422 100644 --- a/config/metrics/counts_28d/20210216183703_fogbugz.yml +++ b/config/metrics/counts_28d/20210216183703_fogbugz.yml @@ -1,17 +1,19 @@ --- data_category: Optional key_path: usage_activity_by_stage_monthly.manage.issue_imports.fogbugz -description: '' -product_section: '' -product_stage: '' -product_group: '' -product_category: '' +description: Count of imports from Fogbugz +product_section: dev +product_stage: manage +product_group: group::import +product_category: importers value_type: number status: data_available time_frame: 28d -data_source: +data_source: database distribution: - ce +- ee tier: - free -skip_validation: true +- premium +- ultimate diff --git a/config/metrics/counts_28d/20210216183705_phabricator.yml b/config/metrics/counts_28d/20210216183705_phabricator.yml index ecb92ce04ff..821834b1744 100644 --- a/config/metrics/counts_28d/20210216183705_phabricator.yml +++ b/config/metrics/counts_28d/20210216183705_phabricator.yml @@ -1,17 +1,19 @@ --- data_category: Optional key_path: usage_activity_by_stage_monthly.manage.issue_imports.phabricator -description: '' -product_section: '' -product_stage: '' -product_group: '' -product_category: '' +description: Count of imports from Phabricator +product_section: dev +product_stage: manage +product_group: group::import +product_category: importers value_type: number status: data_available time_frame: 28d -data_source: +data_source: database distribution: - ce +- ee tier: - free -skip_validation: true +- premium +- ultimate diff --git a/config/metrics/counts_28d/20210216183707_csv.yml b/config/metrics/counts_28d/20210216183707_csv.yml index 5558447f92c..67e664392fc 100644 --- a/config/metrics/counts_28d/20210216183707_csv.yml +++ b/config/metrics/counts_28d/20210216183707_csv.yml @@ -1,17 +1,19 @@ --- data_category: Optional key_path: usage_activity_by_stage_monthly.manage.issue_imports.csv -description: '' -product_section: '' -product_stage: '' -product_group: '' -product_category: '' +description: Count of (issue) imports from CSV file +product_section: dev +product_stage: manage +product_group: group::import +product_category: importers value_type: number status: data_available time_frame: 28d -data_source: +data_source: database distribution: - ce +- ee tier: - free -skip_validation: true +- premium +- ultimate diff --git a/config/metrics/counts_28d/20210216183709_group_import.yml b/config/metrics/counts_28d/20210216183709_group_import.yml index 11c9ed4440c..a12ec6e836b 100644 --- a/config/metrics/counts_28d/20210216183709_group_import.yml +++ b/config/metrics/counts_28d/20210216183709_group_import.yml @@ -5,7 +5,7 @@ description: Number of group import states product_section: dev product_stage: manage product_group: group::import -product_category: '' +product_category: importers value_type: number status: data_available time_frame: 28d diff --git a/config/metrics/counts_28d/20210216183711_gitlab_migration.yml b/config/metrics/counts_28d/20210216183711_gitlab_migration.yml index 1314f587438..f860a247746 100644 --- a/config/metrics/counts_28d/20210216183711_gitlab_migration.yml +++ b/config/metrics/counts_28d/20210216183711_gitlab_migration.yml @@ -1,17 +1,19 @@ --- data_category: Optional key_path: usage_activity_by_stage_monthly.manage.group_imports.gitlab_migration -description: '' -product_section: '' -product_stage: '' -product_group: '' -product_category: '' +description: Count of groups imported using GitLab Migration +product_section: dev +product_stage: manage +product_group: group::import +product_category: importers value_type: number status: data_available time_frame: 28d -data_source: +data_source: database distribution: - ce +- ee tier: - free -skip_validation: true +- premium +- ultimate diff --git a/config/metrics/counts_28d/20210216183712_total.yml b/config/metrics/counts_28d/20210216183712_total.yml index 280a493e4a7..6122ed956a8 100644 --- a/config/metrics/counts_28d/20210216183712_total.yml +++ b/config/metrics/counts_28d/20210216183712_total.yml @@ -1,17 +1,19 @@ --- data_category: Optional key_path: usage_activity_by_stage_monthly.manage.projects_imported.total -description: '' -product_section: '' -product_stage: '' -product_group: '' -product_category: '' +description: Count of all imported projects +product_section: dev +product_stage: manage +product_group: group::import +product_category: importers value_type: number status: deprecated time_frame: 28d -data_source: +data_source: database distribution: - ce +- ee tier: - free -skip_validation: true +- premium +- ultimate diff --git a/config/metrics/counts_28d/20210216183714_gitlab_project.yml b/config/metrics/counts_28d/20210216183714_gitlab_project.yml index a4fdaa791b6..49a474794e2 100644 --- a/config/metrics/counts_28d/20210216183714_gitlab_project.yml +++ b/config/metrics/counts_28d/20210216183714_gitlab_project.yml @@ -1,17 +1,19 @@ --- data_category: Optional key_path: usage_activity_by_stage_monthly.manage.projects_imported.gitlab_project -description: '' -product_section: '' -product_stage: '' -product_group: '' -product_category: '' +description: Count of projects imported using Project Import/Export +product_section: dev +product_stage: manage +product_group: group::import +product_category: importers value_type: number status: deprecated time_frame: 28d -data_source: +data_source: database distribution: - ce +- ee tier: - free -skip_validation: true +- premium +- ultimate diff --git a/config/metrics/counts_28d/20210216183716_gitlab.yml b/config/metrics/counts_28d/20210216183716_gitlab.yml index 6905da714af..0ce3dd43d9e 100644 --- a/config/metrics/counts_28d/20210216183716_gitlab.yml +++ b/config/metrics/counts_28d/20210216183716_gitlab.yml @@ -1,17 +1,19 @@ --- data_category: Optional key_path: usage_activity_by_stage_monthly.manage.projects_imported.gitlab -description: '' -product_section: '' -product_stage: '' -product_group: '' -product_category: '' +description: Count of projects imported using Project Import/Export +product_section: dev +product_stage: manage +product_group: group::import +product_category: importers value_type: number status: deprecated time_frame: 28d -data_source: +data_source: database distribution: - ce +- ee tier: - free -skip_validation: true +- premium +- ultimate diff --git a/config/metrics/counts_28d/20210216183718_github.yml b/config/metrics/counts_28d/20210216183718_github.yml index 1ca1658a8ab..8af4721aae7 100644 --- a/config/metrics/counts_28d/20210216183718_github.yml +++ b/config/metrics/counts_28d/20210216183718_github.yml @@ -1,17 +1,19 @@ --- data_category: Optional key_path: usage_activity_by_stage_monthly.manage.projects_imported.github -description: '' -product_section: '' -product_stage: '' -product_group: '' -product_category: '' +description: Count of projects imported from GitHub +product_section: dev +product_stage: manage +product_group: group::import +product_category: importers value_type: number status: deprecated time_frame: 28d -data_source: +data_source: database distribution: - ce +- ee tier: - free -skip_validation: true +- premium +- ultimate diff --git a/config/metrics/counts_28d/20210216183720_bitbucket.yml b/config/metrics/counts_28d/20210216183720_bitbucket.yml index 0239d138193..1119c77d72c 100644 --- a/config/metrics/counts_28d/20210216183720_bitbucket.yml +++ b/config/metrics/counts_28d/20210216183720_bitbucket.yml @@ -5,7 +5,7 @@ description: Count of projects imported from Bitbucket product_section: dev product_stage: manage product_group: group::import -product_category: +product_category: importers value_type: number status: deprecated time_frame: 28d diff --git a/config/metrics/counts_28d/20210216183722_bitbucket_server.yml b/config/metrics/counts_28d/20210216183722_bitbucket_server.yml index 4ccfeaadbb3..7abd0444a55 100644 --- a/config/metrics/counts_28d/20210216183722_bitbucket_server.yml +++ b/config/metrics/counts_28d/20210216183722_bitbucket_server.yml @@ -5,7 +5,7 @@ description: Count of projects imported from Bitbucket Server product_section: dev product_stage: manage product_group: group::import -product_category: '' +product_category: importers value_type: number status: deprecated time_frame: 28d diff --git a/config/metrics/counts_28d/20210216183724_gitea.yml b/config/metrics/counts_28d/20210216183724_gitea.yml index 2a383c2c976..e55ddcdef7c 100644 --- a/config/metrics/counts_28d/20210216183724_gitea.yml +++ b/config/metrics/counts_28d/20210216183724_gitea.yml @@ -1,17 +1,19 @@ --- data_category: Optional key_path: usage_activity_by_stage_monthly.manage.projects_imported.gitea -description: '' -product_section: '' -product_stage: '' -product_group: '' -product_category: '' +description: Count of projects imported from Gitea +product_section: dev +product_stage: manage +product_group: group::import +product_category: importers value_type: number status: deprecated time_frame: 28d -data_source: +data_source: database distribution: - ce +- ee tier: - free -skip_validation: true +- premium +- ultimate diff --git a/config/metrics/counts_28d/20210216183726_git.yml b/config/metrics/counts_28d/20210216183726_git.yml index e0f91fbea1e..665670c2a9c 100644 --- a/config/metrics/counts_28d/20210216183726_git.yml +++ b/config/metrics/counts_28d/20210216183726_git.yml @@ -1,17 +1,19 @@ --- data_category: Optional key_path: usage_activity_by_stage_monthly.manage.projects_imported.git -description: '' -product_section: '' -product_stage: '' -product_group: '' -product_category: '' +description: Count of projects imported from Git +product_section: dev +product_stage: manage +product_group: group::import +product_category: importers value_type: number status: deprecated time_frame: 28d -data_source: +data_source: database distribution: - ce +- ee tier: - free -skip_validation: true +- premium +- ultimate diff --git a/config/metrics/counts_28d/20210216183728_manifest.yml b/config/metrics/counts_28d/20210216183728_manifest.yml index ba44bc90e64..aca33145416 100644 --- a/config/metrics/counts_28d/20210216183728_manifest.yml +++ b/config/metrics/counts_28d/20210216183728_manifest.yml @@ -1,17 +1,19 @@ --- data_category: Optional key_path: usage_activity_by_stage_monthly.manage.projects_imported.manifest -description: '' -product_section: '' -product_stage: '' -product_group: '' -product_category: '' +description: Count of projects imported from Git using file Manifest +product_section: dev +product_stage: manage +product_group: group::import +product_category: importers value_type: number status: deprecated time_frame: 28d -data_source: +data_source: database distribution: - ce +- ee tier: - free -skip_validation: true +- premium +- ultimate diff --git a/config/metrics/counts_28d/20210216183730_jira.yml b/config/metrics/counts_28d/20210216183730_jira.yml index fd4558506cf..90109ccac0d 100644 --- a/config/metrics/counts_28d/20210216183730_jira.yml +++ b/config/metrics/counts_28d/20210216183730_jira.yml @@ -1,17 +1,19 @@ --- data_category: Optional key_path: usage_activity_by_stage_monthly.manage.issues_imported.jira -description: '' -product_section: '' -product_stage: '' -product_group: '' -product_category: '' +description: Count of projects imported from Jira +product_section: dev +product_stage: manage +product_group: group::import +product_category: importers value_type: number status: deprecated time_frame: 28d -data_source: +data_source: database distribution: - ce +- ee tier: - free -skip_validation: true +- premium +- ultimate diff --git a/config/metrics/counts_28d/20210216183731_fogbugz.yml b/config/metrics/counts_28d/20210216183731_fogbugz.yml index 09892145b27..f437b1b31f1 100644 --- a/config/metrics/counts_28d/20210216183731_fogbugz.yml +++ b/config/metrics/counts_28d/20210216183731_fogbugz.yml @@ -1,17 +1,19 @@ --- data_category: Optional key_path: usage_activity_by_stage_monthly.manage.issues_imported.fogbugz -description: '' -product_section: '' -product_stage: '' -product_group: '' -product_category: '' +description: Count of projects imported from Fogbugz +product_section: dev +product_stage: manage +product_group: group::import +product_category: importers value_type: number status: deprecated time_frame: 28d -data_source: +data_source: database distribution: - ce +- ee tier: - free -skip_validation: true +- premium +- ultimate diff --git a/config/metrics/counts_28d/20210216183733_phabricator.yml b/config/metrics/counts_28d/20210216183733_phabricator.yml index 114fb7ef897..b63ae23aa44 100644 --- a/config/metrics/counts_28d/20210216183733_phabricator.yml +++ b/config/metrics/counts_28d/20210216183733_phabricator.yml @@ -1,17 +1,19 @@ --- data_category: Optional key_path: usage_activity_by_stage_monthly.manage.issues_imported.phabricator -description: '' -product_section: '' -product_stage: '' -product_group: '' -product_category: '' +description: Count of projects imported from Phabricator +product_section: dev +product_stage: manage +product_group: group::import +product_category: importers value_type: number status: deprecated time_frame: 28d -data_source: +data_source: database distribution: - ce +- ee tier: - free -skip_validation: true +- premium +- ultimate diff --git a/config/metrics/counts_28d/20210216183735_csv.yml b/config/metrics/counts_28d/20210216183735_csv.yml index c7f0f6c72b9..aa958aa3bcb 100644 --- a/config/metrics/counts_28d/20210216183735_csv.yml +++ b/config/metrics/counts_28d/20210216183735_csv.yml @@ -1,17 +1,19 @@ --- data_category: Optional key_path: usage_activity_by_stage_monthly.manage.issues_imported.csv -description: '' -product_section: '' -product_stage: '' -product_group: '' -product_category: '' +description: Count of projects imported from CSV file +product_section: dev +product_stage: manage +product_group: group::import +product_category: importers value_type: number status: deprecated time_frame: 28d -data_source: +data_source: database distribution: - ce +- ee tier: - free -skip_validation: true +- premium +- ultimate diff --git a/config/metrics/counts_28d/20210216183737_groups_imported.yml b/config/metrics/counts_28d/20210216183737_groups_imported.yml index 64fcdd34904..48a2231700a 100644 --- a/config/metrics/counts_28d/20210216183737_groups_imported.yml +++ b/config/metrics/counts_28d/20210216183737_groups_imported.yml @@ -1,17 +1,19 @@ --- data_category: Optional key_path: usage_activity_by_stage_monthly.manage.groups_imported -description: '' +description: Count of imported groups product_section: dev product_stage: manage product_group: group::import -product_category: '' +product_category: importers value_type: number status: deprecated time_frame: 28d -data_source: +data_source: database distribution: - ce +- ee tier: - free -skip_validation: true +- premium +- ultimate diff --git a/config/metrics/counts_all/20210216180628_projects_imported_from_github.yml b/config/metrics/counts_all/20210216180628_projects_imported_from_github.yml index d3e4c6a4ee0..e314d780665 100644 --- a/config/metrics/counts_all/20210216180628_projects_imported_from_github.yml +++ b/config/metrics/counts_all/20210216180628_projects_imported_from_github.yml @@ -1,17 +1,19 @@ --- data_category: Operational key_path: counts.projects_imported_from_github -description: +description: Count of projects imported from GitHub product_section: dev product_stage: manage product_group: group::import -product_category: +product_category: importers value_type: number status: data_available time_frame: all data_source: database distribution: - ce +- ee tier: - free -skip_validation: true +- premium +- ultimate diff --git a/config/metrics/counts_all/20210216180630_projects_imported_from_github.yml b/config/metrics/counts_all/20210216180630_projects_imported_from_github.yml index a951a6dedb4..e7372fc3074 100644 --- a/config/metrics/counts_all/20210216180630_projects_imported_from_github.yml +++ b/config/metrics/counts_all/20210216180630_projects_imported_from_github.yml @@ -1,17 +1,19 @@ --- data_category: Optional key_path: usage_activity_by_stage.create.projects_imported_from_github -description: +description: Count of projects imported from GitHub product_section: dev product_stage: manage product_group: group::import -product_category: +product_category: importers value_type: number status: data_available time_frame: all -data_source: +data_source: database distribution: - ce +- ee tier: - free -skip_validation: true +- premium +- ultimate diff --git a/config/metrics/counts_all/20210216180632_unique_users_all_imports.yml b/config/metrics/counts_all/20210216180632_unique_users_all_imports.yml index 266b1eb34f6..ba0089352c5 100644 --- a/config/metrics/counts_all/20210216180632_unique_users_all_imports.yml +++ b/config/metrics/counts_all/20210216180632_unique_users_all_imports.yml @@ -5,13 +5,15 @@ description: Distinct count of users that triggered any kind of import product_section: dev product_stage: manage product_group: group::import -product_category: +product_category: importers value_type: number status: data_available time_frame: all -data_source: +data_source: database distribution: - ce +- ee tier: - free -skip_validation: true +- premium +- ultimate diff --git a/config/metrics/counts_all/20210216180634_gitlab.yml b/config/metrics/counts_all/20210216180634_gitlab.yml index 258596516c6..8bf9f623425 100644 --- a/config/metrics/counts_all/20210216180634_gitlab.yml +++ b/config/metrics/counts_all/20210216180634_gitlab.yml @@ -6,13 +6,15 @@ description: Distinct count of users that triggered an import using the Group Mi product_section: dev product_stage: manage product_group: group::import -product_category: +product_category: importers value_type: number status: deprecated time_frame: all -data_source: +data_source: database distribution: - ce +- ee tier: - free -skip_validation: true +- premium +- ultimate diff --git a/config/metrics/counts_all/20210216180636_gitlab_v1.yml b/config/metrics/counts_all/20210216180636_gitlab_v1.yml index 76509b97083..edf30eeb2e5 100644 --- a/config/metrics/counts_all/20210216180636_gitlab_v1.yml +++ b/config/metrics/counts_all/20210216180636_gitlab_v1.yml @@ -5,13 +5,15 @@ description: Count of imports using GitLab Migration product_section: dev product_stage: manage product_group: group::import -product_category: +product_category: importers value_type: number status: data_available time_frame: all -data_source: +data_source: database distribution: - ce +- ee tier: - free -skip_validation: true +- premium +- ultimate diff --git a/config/metrics/counts_all/20210216180638_gitlab_project.yml b/config/metrics/counts_all/20210216180638_gitlab_project.yml index 3fd5b1bb728..c3aae1afcb1 100644 --- a/config/metrics/counts_all/20210216180638_gitlab_project.yml +++ b/config/metrics/counts_all/20210216180638_gitlab_project.yml @@ -5,7 +5,7 @@ description: Count of projects imported using Project Import/Export product_section: dev product_stage: manage product_group: group::import -product_category: +product_category: importers value_type: number status: data_available time_frame: all diff --git a/config/metrics/counts_all/20210216180639_gitlab.yml b/config/metrics/counts_all/20210216180639_gitlab.yml index 4197eb9d211..1b1a86bf525 100644 --- a/config/metrics/counts_all/20210216180639_gitlab.yml +++ b/config/metrics/counts_all/20210216180639_gitlab.yml @@ -5,7 +5,7 @@ description: Count of projects imported from GitLab.com product_section: dev product_stage: manage product_group: group::import -product_category: +product_category: importers value_type: number status: data_available time_frame: all diff --git a/config/metrics/counts_all/20210216180641_github.yml b/config/metrics/counts_all/20210216180641_github.yml index 80a971ad997..133d1fd5f4f 100644 --- a/config/metrics/counts_all/20210216180641_github.yml +++ b/config/metrics/counts_all/20210216180641_github.yml @@ -5,7 +5,7 @@ description: Count of projects imported from GitHub product_section: dev product_stage: manage product_group: group::import -product_category: +product_category: importers value_type: number status: data_available time_frame: all diff --git a/config/metrics/counts_all/20210216180643_bitbucket.yml b/config/metrics/counts_all/20210216180643_bitbucket.yml index 08c500fb719..3c7b9d07127 100644 --- a/config/metrics/counts_all/20210216180643_bitbucket.yml +++ b/config/metrics/counts_all/20210216180643_bitbucket.yml @@ -5,7 +5,7 @@ description: Count of projects imported from Bitbucket product_section: dev product_stage: manage product_group: group::import -product_category: +product_category: importers value_type: number status: data_available time_frame: all diff --git a/config/metrics/counts_all/20210216180645_bitbucket_server.yml b/config/metrics/counts_all/20210216180645_bitbucket_server.yml index 9ec0e200755..5448dbf7bd2 100644 --- a/config/metrics/counts_all/20210216180645_bitbucket_server.yml +++ b/config/metrics/counts_all/20210216180645_bitbucket_server.yml @@ -5,7 +5,7 @@ description: Count of projects imported from Bitbucket Server product_section: dev product_stage: manage product_group: group::import -product_category: +product_category: importers value_type: number status: data_available time_frame: all diff --git a/config/metrics/counts_all/20210216180647_gitea.yml b/config/metrics/counts_all/20210216180647_gitea.yml index 7439358b8bb..67fe589dc4f 100644 --- a/config/metrics/counts_all/20210216180647_gitea.yml +++ b/config/metrics/counts_all/20210216180647_gitea.yml @@ -5,7 +5,7 @@ description: Count of projects imported from Gitea product_section: dev product_stage: manage product_group: group::import -product_category: +product_category: importers value_type: number status: data_available time_frame: all diff --git a/config/metrics/counts_all/20210216180649_git.yml b/config/metrics/counts_all/20210216180649_git.yml index 56c02302944..dcd7c302037 100644 --- a/config/metrics/counts_all/20210216180649_git.yml +++ b/config/metrics/counts_all/20210216180649_git.yml @@ -5,7 +5,7 @@ description: Count of projects imported by URL product_section: dev product_stage: manage product_group: group::import -product_category: +product_category: importers value_type: number status: data_available time_frame: all diff --git a/config/metrics/counts_all/20210216180650_manifest.yml b/config/metrics/counts_all/20210216180650_manifest.yml index 21281acc75a..fa599eaf552 100644 --- a/config/metrics/counts_all/20210216180650_manifest.yml +++ b/config/metrics/counts_all/20210216180650_manifest.yml @@ -5,7 +5,7 @@ description: Count of projects imported using manifst file product_section: dev product_stage: manage product_group: group::import -product_category: +product_category: importers value_type: number status: data_available time_frame: all diff --git a/config/metrics/counts_all/20210216180652_gitlab_migration.yml b/config/metrics/counts_all/20210216180652_gitlab_migration.yml index ca10c73e2ed..0f44c0d8223 100644 --- a/config/metrics/counts_all/20210216180652_gitlab_migration.yml +++ b/config/metrics/counts_all/20210216180652_gitlab_migration.yml @@ -5,7 +5,7 @@ description: Count of projects imported using GitLab Migration product_section: dev product_stage: manage product_group: group::import -product_category: +product_category: importers value_type: number status: data_available time_frame: all diff --git a/config/metrics/counts_all/20210216180654_jira.yml b/config/metrics/counts_all/20210216180654_jira.yml index fe94597bbea..1b2fab8e989 100644 --- a/config/metrics/counts_all/20210216180654_jira.yml +++ b/config/metrics/counts_all/20210216180654_jira.yml @@ -5,13 +5,15 @@ description: Count of projects imported from Jira product_section: dev product_stage: manage product_group: group::import -product_category: +product_category: importers value_type: number status: data_available time_frame: all -data_source: +data_source: database distribution: - ce +- ee tier: - free -skip_validation: true +- premium +- ultimate diff --git a/config/metrics/counts_all/20210216180656_fogbugz.yml b/config/metrics/counts_all/20210216180656_fogbugz.yml index f270f505fdb..5f487882235 100644 --- a/config/metrics/counts_all/20210216180656_fogbugz.yml +++ b/config/metrics/counts_all/20210216180656_fogbugz.yml @@ -5,13 +5,15 @@ description: Count of projects imported from fogbugz product_section: dev product_stage: manage product_group: group::import -product_category: +product_category: importers value_type: number status: data_available time_frame: all -data_source: +data_source: database distribution: - ce +- ee tier: - free -skip_validation: true +- premium +- ultimate diff --git a/config/metrics/counts_all/20210216180658_phabricator.yml b/config/metrics/counts_all/20210216180658_phabricator.yml index 6c485a575fd..aa02bda90dd 100644 --- a/config/metrics/counts_all/20210216180658_phabricator.yml +++ b/config/metrics/counts_all/20210216180658_phabricator.yml @@ -5,13 +5,15 @@ description: Count of projects imported from phabricator product_section: dev product_stage: manage product_group: group::import -product_category: +product_category: importers value_type: number status: data_available time_frame: all -data_source: +data_source: database distribution: - ce +- ee tier: - free -skip_validation: true +- premium +- ultimate diff --git a/config/metrics/counts_all/20210216180700_csv.yml b/config/metrics/counts_all/20210216180700_csv.yml index 2bf71cc3a20..c6195807273 100644 --- a/config/metrics/counts_all/20210216180700_csv.yml +++ b/config/metrics/counts_all/20210216180700_csv.yml @@ -5,13 +5,15 @@ description: Count of (attempted) imports from csv files product_section: dev product_stage: manage product_group: group::import -product_category: +product_category: importers value_type: number status: data_available time_frame: all -data_source: +data_source: database distribution: - ce +- ee tier: - free -skip_validation: true +- premium +- ultimate diff --git a/config/metrics/counts_all/20210216180702_group_import.yml b/config/metrics/counts_all/20210216180702_group_import.yml index 01e006f75c6..354d42b6b20 100644 --- a/config/metrics/counts_all/20210216180702_group_import.yml +++ b/config/metrics/counts_all/20210216180702_group_import.yml @@ -1,17 +1,19 @@ --- data_category: Optional key_path: usage_activity_by_stage.manage.group_imports.group_import -description: Count of group imports using Group Import/Export +description: Count of groups imported using Group Import/Export product_section: dev product_stage: manage product_group: group::import -product_category: +product_category: importers value_type: number status: data_available time_frame: all -data_source: +data_source: database distribution: - ce +- ee tier: - free -skip_validation: true +- premium +- ultimate diff --git a/config/metrics/counts_all/20210216180703_gitlab_migration.yml b/config/metrics/counts_all/20210216180703_gitlab_migration.yml index cf40dc841ec..c26356c8567 100644 --- a/config/metrics/counts_all/20210216180703_gitlab_migration.yml +++ b/config/metrics/counts_all/20210216180703_gitlab_migration.yml @@ -5,13 +5,15 @@ description: Count of groups imported using GitLab Migration product_section: dev product_stage: manage product_group: group::import -product_category: +product_category: importers value_type: number status: data_available time_frame: all -data_source: +data_source: database distribution: - ce +- ee tier: - free -skip_validation: true +- premium +- ultimate diff --git a/config/metrics/counts_all/20210216180705_total.yml b/config/metrics/counts_all/20210216180705_total.yml index 69f8ec18d14..c2c0980e548 100644 --- a/config/metrics/counts_all/20210216180705_total.yml +++ b/config/metrics/counts_all/20210216180705_total.yml @@ -5,13 +5,15 @@ description: Total count of all projects imported with import_source NOT NULL product_section: dev product_stage: manage product_group: group::import -product_category: +product_category: importers value_type: number status: deprecated time_frame: all -data_source: +data_source: database distribution: - ce +- ee tier: - free -skip_validation: true +- premium +- ultimate diff --git a/config/metrics/counts_all/20210216180707_gitlab_project.yml b/config/metrics/counts_all/20210216180707_gitlab_project.yml index 9a0e3fa5fbf..2c900fa6ce9 100644 --- a/config/metrics/counts_all/20210216180707_gitlab_project.yml +++ b/config/metrics/counts_all/20210216180707_gitlab_project.yml @@ -5,13 +5,15 @@ description: 'Distinct count of users that imported projects using Project Impor product_section: dev product_stage: manage product_group: group::import -product_category: +product_category: importers value_type: number status: deprecated time_frame: all -data_source: +data_source: database distribution: - ce +- ee tier: - free -skip_validation: true +- premium +- ultimate diff --git a/config/metrics/counts_all/20210216180709_gitlab.yml b/config/metrics/counts_all/20210216180709_gitlab.yml index 6bfc09b0d42..754191744f2 100644 --- a/config/metrics/counts_all/20210216180709_gitlab.yml +++ b/config/metrics/counts_all/20210216180709_gitlab.yml @@ -5,13 +5,15 @@ description: 'Distinct count of users that imported projects from GitLab.com' product_section: dev product_stage: manage product_group: group::import -product_category: +product_category: importers value_type: number status: deprecated time_frame: all -data_source: +data_source: database distribution: - ce +- ee tier: - free -skip_validation: true +- premium +- ultimate diff --git a/config/metrics/counts_all/20210216180711_github.yml b/config/metrics/counts_all/20210216180711_github.yml index 807ef20c4eb..ba553b3bf1d 100644 --- a/config/metrics/counts_all/20210216180711_github.yml +++ b/config/metrics/counts_all/20210216180711_github.yml @@ -5,13 +5,15 @@ description: Distinct count of users that imported projects from GitHub product_section: dev product_stage: manage product_group: group::import -product_category: +product_category: importers value_type: number status: deprecated time_frame: all -data_source: +data_source: database distribution: - ce +- ee tier: - free -skip_validation: true +- premium +- ultimate diff --git a/config/metrics/counts_all/20210216180713_bitbucket.yml b/config/metrics/counts_all/20210216180713_bitbucket.yml index fb9e0d83439..f90bd836eca 100644 --- a/config/metrics/counts_all/20210216180713_bitbucket.yml +++ b/config/metrics/counts_all/20210216180713_bitbucket.yml @@ -5,13 +5,15 @@ description: 'Distinct count of users that imported projects from Bitbucket Clou product_section: dev product_stage: manage product_group: group::import -product_category: +product_category: importers value_type: number status: deprecated time_frame: all -data_source: +data_source: database distribution: - ce +- ee tier: - free -skip_validation: true +- premium +- ultimate diff --git a/config/metrics/counts_all/20210216180715_bitbucket_server.yml b/config/metrics/counts_all/20210216180715_bitbucket_server.yml index 99321d76dfd..fea69cf83dc 100644 --- a/config/metrics/counts_all/20210216180715_bitbucket_server.yml +++ b/config/metrics/counts_all/20210216180715_bitbucket_server.yml @@ -5,13 +5,15 @@ description: 'Distinct count of users that imported projects from Bitbucket Serv product_section: dev product_stage: manage product_group: group::import -product_category: +product_category: importers value_type: number status: deprecated time_frame: all -data_source: +data_source: database distribution: - ce +- ee tier: - free -skip_validation: true +- premium +- ultimate diff --git a/config/metrics/counts_all/20210216180716_gitea.yml b/config/metrics/counts_all/20210216180716_gitea.yml index a4a7ef23052..a1f738f7851 100644 --- a/config/metrics/counts_all/20210216180716_gitea.yml +++ b/config/metrics/counts_all/20210216180716_gitea.yml @@ -5,13 +5,15 @@ description: 'Distinct count of users that imported projects from Gitea' product_section: dev product_stage: manage product_group: group::import -product_category: +product_category: importers value_type: number status: deprecated time_frame: all -data_source: +data_source: database distribution: - ce +- ee tier: - free -skip_validation: true +- premium +- ultimate diff --git a/config/metrics/counts_all/20210216180718_git.yml b/config/metrics/counts_all/20210216180718_git.yml index 13befec6b07..f6929b18f05 100644 --- a/config/metrics/counts_all/20210216180718_git.yml +++ b/config/metrics/counts_all/20210216180718_git.yml @@ -5,13 +5,15 @@ description: 'Distinct count of users that imported projects using Import by URL product_section: dev product_stage: manage product_group: group::import -product_category: +product_category: importers value_type: number status: deprecated time_frame: all -data_source: +data_source: database distribution: - ce +- ee tier: - free -skip_validation: true +- premium +- ultimate diff --git a/config/metrics/counts_all/20210216180720_manifest.yml b/config/metrics/counts_all/20210216180720_manifest.yml index dcc9cc8df92..ba4a97ebad0 100644 --- a/config/metrics/counts_all/20210216180720_manifest.yml +++ b/config/metrics/counts_all/20210216180720_manifest.yml @@ -5,13 +5,15 @@ description: 'Distinct count of users that imported projects using Manifest file product_section: dev product_stage: manage product_group: group::import -product_category: +product_category: importers value_type: number status: deprecated time_frame: all -data_source: +data_source: database distribution: - ce +- ee tier: - free -skip_validation: true +- premium +- ultimate diff --git a/config/metrics/counts_all/20210216180722_jira.yml b/config/metrics/counts_all/20210216180722_jira.yml index 420fc4635df..dfd073fb5ea 100644 --- a/config/metrics/counts_all/20210216180722_jira.yml +++ b/config/metrics/counts_all/20210216180722_jira.yml @@ -5,13 +5,15 @@ description: Distinct count of users that imported issues into projects using Ji product_section: dev product_stage: manage product_group: group::import -product_category: +product_category: importers value_type: number status: deprecated time_frame: all -data_source: +data_source: database distribution: - ce +- ee tier: - free -skip_validation: true +- premium +- ultimate diff --git a/config/metrics/counts_all/20210216180724_fogbugz.yml b/config/metrics/counts_all/20210216180724_fogbugz.yml index 1e1d587e434..25087474a43 100644 --- a/config/metrics/counts_all/20210216180724_fogbugz.yml +++ b/config/metrics/counts_all/20210216180724_fogbugz.yml @@ -5,13 +5,15 @@ description: 'Distinct count of users that imported issues into projects using F product_section: dev product_stage: manage product_group: group::import -product_category: +product_category: importers value_type: number status: deprecated time_frame: all -data_source: +data_source: database distribution: - ce +- ee tier: - free -skip_validation: true +- premium +- ultimate diff --git a/config/metrics/counts_all/20210216180726_phabricator.yml b/config/metrics/counts_all/20210216180726_phabricator.yml index 1f4b2ed0460..3b6333343c2 100644 --- a/config/metrics/counts_all/20210216180726_phabricator.yml +++ b/config/metrics/counts_all/20210216180726_phabricator.yml @@ -5,13 +5,15 @@ description: Distinct count of users that imported issues into projects using Ph product_section: dev product_stage: manage product_group: group::import -product_category: +product_category: importers value_type: number status: deprecated time_frame: all -data_source: +data_source: database distribution: - ce +- ee tier: - free -skip_validation: true +- premium +- ultimate diff --git a/config/metrics/counts_all/20210216180727_csv.yml b/config/metrics/counts_all/20210216180727_csv.yml index a50733d361e..d13e517cf3d 100644 --- a/config/metrics/counts_all/20210216180727_csv.yml +++ b/config/metrics/counts_all/20210216180727_csv.yml @@ -6,13 +6,15 @@ description: Distinct count of users that imported issues into projects using CS product_section: dev product_stage: manage product_group: group::import -product_category: +product_category: importers value_type: number status: deprecated time_frame: all -data_source: +data_source: database distribution: - ce +- ee tier: - free -skip_validation: true +- premium +- ultimate diff --git a/config/metrics/counts_all/20210216180729_groups_imported.yml b/config/metrics/counts_all/20210216180729_groups_imported.yml index 47f4a54cf8e..e83133bb16b 100644 --- a/config/metrics/counts_all/20210216180729_groups_imported.yml +++ b/config/metrics/counts_all/20210216180729_groups_imported.yml @@ -5,13 +5,15 @@ description: Distinct count of users that imported groups using Group Import product_section: dev product_stage: manage product_group: group::import -product_category: +product_category: importers value_type: number status: deprecated time_frame: all -data_source: +data_source: database distribution: - ce +- ee tier: - free -skip_validation: true +- premium +- ultimate diff --git a/config/metrics/schema.json b/config/metrics/schema.json index 0ce5a163184..59918314e5e 100644 --- a/config/metrics/schema.json +++ b/config/metrics/schema.json @@ -72,6 +72,13 @@ "enum": ["ee", "ce"] } }, + "performance_indicator_type": { + "type": "array", + "items": { + "type": "string", + "enum": ["gmau", "smau", "paid_gmau", "umau"] + } + }, "tier": { "type": "array", "items": { diff --git a/doc/administration/monitoring/performance/performance_bar.md b/doc/administration/monitoring/performance/performance_bar.md index 5a7e8e12a38..6d806f9ee2a 100644 --- a/doc/administration/monitoring/performance/performance_bar.md +++ b/doc/administration/monitoring/performance/performance_bar.md @@ -4,17 +4,19 @@ group: Monitor info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#assignments --- -# Performance Bar **(FREE SELF)** +# Performance bar **(FREE SELF)** -> The **Stats** field [introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/271551) in GitLab 13.9. -> The **Memory** field [introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/330736) in GitLab 14.0. +> - The **Stats** field [introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/271551) in GitLab 13.9. +> - The **Memory** field [introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/330736) in GitLab 14.0. -You can display the GitLab Performance Bar to see statistics for the performance -of a page. When activated, it looks as follows: +You can display the performance bar to see statistics for the performance of a GitLab UI page. +For example: -![Performance Bar](img/performance_bar_v14_0.png) +![Performance bar](img/performance_bar_v14_0.png) -From left to right, it displays: +## Available information + +From left to right, the performance bar displays: - **Current Host**: the current host serving the page. - **Database queries**: the time taken (in milliseconds) and the total number @@ -57,8 +59,17 @@ From left to right, it displays: NOTE: Not all indicators are available in all environments. For instance, the memory view -requires to run Ruby with [specific patches](https://gitlab.com/gitlab-org/gitlab-build-images/-/blob/master/patches/ruby/2.7.2/thread-memory-allocations-2.7.patch) applied. -When running GitLab locally using the GDK this is typically not the case and the memory view cannot be used. +requires running Ruby with [specific patches](https://gitlab.com/gitlab-org/gitlab-build-images/-/blob/master/patches/ruby/2.7.2/thread-memory-allocations-2.7.patch) +applied. When running GitLab locally using [GDK](../../../development/contributing/index.md#gitlab-development-kit), +this is typically not the case and the memory view cannot be used. + +## Keyboard shortcut + +Press the [p + b keyboard shortcut](../../../user/shortcuts.md) to display +the performance bar, and again to hide it. + +For non-administrators to display the performance bar, it must be +[enabled for them](#enable-the-performance-bar-for-non-administrators). ## Request warnings @@ -74,23 +85,17 @@ appears next to requests with warnings. ![Request selector showing two requests with warnings](img/performance_bar_request_selector_warning.png) -## Enable the Performance Bar via the Admin Area +## Enable the performance bar for non-administrators -The GitLab Performance Bar is disabled by default for non-administrators. To enable it +The performance bar is disabled by default for non-administrators. To enable it for a given group: -1. Sign in as a user with Administrator [permissions](../../../user/permissions.md). +1. Sign in as a user with Administrator [role](../../../user/permissions.md). 1. On the top bar, select **Menu >** **{admin}** **Admin**. 1. On the left sidebar, select **Settings > Metrics and profiling** (`admin/application_settings/metrics_and_profiling`), and expand **Profiling - Performance bar**. -1. Click **Enable access to the Performance Bar**. -1. In the **Allowed group** field, provide the full path of the group allowed - to access the GitLab Performance Bar. +1. Click **Allow non-administrators to access to the performance bar**. +1. In the **Allow access to members of the following group** field, provide the full path of the + group allowed to access the performance. 1. Click **Save changes**. - -## Keyboard shortcut for the Performance Bar - -After enabling the GitLab Performance Bar, press the [p + -b keyboard shortcut](../../../user/shortcuts.md) to display it, and -again to hide it. diff --git a/doc/administration/wikis/index.md b/doc/administration/wikis/index.md index bf6ff457ad3..01c175e014e 100644 --- a/doc/administration/wikis/index.md +++ b/doc/administration/wikis/index.md @@ -74,6 +74,14 @@ You can also use the API to [retrieve the current value](../../api/settings.md#g curl --header "PRIVATE-TOKEN: " "https://gitlab.example.com/api/v4/application/settings" ``` +### Reduce wiki repository size + +The wiki counts as part of the [namespace storage size](../../user/admin_area/settings/account_and_limit_settings.md), +so you should keep your wiki repositories as compact as possible. + +For more information about tools to compact repositories, +read the documentation on [reducing repository size](../../user/project/repository/reducing_the_repo_size_using_git.md). + ## Related topics - [User documentation for wikis](../../user/project/wiki/index.md) diff --git a/doc/ci/docker/using_kaniko.md b/doc/ci/docker/using_kaniko.md index 108d4e0dcad..6886899a54b 100644 --- a/doc/ci/docker/using_kaniko.md +++ b/doc/ci/docker/using_kaniko.md @@ -64,7 +64,7 @@ build: entrypoint: [""] script: - mkdir -p /kaniko/.docker - - echo "{\"auths\":{\"$CI_REGISTRY\":{\"username\":\"$CI_REGISTRY_USER\",\"password\":\"$CI_REGISTRY_PASSWORD\"}}}" > /kaniko/.docker/config.json + - echo "{\"auths\":{\"$CI_REGISTRY\":{\"auth\":\"$(echo -n ${CI_REGISTRY_USER}:${CI_REGISTRY_PASSWORD} | base64)\"}}}" > /kaniko/.docker/config.json - /kaniko/executor --context $CI_PROJECT_DIR --dockerfile $CI_PROJECT_DIR/Dockerfile --destination $CI_REGISTRY_IMAGE:$CI_COMMIT_TAG rules: - if: $CI_COMMIT_TAG @@ -91,7 +91,7 @@ build: - mkdir -p /kaniko/.docker - |- KANIKOPROXYBUILDARGS="" - KANIKOCFG="{ \"auths\":{\"$CI_REGISTRY\":{\"username\":\"$CI_REGISTRY_USER\",\"password\":\"$CI_REGISTRY_PASSWORD\"}}" + KANIKOCFG="{\"auths\":{\"$CI_REGISTRY\":{\"auth\":\"$(echo -n ${CI_REGISTRY_USER}:${CI_REGISTRY_PASSWORD} | base64)\"}}}" if [ "x${http_proxy}" != "x" -o "x${https_proxy}" != "x" ]; then KANIKOCFG="${KANIKOCFG}, \"proxies\": { \"default\": { \"httpProxy\": \"${http_proxy}\", \"httpsProxy\": \"${https_proxy}\", \"noProxy\": \"${no_proxy}\"}}" KANIKOPROXYBUILDARGS="--build-arg http_proxy=${http_proxy} --build-arg https_proxy=${https_proxy} --build-arg no_proxy=${no_proxy}" @@ -120,7 +120,7 @@ store: ```yaml before_script: - mkdir -p /kaniko/.docker - - echo "{\"auths\":{\"$CI_REGISTRY\":{\"username\":\"$CI_REGISTRY_USER\",\"password\":\"$CI_REGISTRY_PASSWORD\"}}}" > /kaniko/.docker/config.json + - echo "{\"auths\":{\"$CI_REGISTRY\":{\"auth\":\"$(echo -n ${CI_REGISTRY_USER}:${CI_REGISTRY_PASSWORD} | base64)\"}}}" > /kaniko/.docker/config.json - | echo "-----BEGIN CERTIFICATE----- ... diff --git a/doc/development/service_ping/metrics_dictionary.md b/doc/development/service_ping/metrics_dictionary.md index 9d668f37e79..5dec8d53079 100644 --- a/doc/development/service_ping/metrics_dictionary.md +++ b/doc/development/service_ping/metrics_dictionary.md @@ -40,6 +40,7 @@ Each metric is defined in a separate YAML file consisting of a number of fields: | `data_category` | yes | `string`; [categories](#data-category) of the metric, may be set to `Operational`, `Optional`, `Subscription`, `Standard`. The default value is `Optional`.| | `instrumentation_class` | no | `string`; [the class that implements the metric](metrics_instrumentation.md). | | `distribution` | yes | `array`; may be set to one of `ce, ee` or `ee`. The [distribution](https://about.gitlab.com/handbook/marketing/strategic-marketing/tiers/#definitions) where the tracked feature is available. | +| `performance_indicator_type` | no | `array`; may be set to one of [`gmau`, `smau`, `paid_gmau`, or `umau`](https://about.gitlab.com/handbook/business-technology/data-team/data-catalog/xmau-analysis/). | | `tier` | yes | `array`; may be set to one of `free, premium, ultimate`, `premium, ultimate` or `ultimate`. The [tier]( https://about.gitlab.com/handbook/marketing/strategic-marketing/tiers/) where the tracked feature is available. | | `milestone` | no | The milestone when the metric is introduced. | | `milestone_removed` | no | The milestone when the metric is removed. | diff --git a/doc/development/usage_ping/dictionary.md b/doc/development/usage_ping/dictionary.md index 6229f308671..6640f5c0b45 100644 --- a/doc/development/usage_ping/dictionary.md +++ b/doc/development/usage_ping/dictionary.md @@ -386,7 +386,7 @@ Tiers: `premium`, `ultimate` ### `compliance_unique_visits.g_compliance_dashboard` -Number of unique visitors to the compliance report. +Number of unique visitors to the compliance dashboard. [YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_all/20210216183904_g_compliance_dashboard.yml) @@ -5314,7 +5314,7 @@ Tiers: `free`, `premium`, `ultimate` ### `counts.projects_imported_from_github` -Missing description +Count of projects imported from GitHub [YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_all/20210216180628_projects_imported_from_github.yml) @@ -5324,7 +5324,7 @@ Data Category: `Operational` Status: `data_available` -Tiers: `free` +Tiers: `free`, `premium`, `ultimate` ### `counts.projects_inheriting_asana_active` @@ -7848,7 +7848,7 @@ Tiers: `free`, `premium`, `ultimate` ### `counts_monthly.aggregated_metrics.compliance_features_track_unique_visits_union` -Unique users that have used audit event screen, audit event API, compliance report, or credential inventory +Unique users that have used audit event screen, audit event API, compliance dashboard, or credential inventory [YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_28d/20210216183201_compliance_features_track_unique_visits_union.yml) @@ -11824,7 +11824,7 @@ Tiers: `premium`, `ultimate` ### `redis_hll_counters.compliance.g_compliance_dashboard_monthly` -Unique users who have viewed the compliance report in a given month. +Unique users who have viewed the compliance dashboard in a given month. [YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_28d/20210216183926_g_compliance_dashboard_monthly.yml) @@ -19024,7 +19024,7 @@ Tiers: `premium`, `ultimate` ### `usage_activity_by_stage.create.projects_imported_from_github` -Missing description +Count of projects imported from GitHub [YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_all/20210216180630_projects_imported_from_github.yml) @@ -19034,7 +19034,7 @@ Data Category: `Optional` Status: `data_available` -Tiers: `free` +Tiers: `free`, `premium`, `ultimate` ### `usage_activity_by_stage.create.projects_with_disable_overriding_approvers_per_merge_request` @@ -19258,7 +19258,7 @@ Data Category: `Optional` Status: `deprecated` -Tiers: `free` +Tiers: `free`, `premium`, `ultimate` ### `usage_activity_by_stage.manage.bulk_imports.gitlab_v1` @@ -19272,7 +19272,7 @@ Data Category: `Optional` Status: `data_available` -Tiers: `free` +Tiers: `free`, `premium`, `ultimate` ### `usage_activity_by_stage.manage.compliance_frameworks_with_pipeline` @@ -19328,11 +19328,11 @@ Data Category: `Optional` Status: `data_available` -Tiers: `free` +Tiers: `free`, `premium`, `ultimate` ### `usage_activity_by_stage.manage.group_imports.group_import` -Count of group imports using Group Import/Export +Count of groups imported using Group Import/Export [YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_all/20210216180702_group_import.yml) @@ -19342,7 +19342,7 @@ Data Category: `Optional` Status: `data_available` -Tiers: `free` +Tiers: `free`, `premium`, `ultimate` ### `usage_activity_by_stage.manage.group_saml_enabled` @@ -19384,7 +19384,7 @@ Data Category: `Optional` Status: `deprecated` -Tiers: `free` +Tiers: `free`, `premium`, `ultimate` ### `usage_activity_by_stage.manage.issue_imports.csv` @@ -19398,7 +19398,7 @@ Data Category: `Optional` Status: `data_available` -Tiers: `free` +Tiers: `free`, `premium`, `ultimate` ### `usage_activity_by_stage.manage.issue_imports.fogbugz` @@ -19412,7 +19412,7 @@ Data Category: `Optional` Status: `data_available` -Tiers: `free` +Tiers: `free`, `premium`, `ultimate` ### `usage_activity_by_stage.manage.issue_imports.jira` @@ -19426,7 +19426,7 @@ Data Category: `Operational` Status: `data_available` -Tiers: `free` +Tiers: `free`, `premium`, `ultimate` ### `usage_activity_by_stage.manage.issue_imports.phabricator` @@ -19440,7 +19440,7 @@ Data Category: `Optional` Status: `data_available` -Tiers: `free` +Tiers: `free`, `premium`, `ultimate` ### `usage_activity_by_stage.manage.issues_imported.csv` @@ -19454,7 +19454,7 @@ Data Category: `Optional` Status: `deprecated` -Tiers: `free` +Tiers: `free`, `premium`, `ultimate` ### `usage_activity_by_stage.manage.issues_imported.fogbugz` @@ -19468,7 +19468,7 @@ Data Category: `Optional` Status: `deprecated` -Tiers: `free` +Tiers: `free`, `premium`, `ultimate` ### `usage_activity_by_stage.manage.issues_imported.jira` @@ -19482,7 +19482,7 @@ Data Category: `Optional` Status: `deprecated` -Tiers: `free` +Tiers: `free`, `premium`, `ultimate` ### `usage_activity_by_stage.manage.issues_imported.phabricator` @@ -19496,7 +19496,7 @@ Data Category: `Optional` Status: `deprecated` -Tiers: `free` +Tiers: `free`, `premium`, `ultimate` ### `usage_activity_by_stage.manage.ldap_admin_sync_enabled` @@ -19734,7 +19734,7 @@ Data Category: `Optional` Status: `deprecated` -Tiers: `free` +Tiers: `free`, `premium`, `ultimate` ### `usage_activity_by_stage.manage.projects_imported.bitbucket_server` @@ -19748,7 +19748,7 @@ Data Category: `Optional` Status: `deprecated` -Tiers: `free` +Tiers: `free`, `premium`, `ultimate` ### `usage_activity_by_stage.manage.projects_imported.git` @@ -19762,7 +19762,7 @@ Data Category: `Optional` Status: `deprecated` -Tiers: `free` +Tiers: `free`, `premium`, `ultimate` ### `usage_activity_by_stage.manage.projects_imported.gitea` @@ -19776,7 +19776,7 @@ Data Category: `Optional` Status: `deprecated` -Tiers: `free` +Tiers: `free`, `premium`, `ultimate` ### `usage_activity_by_stage.manage.projects_imported.github` @@ -19790,7 +19790,7 @@ Data Category: `Optional` Status: `deprecated` -Tiers: `free` +Tiers: `free`, `premium`, `ultimate` ### `usage_activity_by_stage.manage.projects_imported.gitlab` @@ -19804,7 +19804,7 @@ Data Category: `Optional` Status: `deprecated` -Tiers: `free` +Tiers: `free`, `premium`, `ultimate` ### `usage_activity_by_stage.manage.projects_imported.gitlab_project` @@ -19818,7 +19818,7 @@ Data Category: `Optional` Status: `deprecated` -Tiers: `free` +Tiers: `free`, `premium`, `ultimate` ### `usage_activity_by_stage.manage.projects_imported.manifest` @@ -19832,7 +19832,7 @@ Data Category: `Optional` Status: `deprecated` -Tiers: `free` +Tiers: `free`, `premium`, `ultimate` ### `usage_activity_by_stage.manage.projects_imported.total` @@ -19846,7 +19846,7 @@ Data Category: `Optional` Status: `deprecated` -Tiers: `free` +Tiers: `free`, `premium`, `ultimate` ### `usage_activity_by_stage.manage.projects_with_compliance_framework` @@ -19874,7 +19874,7 @@ Data Category: `Optional` Status: `data_available` -Tiers: `free` +Tiers: `free`, `premium`, `ultimate` ### `usage_activity_by_stage.manage.user_auth_by_provider.google_oauth2` @@ -21476,7 +21476,7 @@ Tiers: `premium`, `ultimate` ### `usage_activity_by_stage_monthly.create.projects_imported_from_github` -Missing description +Count of projects imported from GitHub [YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_28d/20210216180731_projects_imported_from_github.yml) @@ -21486,7 +21486,7 @@ Data Category: `Optional` Status: `data_available` -Tiers: `free` +Tiers: `free`, `premium`, `ultimate` ### `usage_activity_by_stage_monthly.create.projects_with_disable_overriding_approvers_per_merge_request` @@ -21672,31 +21672,31 @@ Tiers: `free`, `premium`, `ultimate` ### `usage_activity_by_stage_monthly.manage.bulk_imports.gitlab` -Missing description +DEPRECATED - Count of projects imported using bulk imports [YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_28d/20210216183640_gitlab.yml) -Group: `` +Group: `group::import` Data Category: `Optional` Status: `deprecated` -Tiers: `free` +Tiers: `free`, `premium`, `ultimate` ### `usage_activity_by_stage_monthly.manage.bulk_imports.gitlab_v1` -Missing description +Count of bulk imports - GitLab Migration [YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_28d/20210216183642_gitlab_v1.yml) -Group: `` +Group: `group::import` Data Category: `Optional` Status: `data_available` -Tiers: `free` +Tiers: `free`, `premium`, `ultimate` ### `usage_activity_by_stage_monthly.manage.compliance_frameworks_with_pipeline` @@ -21742,17 +21742,17 @@ Tiers: `free` ### `usage_activity_by_stage_monthly.manage.group_imports.gitlab_migration` -Missing description +Count of groups imported using GitLab Migration [YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_28d/20210216183711_gitlab_migration.yml) -Group: `` +Group: `group::import` Data Category: `Optional` Status: `data_available` -Tiers: `free` +Tiers: `free`, `premium`, `ultimate` ### `usage_activity_by_stage_monthly.manage.group_imports.group_import` @@ -21798,7 +21798,7 @@ Tiers: `free`, `premium`, `ultimate` ### `usage_activity_by_stage_monthly.manage.groups_imported` -Missing description +Count of imported groups [YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_28d/20210216183737_groups_imported.yml) @@ -21808,119 +21808,119 @@ Data Category: `Optional` Status: `deprecated` -Tiers: `free` +Tiers: `free`, `premium`, `ultimate` ### `usage_activity_by_stage_monthly.manage.issue_imports.csv` -Missing description +Count of (issue) imports from CSV file [YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_28d/20210216183707_csv.yml) -Group: `` +Group: `group::import` Data Category: `Optional` Status: `data_available` -Tiers: `free` +Tiers: `free`, `premium`, `ultimate` ### `usage_activity_by_stage_monthly.manage.issue_imports.fogbugz` -Missing description +Count of imports from Fogbugz [YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_28d/20210216183703_fogbugz.yml) -Group: `` +Group: `group::import` Data Category: `Optional` Status: `data_available` -Tiers: `free` +Tiers: `free`, `premium`, `ultimate` ### `usage_activity_by_stage_monthly.manage.issue_imports.jira` -Missing description +Count of imports from Jira [YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_28d/20210216183701_jira.yml) -Group: `` +Group: `group::import` Data Category: `Optional` Status: `data_available` -Tiers: `free` +Tiers: `free`, `premium`, `ultimate` ### `usage_activity_by_stage_monthly.manage.issue_imports.phabricator` -Missing description +Count of imports from Phabricator [YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_28d/20210216183705_phabricator.yml) -Group: `` +Group: `group::import` Data Category: `Optional` Status: `data_available` -Tiers: `free` +Tiers: `free`, `premium`, `ultimate` ### `usage_activity_by_stage_monthly.manage.issues_imported.csv` -Missing description +Count of projects imported from CSV file [YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_28d/20210216183735_csv.yml) -Group: `` +Group: `group::import` Data Category: `Optional` Status: `deprecated` -Tiers: `free` +Tiers: `free`, `premium`, `ultimate` ### `usage_activity_by_stage_monthly.manage.issues_imported.fogbugz` -Missing description +Count of projects imported from Fogbugz [YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_28d/20210216183731_fogbugz.yml) -Group: `` +Group: `group::import` Data Category: `Optional` Status: `deprecated` -Tiers: `free` +Tiers: `free`, `premium`, `ultimate` ### `usage_activity_by_stage_monthly.manage.issues_imported.jira` -Missing description +Count of projects imported from Jira [YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_28d/20210216183730_jira.yml) -Group: `` +Group: `group::import` Data Category: `Optional` Status: `deprecated` -Tiers: `free` +Tiers: `free`, `premium`, `ultimate` ### `usage_activity_by_stage_monthly.manage.issues_imported.phabricator` -Missing description +Count of projects imported from Phabricator [YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_28d/20210216183733_phabricator.yml) -Group: `` +Group: `group::import` Data Category: `Optional` Status: `deprecated` -Tiers: `free` +Tiers: `free`, `premium`, `ultimate` ### `usage_activity_by_stage_monthly.manage.ldap_admin_sync_enabled` @@ -22092,7 +22092,7 @@ Tiers: `free`, `premium`, `ultimate` ### `usage_activity_by_stage_monthly.manage.project_imports.gitlab_migration` -Missing description +Count of projects imported using GitLab Migration [YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_28d/20210216183659_gitlab_migration.yml) @@ -22106,7 +22106,7 @@ Tiers: `free`, `premium`, `ultimate` ### `usage_activity_by_stage_monthly.manage.project_imports.gitlab_project` -Missing description +Count of projects imported using Project Import/Export [YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_28d/20210216183644_gitlab_project.yml) @@ -22120,7 +22120,7 @@ Tiers: `free`, `premium`, `ultimate` ### `usage_activity_by_stage_monthly.manage.project_imports.manifest` -Missing description +Count of projects imported using Manifest file [YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_28d/20210216183657_manifest.yml) @@ -22176,101 +22176,101 @@ Tiers: `free`, `premium`, `ultimate` ### `usage_activity_by_stage_monthly.manage.projects_imported.git` -Missing description +Count of projects imported from Git [YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_28d/20210216183726_git.yml) -Group: `` +Group: `group::import` Data Category: `Optional` Status: `deprecated` -Tiers: `free` +Tiers: `free`, `premium`, `ultimate` ### `usage_activity_by_stage_monthly.manage.projects_imported.gitea` -Missing description +Count of projects imported from Gitea [YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_28d/20210216183724_gitea.yml) -Group: `` +Group: `group::import` Data Category: `Optional` Status: `deprecated` -Tiers: `free` +Tiers: `free`, `premium`, `ultimate` ### `usage_activity_by_stage_monthly.manage.projects_imported.github` -Missing description +Count of projects imported from GitHub [YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_28d/20210216183718_github.yml) -Group: `` +Group: `group::import` Data Category: `Optional` Status: `deprecated` -Tiers: `free` +Tiers: `free`, `premium`, `ultimate` ### `usage_activity_by_stage_monthly.manage.projects_imported.gitlab` -Missing description +Count of projects imported using Project Import/Export [YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_28d/20210216183716_gitlab.yml) -Group: `` +Group: `group::import` Data Category: `Optional` Status: `deprecated` -Tiers: `free` +Tiers: `free`, `premium`, `ultimate` ### `usage_activity_by_stage_monthly.manage.projects_imported.gitlab_project` -Missing description +Count of projects imported using Project Import/Export [YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_28d/20210216183714_gitlab_project.yml) -Group: `` +Group: `group::import` Data Category: `Optional` Status: `deprecated` -Tiers: `free` +Tiers: `free`, `premium`, `ultimate` ### `usage_activity_by_stage_monthly.manage.projects_imported.manifest` -Missing description +Count of projects imported from Git using file Manifest [YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_28d/20210216183728_manifest.yml) -Group: `` +Group: `group::import` Data Category: `Optional` Status: `deprecated` -Tiers: `free` +Tiers: `free`, `premium`, `ultimate` ### `usage_activity_by_stage_monthly.manage.projects_imported.total` -Missing description +Count of all imported projects [YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_28d/20210216183712_total.yml) -Group: `` +Group: `group::import` Data Category: `Optional` Status: `deprecated` -Tiers: `free` +Tiers: `free`, `premium`, `ultimate` ### `usage_activity_by_stage_monthly.manage.projects_with_compliance_framework` @@ -22288,7 +22288,7 @@ Tiers: ### `usage_activity_by_stage_monthly.manage.unique_users_all_imports` -Number of users from projects imported +Number of unique users performing imports [YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_28d/20210216183638_unique_users_all_imports.yml) diff --git a/doc/user/admin_area/settings/index.md b/doc/user/admin_area/settings/index.md index 7f867ad4bbb..6f8aa6a2e04 100644 --- a/doc/user/admin_area/settings/index.md +++ b/doc/user/admin_area/settings/index.md @@ -84,7 +84,7 @@ To access the default page for Admin Area settings: | ------ | ----------- | | [Metrics - Prometheus](../../../administration/monitoring/prometheus/gitlab_metrics.md) | Enable and configure Prometheus metrics. | | [Metrics - Grafana](../../../administration/monitoring/performance/grafana_configuration.md#integration-with-gitlab-ui) | Enable and configure Grafana. | -| [Profiling - Performance bar](../../../administration/monitoring/performance/performance_bar.md#enable-the-performance-bar-via-the-admin-area) | Enable access to the Performance Bar for a given group. | +| [Profiling - Performance bar](../../../administration/monitoring/performance/performance_bar.md#enable-the-performance-bar-for-non-administrators) | Enable access to the Performance Bar for non-administrator users in a given group. | | [Self monitoring](../../../administration/monitoring/gitlab_self_monitoring_project/index.md#create-the-self-monitoring-project) | Enable or disable instance self monitoring. | | [Usage statistics](usage_statistics.md) | Enable or disable version check and Service Ping. | | [Pseudonymizer data collection](../../../administration/pseudonymizer.md) **(ULTIMATE)** | Enable or disable the Pseudonymizer data collection. | diff --git a/generator_templates/usage_metric_definition/metric_definition.yml b/generator_templates/usage_metric_definition/metric_definition.yml index 209ff628eb5..8dc7db146eb 100644 --- a/generator_templates/usage_metric_definition/metric_definition.yml +++ b/generator_templates/usage_metric_definition/metric_definition.yml @@ -12,6 +12,7 @@ introduced_by_url: time_frame: <%= time_frame %> data_source: data_category: Optional +performance_indicator_type: distribution: <%= distribution %> tier: diff --git a/locale/gitlab.pot b/locale/gitlab.pot index 231800642aa..5f136655a92 100644 --- a/locale/gitlab.pot +++ b/locale/gitlab.pot @@ -3282,6 +3282,9 @@ msgstr "" msgid "Allow \"%{group_name}\" to sign you in" msgstr "" +msgid "Allow access to members of the following group" +msgstr "" + msgid "Allow access to the following IP addresses" msgstr "" @@ -3291,6 +3294,9 @@ msgstr "" msgid "Allow group owners to manage LDAP-related settings" msgstr "" +msgid "Allow non-administrators to access to the performance bar" +msgstr "" + msgid "Allow only the selected protocols to be used for Git access." msgstr "" @@ -3354,9 +3360,6 @@ msgstr "" msgid "Allowed email domain restriction only permitted for top-level groups" msgstr "" -msgid "Allowed group" -msgstr "" - msgid "Allowed to create:" msgstr "" @@ -3909,9 +3912,6 @@ msgstr "" msgid "Any namespace" msgstr "" -msgid "Any user" -msgstr "" - msgid "App ID" msgstr "" @@ -5296,6 +5296,24 @@ msgstr "" msgid "BoardNewIssue|Select a project" msgstr "" +msgid "BoardScope|An error occurred while searching for users, please try again." +msgstr "" + +msgid "BoardScope|Any assignee" +msgstr "" + +msgid "BoardScope|Assignee" +msgstr "" + +msgid "BoardScope|Edit" +msgstr "" + +msgid "BoardScope|No matching results" +msgstr "" + +msgid "BoardScope|Select assignee" +msgstr "" + msgid "Boards" msgstr "" @@ -11219,6 +11237,9 @@ msgstr "" msgid "DevOps adoption" msgstr "" +msgid "Devices (optional)" +msgstr "" + msgid "DevopsAdoption|%{adoptedCount}/%{featuresCount} %{title} features adopted" msgstr "" @@ -12124,10 +12145,7 @@ msgstr "" msgid "Enable a Prometheus metrics endpoint at %{metrics_path} to expose a variety of statistics on the health and performance of GitLab. Additional information on authenticating and connecting to the metrics endpoint is available %{link}." msgstr "" -msgid "Enable access to the Performance Bar" -msgstr "" - -msgid "Enable access to the Performance Bar for a given group." +msgid "Enable access to the performance bar for non-administrators in a given group." msgstr "" msgid "Enable and configure Prometheus metrics." @@ -26807,22 +26825,28 @@ msgstr "" msgid "PushoverService|%{user_name} pushed new branch \"%{ref}\"." msgstr "" +msgid "PushoverService|Enter your application key." +msgstr "" + +msgid "PushoverService|Enter your user key." +msgstr "" + msgid "PushoverService|Get real-time notifications on your device." msgstr "" -msgid "PushoverService|High Priority" +msgid "PushoverService|High priority" msgstr "" -msgid "PushoverService|Leave blank for all active devices" +msgid "PushoverService|Leave blank for all active devices." msgstr "" -msgid "PushoverService|Low Priority" +msgid "PushoverService|Low priority" msgstr "" -msgid "PushoverService|Lowest Priority" +msgid "PushoverService|Lowest priority" msgstr "" -msgid "PushoverService|Normal Priority" +msgid "PushoverService|Normal priority" msgstr "" msgid "PushoverService|See project %{project_full_name}" @@ -26831,12 +26855,6 @@ msgstr "" msgid "PushoverService|Total commits count: %{total_commits_count}" msgstr "" -msgid "PushoverService|Your application key" -msgstr "" - -msgid "PushoverService|Your user key" -msgstr "" - msgid "Quarters" msgstr "" @@ -29582,9 +29600,6 @@ msgstr "" msgid "Select type" msgstr "" -msgid "Select user" -msgstr "" - msgid "Selected" msgstr "" @@ -35700,6 +35715,9 @@ msgstr "" msgid "User is not allowed to resolve thread" msgstr "" +msgid "User key" +msgstr "" + msgid "User key was successfully removed." msgstr "" diff --git a/qa/qa/resource/base.rb b/qa/qa/resource/base.rb index ca0087cf709..88b388bd2e0 100644 --- a/qa/qa/resource/base.rb +++ b/qa/qa/resource/base.rb @@ -75,19 +75,18 @@ module QA end def log_fabrication(method, resource, parents, args) - return yield unless Runtime::Env.debug? - start = Time.now - prefix = "==#{'=' * parents.size}>" - msg = [prefix] - msg << "Built a #{name}" - msg << "as a dependency of #{parents.last}" if parents.any? - msg << "via #{method}" yield.tap do - msg << "in #{Time.now - start} seconds" - puts msg.join(' ') - puts if parents.empty? + Runtime::Logger.debug do + msg = ["==#{'=' * parents.size}>"] + msg << "Built a #{name}" + msg << "as a dependency of #{parents.last}" if parents.any? + msg << "via #{method}" + msg << "in #{Time.now - start} seconds" + + msg.join(' ') + end end end diff --git a/qa/qa/specs/features/browser_ui/7_configure/kubernetes/kubernetes_integration_spec.rb b/qa/qa/specs/features/browser_ui/7_configure/kubernetes/kubernetes_integration_spec.rb index 1803b4b16de..1926617fb7e 100644 --- a/qa/qa/specs/features/browser_ui/7_configure/kubernetes/kubernetes_integration_spec.rb +++ b/qa/qa/specs/features/browser_ui/7_configure/kubernetes/kubernetes_integration_spec.rb @@ -1,8 +1,8 @@ # frozen_string_literal: true module QA - RSpec.describe 'Configure' do - describe 'Kubernetes Cluster Integration', :orchestrated, :kubernetes, :requires_admin, :skip_live_env, quarantine: { issue: 'https://gitlab.com/gitlab-org/gitlab/-/issues/225315', type: :flaky } do + RSpec.describe 'Configure', except: { job: 'review-qa-*' } do + describe 'Kubernetes Cluster Integration', :requires_admin, :skip_live_env do context 'Project Clusters' do let!(:cluster) { Service::KubernetesCluster.new(provider_class: Service::ClusterProvider::K3s).create! } let(:project) do @@ -20,7 +20,7 @@ module QA cluster.remove! end - it 'can create and associate a project cluster', :smoke, testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/707' do + it 'can create and associate a project cluster', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/707' do Resource::KubernetesCluster::ProjectCluster.fabricate_via_browser_ui! do |k8s_cluster| k8s_cluster.project = project k8s_cluster.cluster = cluster diff --git a/qa/spec/resource/base_spec.rb b/qa/spec/resource/base_spec.rb index c0bedf794be..a60bb3e6eaf 100644 --- a/qa/spec/resource/base_spec.rb +++ b/qa/spec/resource/base_spec.rb @@ -6,7 +6,7 @@ RSpec.describe QA::Resource::Base do let(:resource) { spy('resource') } let(:location) { 'http://location' } - shared_context 'fabrication context' do + shared_context 'with fabrication context' do subject do Class.new(described_class) do def self.name @@ -28,24 +28,14 @@ RSpec.describe QA::Resource::Base do expect(resource).to receive(:something!).ordered expect(resource).to receive(fabrication_method_used).ordered.and_return(location) - subject.public_send(fabrication_method_called, resource: resource) do |resource| - resource.something! - end - end - - it 'does not log the resource and build method when QA_DEBUG=false' do - stub_env('QA_DEBUG', 'false') - expect(resource).to receive(fabrication_method_used).and_return(location) - - expect { subject.public_send(fabrication_method_called, 'something', resource: resource) } - .not_to output.to_stdout + subject.public_send(fabrication_method_called, resource: resource, &:something!) end end describe '.fabricate!' do context 'when resource does not support fabrication via the API' do before do - expect(described_class).to receive(:fabricate_via_api!).and_raise(NotImplementedError) + allow(described_class).to receive(:fabricate_via_api!).and_raise(NotImplementedError) end it 'calls .fabricate_via_browser_ui!' do @@ -65,7 +55,7 @@ RSpec.describe QA::Resource::Base do end describe '.fabricate_via_api!' do - include_context 'fabrication context' + include_context 'with fabrication context' it_behaves_like 'fabrication method', :fabricate_via_api! @@ -77,18 +67,25 @@ RSpec.describe QA::Resource::Base do expect(result).to eq(resource) end - it 'logs the resource and build method when QA_DEBUG=true' do - stub_env('QA_DEBUG', 'true') - expect(resource).to receive(:fabricate_via_api!).and_return(location) + context "with debug log level" do + before do + allow(QA::Runtime::Logger).to receive(:debug) + end - expect { subject.fabricate_via_api!('something', resource: resource, parents: []) } - .to output(/==> Built a MyResource via api in [\d\.\-e]+ seconds+/) - .to_stdout + it 'logs the resource and build method' do + stub_env('QA_DEBUG', 'true') + + subject.fabricate_via_api!('something', resource: resource, parents: []) + + expect(QA::Runtime::Logger).to have_received(:debug) do |&msg| + expect(msg.call).to match_regex(/==> Built a MyResource via api in [\d.\-e]+ seconds+/) + end + end end end describe '.fabricate_via_browser_ui!' do - include_context 'fabrication context' + include_context 'with fabrication context' it_behaves_like 'fabrication method', :fabricate_via_browser_ui!, :fabricate! @@ -104,16 +101,24 @@ RSpec.describe QA::Resource::Base do expect(result).to eq(resource) end - it 'logs the resource and build method when QA_DEBUG=true' do - stub_env('QA_DEBUG', 'true') + context "with debug log level" do + before do + allow(QA::Runtime::Logger).to receive(:debug) + end - expect { subject.fabricate_via_browser_ui!('something', resource: resource, parents: []) } - .to output(/==> Built a MyResource via browser_ui in [\d\.\-e]+ seconds+/) - .to_stdout + it 'logs the resource and build method' do + stub_env('QA_DEBUG', 'true') + + subject.fabricate_via_browser_ui!('something', resource: resource, parents: []) + + expect(QA::Runtime::Logger).to have_received(:debug) do |&msg| + expect(msg.call).to match_regex(/==> Built a MyResource via browser_ui in [\d.\-e]+ seconds+/) + end + end end end - shared_context 'simple resource' do + shared_context 'with simple resource' do subject do Class.new(QA::Resource::Base) do attribute :test do @@ -136,7 +141,7 @@ RSpec.describe QA::Resource::Base do end describe '.attribute' do - include_context 'simple resource' + include_context 'with simple resource' context 'when the attribute is populated via a block' do it 'returns value from the block' do @@ -151,7 +156,7 @@ RSpec.describe QA::Resource::Base do let(:api_resource) { { no_block: 'api' } } before do - expect(resource).to receive(:api_resource).and_return(api_resource) + allow(resource).to receive(:api_resource).and_return(api_resource) end it 'returns value from api' do @@ -209,8 +214,9 @@ RSpec.describe QA::Resource::Base do it 'raises an error because no values could be found' do result = subject.fabricate!(resource: resource) - expect { result.no_block } - .to raise_error(described_class::NoValueError, "No value was computed for no_block of #{resource.class.name}.") + expect { result.no_block }.to raise_error( + described_class::NoValueError, "No value was computed for no_block of #{resource.class.name}." + ) end end @@ -254,7 +260,7 @@ RSpec.describe QA::Resource::Base do end describe '#web_url' do - include_context 'simple resource' + include_context 'with simple resource' it 'sets #web_url to #current_url after fabrication' do subject.fabricate!(resource: resource) @@ -264,7 +270,7 @@ RSpec.describe QA::Resource::Base do end describe '#visit!' do - include_context 'simple resource' + include_context 'with simple resource' before do allow(resource).to receive(:visit) diff --git a/scripts/trigger-build b/scripts/trigger-build index c65fb5b5f76..8f66e8974ef 100755 --- a/scripts/trigger-build +++ b/scripts/trigger-build @@ -124,14 +124,19 @@ module Trigger end class Omnibus < Base + def self.access_token + # Default to "Multi-pipeline (from 'gitlab-org/gitlab' 'package-and-qa' job)" at https://gitlab.com/gitlab-org/build/omnibus-gitlab-mirror/-/settings/access_tokens + ENV['OMNIBUS_GITLAB_PROJECT_ACCESS_TOKEN'] || super + end + private def downstream_project_path - ENV['OMNIBUS_PROJECT_PATH'] || 'gitlab-org/build/omnibus-gitlab-mirror' + ENV.fetch('OMNIBUS_PROJECT_PATH', 'gitlab-org/build/omnibus-gitlab-mirror') end def ref - ENV['OMNIBUS_BRANCH'] || 'master' + ENV.fetch('OMNIBUS_BRANCH', 'master') end def extra_variables @@ -154,25 +159,21 @@ module Trigger end class CNG < Base + def self.access_token + # Default to "Multi-pipeline (from 'gitlab-org/gitlab' 'cloud-native-image' job)" at https://gitlab.com/gitlab-org/build/CNG/-/settings/access_tokens + ENV['CNG_PROJECT_ACCESS_TOKEN'] || super + end + private def downstream_project_path - ENV['CNG_PROJECT_PATH'] || 'gitlab-org/build/CNG-mirror' + ENV.fetch('CNG_PROJECT_PATH', 'gitlab-org/build/CNG') end def ref - default_ref = - if ENV['CI_COMMIT_REF_NAME'] =~ /^[\d-]+-stable(-ee)?$/ - ENV['CI_COMMIT_REF_NAME'] - else - 'master' - end + return ENV['CI_COMMIT_REF_NAME'] if ENV['CI_COMMIT_REF_NAME'] =~ /^[\d-]+-stable(-ee)?$/ - ENV['CNG_BRANCH'] || default_ref - end - - def trigger_token - ENV['CI_JOB_TOKEN'] + ENV.fetch('CNG_BRANCH', 'master') end def extra_variables @@ -204,7 +205,8 @@ module Trigger class Docs < Base def self.access_token - ENV['DOCS_PROJECT_API_TOKEN'] + # Default to "DOCS_PROJECT_API_TOKEN" at https://gitlab.com/gitlab-org/gitlab-docs/-/settings/access_tokens + ENV['DOCS_PROJECT_API_TOKEN'] || super end SUCCESS_MESSAGE = <<~MSG @@ -253,11 +255,11 @@ module Trigger end def downstream_project_path - ENV['DOCS_PROJECT_PATH'] || 'gitlab-org/gitlab-docs' + ENV.fetch('DOCS_PROJECT_PATH', 'gitlab-org/gitlab-docs') end def ref - ENV['DOCS_BRANCH'] || 'main' + ENV.fetch('DOCS_BRANCH', 'main') end # `gitlab-org/gitlab-docs` pipeline trigger "Triggered from gitlab-org/gitlab 'review-docs-deploy' job" @@ -349,7 +351,7 @@ module Trigger end def downstream_project_path - ENV['GITLABCOM_DATABASE_TESTING_PROJECT_PATH'] || 'gitlab-com/database-team/gitlab-com-database-testing' + ENV.fetch('GITLABCOM_DATABASE_TESTING_PROJECT_PATH', 'gitlab-com/database-team/gitlab-com-database-testing') end def extra_variables diff --git a/spec/features/admin/admin_settings_spec.rb b/spec/features/admin/admin_settings_spec.rb index 9efb31ef4c1..a7f3272c06d 100644 --- a/spec/features/admin/admin_settings_spec.rb +++ b/spec/features/admin/admin_settings_spec.rb @@ -502,23 +502,23 @@ RSpec.describe 'Admin updates settings' do group = create(:group) page.within('.as-performance-bar') do - check 'Enable access to the Performance Bar' - fill_in 'Allowed group', with: group.path + check 'Allow non-administrators to access to the performance bar' + fill_in 'Allow access to members of the following group', with: group.path click_on 'Save changes' end expect(page).to have_content "Application settings saved successfully" - expect(find_field('Enable access to the Performance Bar')).to be_checked - expect(find_field('Allowed group').value).to eq group.path + expect(find_field('Allow non-administrators to access to the performance bar')).to be_checked + expect(find_field('Allow access to members of the following group').value).to eq group.path page.within('.as-performance-bar') do - uncheck 'Enable access to the Performance Bar' + uncheck 'Allow non-administrators to access to the performance bar' click_on 'Save changes' end expect(page).to have_content 'Application settings saved successfully' - expect(find_field('Enable access to the Performance Bar')).not_to be_checked - expect(find_field('Allowed group').value).to be_nil + expect(find_field('Allow non-administrators to access to the performance bar')).not_to be_checked + expect(find_field('Allow access to members of the following group').value).to be_nil end it 'loads usage ping payload on click', :js do diff --git a/spec/features/profile_spec.rb b/spec/features/profile_spec.rb index 0f453f1c1e5..9a261c6d9c8 100644 --- a/spec/features/profile_spec.rb +++ b/spec/features/profile_spec.rb @@ -74,8 +74,6 @@ RSpec.describe 'Profile account page', :js do expect(find('#feed_token').value).not_to eq(previous_token) end - - expect(page).to have_content 'Feed token was successfully reset' end end diff --git a/spec/features/projects/services/user_activates_pushover_spec.rb b/spec/features/projects/services/user_activates_pushover_spec.rb index 97003ab7c2a..d92f69e700a 100644 --- a/spec/features/projects/services/user_activates_pushover_spec.rb +++ b/spec/features/projects/services/user_activates_pushover_spec.rb @@ -14,7 +14,7 @@ RSpec.describe 'User activates Pushover' do fill_in('API key', with: 'verySecret') fill_in('User key', with: 'verySecret') fill_in('Device', with: 'myDevice') - select('High Priority', from: 'Priority') + select('High priority', from: 'Priority') select('Bike', from: 'Sound') click_test_then_save_integration(expect_test_to_fail: false) diff --git a/spec/fixtures/lib/generators/gitlab/usage_metric_definition_generator/sample_metric.yml b/spec/fixtures/lib/generators/gitlab/usage_metric_definition_generator/sample_metric.yml index f694e617320..af5704f7d01 100644 --- a/spec/fixtures/lib/generators/gitlab/usage_metric_definition_generator/sample_metric.yml +++ b/spec/fixtures/lib/generators/gitlab/usage_metric_definition_generator/sample_metric.yml @@ -13,6 +13,7 @@ introduced_by_url: time_frame: 7d data_source: data_category: Operational +performance_indicator_type: distribution: - ce # Add here corresponding tiers diff --git a/spec/fixtures/lib/generators/gitlab/usage_metric_definition_generator/sample_metric_with_ee.yml b/spec/fixtures/lib/generators/gitlab/usage_metric_definition_generator/sample_metric_with_ee.yml index 9de4d2a5644..6f4e2b3f9ee 100644 --- a/spec/fixtures/lib/generators/gitlab/usage_metric_definition_generator/sample_metric_with_ee.yml +++ b/spec/fixtures/lib/generators/gitlab/usage_metric_definition_generator/sample_metric_with_ee.yml @@ -13,6 +13,7 @@ introduced_by_url: time_frame: 7d data_source: data_category: Optional +performance_indicator_type: distribution: - ee tier: diff --git a/spec/fixtures/lib/generators/gitlab/usage_metric_definition_generator/sample_metric_with_name_suggestions.yml b/spec/fixtures/lib/generators/gitlab/usage_metric_definition_generator/sample_metric_with_name_suggestions.yml index 0e7de369c82..a0e5ea799a5 100644 --- a/spec/fixtures/lib/generators/gitlab/usage_metric_definition_generator/sample_metric_with_name_suggestions.yml +++ b/spec/fixtures/lib/generators/gitlab/usage_metric_definition_generator/sample_metric_with_name_suggestions.yml @@ -14,6 +14,7 @@ introduced_by_url: time_frame: 7d data_source: data_category: Optional +performance_indicator_type: distribution: - ce - ee diff --git a/spec/frontend/sidebar/components/sidebar_dropdown_widget_spec.js b/spec/frontend/sidebar/components/sidebar_dropdown_widget_spec.js index f5e5ab4a984..6355b3542cd 100644 --- a/spec/frontend/sidebar/components/sidebar_dropdown_widget_spec.js +++ b/spec/frontend/sidebar/components/sidebar_dropdown_widget_spec.js @@ -451,7 +451,6 @@ describe('SidebarDropdownWidget', () => { expect(projectMilestonesSpy).toHaveBeenNthCalledWith(1, { fullPath: mockIssue.projectPath, - sort: null, state: 'active', title: '', }); @@ -478,7 +477,6 @@ describe('SidebarDropdownWidget', () => { expect(projectMilestonesSpy).toHaveBeenNthCalledWith(2, { fullPath: mockIssue.projectPath, - sort: null, state: 'active', title: mockSearchTerm, }); diff --git a/spec/frontend/sidebar/mock_data.js b/spec/frontend/sidebar/mock_data.js index 9fab24d7518..2da007fb549 100644 --- a/spec/frontend/sidebar/mock_data.js +++ b/spec/frontend/sidebar/mock_data.js @@ -415,7 +415,7 @@ const mockUser1 = { status: null, }; -const mockUser2 = { +export const mockUser2 = { id: 'gid://gitlab/User/4', avatarUrl: '/avatar2', name: 'rookie', @@ -452,9 +452,40 @@ export const projectMembersResponse = { null, null, // Remove duplicated entry https://gitlab.com/gitlab-org/gitlab/-/issues/327822 - mockUser1, - mockUser1, - mockUser2, + { user: mockUser1 }, + { user: mockUser1 }, + { user: mockUser2 }, + { + user: { + id: 'gid://gitlab/User/2', + avatarUrl: + 'https://www.gravatar.com/avatar/a95e5b71488f4b9d69ce5ff58bfd28d6?s=80\u0026d=identicon', + name: 'Jacki Kub', + username: 'francina.skiles', + webUrl: '/franc', + status: { + availability: 'BUSY', + }, + }, + }, + ], + }, + }, + }, +}; + +export const groupMembersResponse = { + data: { + workspace: { + __typename: 'roup', + users: { + nodes: [ + // Remove nulls https://gitlab.com/gitlab-org/gitlab/-/issues/329750 + null, + null, + // Remove duplicated entry https://gitlab.com/gitlab-org/gitlab/-/issues/327822 + { user: mockUser1 }, + { user: mockUser1 }, { user: { id: 'gid://gitlab/User/2', diff --git a/spec/support/database_cleaner.rb b/spec/support/database_cleaner.rb index f6339d7343c..6a0e398daa1 100644 --- a/spec/support/database_cleaner.rb +++ b/spec/support/database_cleaner.rb @@ -5,10 +5,12 @@ require_relative 'db_cleaner' RSpec.configure do |config| include DbCleaner - # Ensure all sequences are reset at the start of the suite run + # Ensure the database is empty at the start of the suite run with :deletion strategy + # neither the sequence is reset nor the tables are vacuum, but this provides + # better I/O performance on machines with slower storage config.before(:suite) do setup_database_cleaner - DatabaseCleaner.clean_with(:truncation) + DatabaseCleaner.clean_with(:deletion) end config.append_after(:context, :migration) do