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

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2021-06-02 15:10:05 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2021-06-02 15:10:05 +0300
commit2e4e6e9bb63212c628e67c6865fa39f62217a83d (patch)
tree207b9f8d3a7bd6bce448935fea21601744035e40
parentb2180a27bcf74e622df4d7fb173306d80b973a6c (diff)
Add latest changes from gitlab-org/gitlab@master
-rw-r--r--.gitlab-ci.yml1
-rw-r--r--.gitlab/ci/global.gitlab-ci.yml2
-rw-r--r--.gitlab/ci/rails.gitlab-ci.yml14
-rw-r--r--.gitlab/ci/untamper-my-lockfile.yml26
-rw-r--r--.rubocop.yml3
-rw-r--r--.rubocop_manual_todo.yml1
-rw-r--r--GITALY_SERVER_VERSION2
-rw-r--r--app/assets/javascripts/boards/boards_util.js142
-rw-r--r--app/assets/javascripts/boards/components/board_content_sidebar.vue9
-rw-r--r--app/assets/javascripts/boards/constants.js26
-rw-r--r--app/assets/javascripts/boards/stores/actions.js23
-rw-r--r--app/graphql/types/merge_request_type.rb6
-rw-r--r--app/graphql/types/merge_requests/merge_status_enum.rb26
-rw-r--r--app/models/integrations/pushover.rb107
-rw-r--r--app/models/project.rb2
-rw-r--r--app/models/project_services/pushover_service.rb105
-rw-r--r--app/services/users/activity_service.rb4
-rw-r--r--app/views/notify/unknown_sign_in_email.html.haml2
-rw-r--r--config/metrics/counts_28d/20210216181050_packages.yml10
-rw-r--r--config/metrics/counts_28d/20210216181057_projects_with_packages.yml10
-rw-r--r--config/metrics/counts_28d/20210216184806_i_package_composer_deploy_token_monthly.yml14
-rw-r--r--config/metrics/counts_28d/20210216184810_i_package_conan_deploy_token_monthly.yml14
-rw-r--r--config/metrics/counts_28d/20210216184814_i_package_container_deploy_token_monthly.yml16
-rw-r--r--config/metrics/counts_28d/20210216184818_i_package_debian_deploy_token_monthly.yml16
-rw-r--r--config/metrics/counts_28d/20210216184822_i_package_generic_deploy_token_monthly.yml17
-rw-r--r--config/metrics/counts_28d/20210216184826_i_package_golang_deploy_token_monthly.yml16
-rw-r--r--config/metrics/counts_28d/20210216184830_i_package_maven_deploy_token_monthly.yml14
-rw-r--r--config/metrics/counts_28d/20210216184834_i_package_npm_deploy_token_monthly.yml14
-rw-r--r--config/metrics/counts_28d/20210216184838_i_package_nuget_deploy_token_monthly.yml14
-rw-r--r--config/metrics/counts_28d/20210216184842_i_package_pypi_deploy_token_monthly.yml15
-rw-r--r--config/metrics/counts_28d/20210216184846_i_package_tag_deploy_token_monthly.yml16
-rw-r--r--config/metrics/counts_28d/20210216184850_deploy_token_packages_total_unique_counts_monthly.yml14
-rw-r--r--config/metrics/counts_28d/20210216184854_i_package_composer_user_monthly.yml14
-rw-r--r--config/metrics/counts_28d/20210216184858_i_package_conan_user_monthly.yml14
-rw-r--r--config/metrics/counts_28d/20210216184902_i_package_container_user_monthly.yml16
-rw-r--r--config/metrics/counts_28d/20210216184906_i_package_debian_user_monthly.yml16
-rw-r--r--config/metrics/counts_28d/20210216184910_i_package_generic_user_monthly.yml17
-rw-r--r--config/metrics/counts_28d/20210216184913_i_package_golang_user_monthly.yml16
-rw-r--r--config/metrics/counts_28d/20210216184917_i_package_maven_user_monthly.yml14
-rw-r--r--config/metrics/counts_28d/20210216184921_i_package_npm_user_monthly.yml14
-rw-r--r--config/metrics/counts_28d/20210216184925_i_package_nuget_user_monthly.yml14
-rw-r--r--config/metrics/counts_28d/20210216184929_i_package_pypi_user_monthly.yml14
-rw-r--r--config/metrics/counts_28d/20210216184933_i_package_tag_user_monthly.yml16
-rw-r--r--config/metrics/counts_28d/20210216184937_user_packages_total_unique_counts_monthly.yml14
-rw-r--r--config/metrics/counts_28d/20210303154626_i_package_rubygems_deploy_token_monthly.yml3
-rw-r--r--config/metrics/counts_28d/20210303154654_i_package_rubygems_user_monthly.yml2
-rw-r--r--config/metrics/counts_7d/20210216184805_i_package_composer_deploy_token_weekly.yml18
-rw-r--r--config/metrics/counts_7d/20210216184808_i_package_conan_deploy_token_weekly.yml18
-rw-r--r--config/metrics/counts_7d/20210216184812_i_package_container_deploy_token_weekly.yml18
-rw-r--r--config/metrics/counts_7d/20210216184816_i_package_debian_deploy_token_weekly.yml18
-rw-r--r--config/metrics/counts_7d/20210216184820_i_package_generic_deploy_token_weekly.yml18
-rw-r--r--config/metrics/counts_7d/20210216184824_i_package_golang_deploy_token_weekly.yml18
-rw-r--r--config/metrics/counts_7d/20210216184828_i_package_maven_deploy_token_weekly.yml18
-rw-r--r--config/metrics/counts_7d/20210216184832_i_package_npm_deploy_token_weekly.yml18
-rw-r--r--config/metrics/counts_7d/20210216184836_i_package_nuget_deploy_token_weekly.yml18
-rw-r--r--config/metrics/counts_7d/20210216184840_i_package_pypi_deploy_token_weekly.yml18
-rw-r--r--config/metrics/counts_7d/20210216184844_i_package_tag_deploy_token_weekly.yml18
-rw-r--r--config/metrics/counts_7d/20210216184848_deploy_token_packages_total_unique_counts_weekly.yml18
-rw-r--r--config/metrics/counts_7d/20210216184852_i_package_composer_user_weekly.yml18
-rw-r--r--config/metrics/counts_7d/20210216184856_i_package_conan_user_weekly.yml18
-rw-r--r--config/metrics/counts_7d/20210216184900_i_package_container_user_weekly.yml18
-rw-r--r--config/metrics/counts_7d/20210216184904_i_package_debian_user_weekly.yml18
-rw-r--r--config/metrics/counts_7d/20210216184908_i_package_generic_user_weekly.yml19
-rw-r--r--config/metrics/counts_7d/20210216184911_i_package_golang_user_weekly.yml18
-rw-r--r--config/metrics/counts_7d/20210216184916_i_package_maven_user_weekly.yml18
-rw-r--r--config/metrics/counts_7d/20210216184919_i_package_npm_user_weekly.yml18
-rw-r--r--config/metrics/counts_7d/20210216184923_i_package_nuget_user_weekly.yml18
-rw-r--r--config/metrics/counts_7d/20210216184927_i_package_pypi_user_weekly.yml18
-rw-r--r--config/metrics/counts_7d/20210216184931_i_package_tag_user_weekly.yml18
-rw-r--r--config/metrics/counts_7d/20210216184935_user_packages_total_unique_counts_weekly.yml18
-rw-r--r--config/metrics/counts_7d/20210303154624_i_package_rubygems_deploy_token_weekly.yml2
-rw-r--r--config/metrics/counts_7d/20210303154652_i_package_rubygems_user_weekly.yml3
-rw-r--r--config/metrics/counts_all/20210216181009_lfs_objects.yml4
-rw-r--r--config/metrics/counts_all/20210216181011_projects_with_packages.yml11
-rw-r--r--config/metrics/counts_all/20210216181012_packages.yml10
-rw-r--r--config/metrics/counts_all/20210216181014_projects_with_expiration_policy_disabled.yml8
-rw-r--r--config/metrics/counts_all/20210216181016_projects_with_expiration_policy_enabled.yml8
-rw-r--r--config/metrics/counts_all/20210216181018_projects_with_expiration_policy_enabled_with_keep_n_set_to_1.yml18
-rw-r--r--config/metrics/counts_all/20210216181020_projects_with_expiration_policy_enabled_with_keep_n_set_to_5.yml18
-rw-r--r--config/metrics/counts_all/20210216181022_projects_with_expiration_policy_enabled_with_keep_n_set_to_10.yml18
-rw-r--r--config/metrics/counts_all/20210216181024_projects_with_expiration_policy_enabled_with_keep_n_set_to_25.yml18
-rw-r--r--config/metrics/counts_all/20210216181025_projects_with_expiration_policy_enabled_with_keep_n_set_to_50.yml18
-rw-r--r--config/metrics/counts_all/20210216181027_projects_with_expiration_policy_enabled_with_keep_n_set_to_100.yml18
-rw-r--r--config/metrics/counts_all/20210216181029_projects_with_expiration_policy_enabled_with_cadence_set_to_1d.yml8
-rw-r--r--config/metrics/counts_all/20210216181031_projects_with_expiration_policy_enabled_with_cadence_set_to_7d.yml8
-rw-r--r--config/metrics/counts_all/20210216181033_projects_with_expiration_policy_enabled_with_cadence_set_to_14d.yml8
-rw-r--r--config/metrics/counts_all/20210216181035_projects_with_expiration_policy_enabled_with_cadence_set_to_1month.yml8
-rw-r--r--config/metrics/counts_all/20210216181037_projects_with_expiration_policy_enabled_with_cadence_set_to_3month.yml8
-rw-r--r--config/metrics/counts_all/20210216181038_projects_with_expiration_policy_enabled_with_older_than_set_to_7d.yml8
-rw-r--r--config/metrics/counts_all/20210216181040_projects_with_expiration_policy_enabled_with_older_than_set_to_14d.yml8
-rw-r--r--config/metrics/counts_all/20210216181042_projects_with_expiration_policy_enabled_with_older_than_set_to_30d.yml8
-rw-r--r--config/metrics/counts_all/20210216181044_projects_with_expiration_policy_enabled_with_older_than_set_to_90d.yml8
-rw-r--r--config/metrics/counts_all/20210216181046_projects_with_expiration_policy_enabled_with_keep_n_unset.yml18
-rw-r--r--config/metrics/counts_all/20210216181048_projects_with_expiration_policy_enabled_with_older_than_unset.yml8
-rw-r--r--config/metrics/counts_all/20210216181051_vendor.yml11
-rw-r--r--config/metrics/counts_all/20210216181055_projects_with_packages.yml10
-rw-r--r--config/metrics/counts_all/20210216182855_package_events_i_package_composer_delete_package.yml16
-rw-r--r--config/metrics/counts_all/20210216182857_package_events_i_package_composer_pull_package.yml16
-rw-r--r--config/metrics/counts_all/20210216182859_package_events_i_package_composer_push_package.yml16
-rw-r--r--config/metrics/counts_all/20210216182901_package_events_i_package_conan_delete_package.yml16
-rw-r--r--config/metrics/counts_all/20210216182903_package_events_i_package_conan_pull_package.yml16
-rw-r--r--config/metrics/counts_all/20210216182905_package_events_i_package_conan_push_package.yml16
-rw-r--r--config/metrics/counts_all/20210216182907_package_events_i_package_container_delete_package.yml18
-rw-r--r--config/metrics/counts_all/20210216182909_package_events_i_package_container_pull_package.yml18
-rw-r--r--config/metrics/counts_all/20210216182911_package_events_i_package_container_push_package.yml18
-rw-r--r--config/metrics/counts_all/20210216182913_package_events_i_package_debian_delete_package.yml16
-rw-r--r--config/metrics/counts_all/20210216182915_package_events_i_package_debian_pull_package.yml16
-rw-r--r--config/metrics/counts_all/20210216182917_package_events_i_package_debian_push_package.yml18
-rw-r--r--config/metrics/counts_all/20210216182919_package_events_i_package_delete_package.yml16
-rw-r--r--config/metrics/counts_all/20210216182921_package_events_i_package_delete_package_by_deploy_token.yml16
-rw-r--r--config/metrics/counts_all/20210216182923_package_events_i_package_delete_package_by_guest.yml16
-rw-r--r--config/metrics/counts_all/20210216182925_package_events_i_package_delete_package_by_user.yml16
-rw-r--r--config/metrics/counts_all/20210216182927_package_events_i_package_generic_delete_package.yml16
-rw-r--r--config/metrics/counts_all/20210216182929_package_events_i_package_generic_pull_package.yml16
-rw-r--r--config/metrics/counts_all/20210216182931_package_events_i_package_generic_push_package.yml16
-rw-r--r--config/metrics/counts_all/20210216182933_package_events_i_package_golang_delete_package.yml16
-rw-r--r--config/metrics/counts_all/20210216182934_package_events_i_package_golang_pull_package.yml16
-rw-r--r--config/metrics/counts_all/20210216182936_package_events_i_package_golang_push_package.yml16
-rw-r--r--config/metrics/counts_all/20210216182938_package_events_i_package_maven_delete_package.yml16
-rw-r--r--config/metrics/counts_all/20210216182940_package_events_i_package_maven_pull_package.yml16
-rw-r--r--config/metrics/counts_all/20210216182942_package_events_i_package_maven_push_package.yml16
-rw-r--r--config/metrics/counts_all/20210216182944_package_events_i_package_npm_delete_package.yml16
-rw-r--r--config/metrics/counts_all/20210216182946_package_events_i_package_npm_pull_package.yml16
-rw-r--r--config/metrics/counts_all/20210216182948_package_events_i_package_npm_push_package.yml16
-rw-r--r--config/metrics/counts_all/20210216182950_package_events_i_package_nuget_delete_package.yml16
-rw-r--r--config/metrics/counts_all/20210216182952_package_events_i_package_nuget_pull_package.yml16
-rw-r--r--config/metrics/counts_all/20210216182954_package_events_i_package_nuget_push_package.yml16
-rw-r--r--config/metrics/counts_all/20210216182956_package_events_i_package_pull_package.yml16
-rw-r--r--config/metrics/counts_all/20210216182958_package_events_i_package_pull_package_by_deploy_token.yml16
-rw-r--r--config/metrics/counts_all/20210216183000_package_events_i_package_pull_package_by_guest.yml16
-rw-r--r--config/metrics/counts_all/20210216183002_package_events_i_package_pull_package_by_user.yml16
-rw-r--r--config/metrics/counts_all/20210216183004_package_events_i_package_push_package.yml16
-rw-r--r--config/metrics/counts_all/20210216183005_package_events_i_package_push_package_by_deploy_token.yml16
-rw-r--r--config/metrics/counts_all/20210216183007_package_events_i_package_push_package_by_guest.yml16
-rw-r--r--config/metrics/counts_all/20210216183009_package_events_i_package_push_package_by_user.yml16
-rw-r--r--config/metrics/counts_all/20210216183011_package_events_i_package_pypi_delete_package.yml16
-rw-r--r--config/metrics/counts_all/20210216183013_package_events_i_package_pypi_pull_package.yml16
-rw-r--r--config/metrics/counts_all/20210216183015_package_events_i_package_pypi_push_package.yml16
-rw-r--r--config/metrics/counts_all/20210216183017_package_events_i_package_tag_delete_package.yml18
-rw-r--r--config/metrics/counts_all/20210216183019_package_events_i_package_tag_pull_package.yml18
-rw-r--r--config/metrics/counts_all/20210216183021_package_events_i_package_tag_push_package.yml18
-rw-r--r--config/metrics/license/20210216181053_version.yml8
-rw-r--r--config/metrics/settings/20210204124858_container_registry_enabled.yml14
-rw-r--r--config/metrics/settings/20210204124900_dependency_proxy_enabled.yml14
-rw-r--r--doc/api/graphql/reference/index.md15
-rw-r--r--doc/api/merge_requests.md10
-rw-r--r--doc/api/repositories.md5
-rw-r--r--doc/development/snowplow/index.md4
-rw-r--r--doc/development/usage_ping/dictionary.md796
-rw-r--r--doc/user/compliance/license_compliance/index.md54
-rw-r--r--doc/user/infrastructure/index.md6
-rw-r--r--doc/user/packages/index.md11
-rw-r--r--doc/user/packages/infrastructure_registry/index.md93
-rw-r--r--doc/user/packages/terraform_module_registry/index.md118
-rw-r--r--lib/api/helpers/services_helpers.rb4
-rw-r--r--lib/csv_builder.rb2
-rw-r--r--lib/gitlab/ci/templates/Security/License-Management.gitlab-ci.yml13
-rw-r--r--lib/gitlab/integrations/sti_type.rb2
-rw-r--r--lib/gitlab/sidekiq_middleware/duplicate_jobs/duplicate_job.rb8
-rw-r--r--locale/gitlab.pot9
-rw-r--r--package.json2
-rw-r--r--qa/qa/specs/features/browser_ui/3_create/design_management/modify_design_content_spec.rb2
-rwxr-xr-xscripts/debug-rubocop36
-rwxr-xr-xscripts/static-analysis28
-rw-r--r--spec/frontend/boards/boards_util_spec.js112
-rw-r--r--spec/frontend/boards/components/board_filtered_search_spec.js4
-rw-r--r--spec/frontend/boards/stores/actions_spec.js13
-rw-r--r--spec/frontend/grafana_integration/components/__snapshots__/grafana_integration_spec.js.snap3
-rw-r--r--spec/frontend/incidents_settings/components/__snapshots__/alerts_form_spec.js.snap4
-rw-r--r--spec/frontend/incidents_settings/components/__snapshots__/pagerduty_form_spec.js.snap2
-rw-r--r--spec/frontend/self_monitor/components/__snapshots__/self_monitor_form_spec.js.snap4
-rw-r--r--spec/frontend/snippets/components/__snapshots__/snippet_visibility_edit_spec.js.snap1
-rw-r--r--spec/frontend/tracking_spec.js20
-rw-r--r--spec/frontend/vue_shared/components/form/__snapshots__/title_spec.js.snap1
-rw-r--r--spec/graphql/types/merge_request_type_spec.rb29
-rw-r--r--spec/lib/csv_builder_spec.rb12
-rw-r--r--spec/lib/gitlab/sidekiq_middleware/duplicate_jobs/duplicate_job_spec.rb41
-rw-r--r--spec/mailers/emails/profile_spec.rb2
-rw-r--r--spec/models/integration_spec.rb4
-rw-r--r--spec/models/integrations/pushover_spec.rb (renamed from spec/models/project_services/pushover_service_spec.rb)2
-rw-r--r--spec/services/admin/propagate_service_template_spec.rb2
-rw-r--r--spec/services/users/activity_service_spec.rb47
-rw-r--r--spec/tooling/danger/changelog_spec.rb6
-rw-r--r--spec/workers/propagate_integration_worker_spec.rb2
-rw-r--r--spec/workers/propagate_service_template_worker_spec.rb2
-rw-r--r--tooling/danger/changelog.rb7
-rw-r--r--yarn.lock8
187 files changed, 2595 insertions, 1312 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 27a618a9925..574a7d29853 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -107,3 +107,4 @@ variables:
include:
- local: .gitlab/ci/*.gitlab-ci.yml
+ - remote: 'https://gitlab.com/gitlab-org/frontend/untamper-my-lockfile/-/raw/main/.gitlab-ci-template.yml'
diff --git a/.gitlab/ci/global.gitlab-ci.yml b/.gitlab/ci/global.gitlab-ci.yml
index 489b02fe2f6..5bff0d67d03 100644
--- a/.gitlab/ci/global.gitlab-ci.yml
+++ b/.gitlab/ci/global.gitlab-ci.yml
@@ -81,7 +81,7 @@
<<: *rubocop-cache
# We want to rebuild the cache from scratch to ensure stale dependencies are cleaned up but RuboCop has a mechanism
# for keeping only the N latest cache files, so we take advantage of it with `pull-push`.
- policy: pull-push
+ policy: push
.qa-ruby-gems-cache: &qa-ruby-gems-cache
key: "qa-ruby-gems-v1"
diff --git a/.gitlab/ci/rails.gitlab-ci.yml b/.gitlab/ci/rails.gitlab-ci.yml
index 5cd64baf4d3..06ea9410c0a 100644
--- a/.gitlab/ci/rails.gitlab-ci.yml
+++ b/.gitlab/ci/rails.gitlab-ci.yml
@@ -218,6 +218,13 @@ update-static-analysis-cache:
- .shared:rules:update-cache
stage: prepare
script:
+ - git log -n 1 --pretty=format:%H -- .rubocop.yml
+ - git log -n 1 --pretty=format:%H -- .rubocop_manual_todo.yml
+ - git log -n 1 --pretty=format:%H -- .rubocop_todo.yml
+ - git log -n 1 --pretty=format:%H -- rubocop/rubocop-migrations.yml
+ - git log -n 1 --pretty=format:%H -- rubocop/rubocop-usage-data.yml
+ - git log -n 1 --pretty=format:%H -- rubocop/rubocop-code_reuse.yml
+ - bundle exec scripts/debug-rubocop spec/factories/namespace/aggregation_schedules.rb
- run_timed_command "bundle exec rubocop --parallel" # For the moment we only cache `tmp/rubocop_cache` so we don't need to run all the tasks.
static-analysis:
@@ -228,6 +235,13 @@ static-analysis:
parallel: 4
script:
- run_timed_command "retry yarn install --frozen-lockfile"
+ - git log -n 1 --pretty=format:%H -- .rubocop.yml
+ - git log -n 1 --pretty=format:%H -- .rubocop_manual_todo.yml
+ - git log -n 1 --pretty=format:%H -- .rubocop_todo.yml
+ - git log -n 1 --pretty=format:%H -- rubocop/rubocop-migrations.yml
+ - git log -n 1 --pretty=format:%H -- rubocop/rubocop-usage-data.yml
+ - git log -n 1 --pretty=format:%H -- rubocop/rubocop-code_reuse.yml
+ - bundle exec scripts/debug-rubocop spec/factories/namespace/aggregation_schedules.rb
- scripts/static-analysis
static-analysis as-if-foss:
diff --git a/.gitlab/ci/untamper-my-lockfile.yml b/.gitlab/ci/untamper-my-lockfile.yml
deleted file mode 100644
index 54ba160f1bd..00000000000
--- a/.gitlab/ci/untamper-my-lockfile.yml
+++ /dev/null
@@ -1,26 +0,0 @@
-untamper-my-lockfile:
- image: registry.gitlab.com/gitlab-org/frontend/untamper-my-lockfile:main
- stage: test
- needs: []
- before_script: []
- after_script: []
- cache: {}
- retry: 1
- script:
- - untamper-my-lockfile --lockfile yarn.lock
- rules:
- # Create a pipeline if the branch is named 'add-untamper-my-lockfile' in
- # order to have an integration check added in the MR that introduces it
- - if: $CI_COMMIT_REF_NAME == "add-untamper-my-lockfile"
- # Create a pipeline if there are changes in yarn.lock _and_ we are in a
- # merge request _or_ branch pipeline.
- #
- # This ensures that the pipeline isn't run in scheduled jobs for example
- #
- # Also our best effort to support both branch and MR pipelines. In certain
- # projects this might trigger _two_ pipelines. These projects can be fixed
- # by adding proper workflow:rules
- # https://docs.gitlab.com/ee/ci/yaml/#workflowrules
- - if: $CI_PIPELINE_SOURCE == "merge_request_event" || $CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH
- changes:
- - yarn.lock
diff --git a/.rubocop.yml b/.rubocop.yml
index d086bdf7361..e2b85ae8fc9 100644
--- a/.rubocop.yml
+++ b/.rubocop.yml
@@ -36,8 +36,9 @@ AllCops:
- 'plugins/**/*'
- 'file_hooks/**/*'
- 'workhorse/**/*'
+ - 'spec/support/*.git/**/*' # e.g. spec/support/gitlab-git-test.git
CacheRootDirectory: tmp
- MaxFilesInCache: 18000
+ MaxFilesInCache: 25000
Cop/AvoidKeywordArgumentsInSidekiqWorkers:
Enabled: true
diff --git a/.rubocop_manual_todo.yml b/.rubocop_manual_todo.yml
index 679441f6536..b32af188ff1 100644
--- a/.rubocop_manual_todo.yml
+++ b/.rubocop_manual_todo.yml
@@ -1651,7 +1651,6 @@ Gitlab/NamespacedClass:
- 'app/models/project_services/mock_monitoring_service.rb'
- 'app/models/project_services/monitoring_service.rb'
- 'app/models/project_services/prometheus_service.rb'
- - 'app/models/project_services/pushover_service.rb'
- 'app/models/project_services/slack_slash_commands_service.rb'
- 'app/models/project_services/slash_commands_service.rb'
- 'app/models/project_setting.rb'
diff --git a/GITALY_SERVER_VERSION b/GITALY_SERVER_VERSION
index f483d5261c5..9f5783530fa 100644
--- a/GITALY_SERVER_VERSION
+++ b/GITALY_SERVER_VERSION
@@ -1 +1 @@
-37934de32d680c4166ec35dcd47b59fa0cc8c397
+08fa50ebd5fd086575958da1409b23b6948ad1d4
diff --git a/app/assets/javascripts/boards/boards_util.js b/app/assets/javascripts/boards/boards_util.js
index f53d41dd0f4..3dc25560a85 100644
--- a/app/assets/javascripts/boards/boards_util.js
+++ b/app/assets/javascripts/boards/boards_util.js
@@ -1,6 +1,6 @@
import { sortBy, cloneDeep } from 'lodash';
import { getIdFromGraphQLId } from '~/graphql_shared/utils';
-import { ListType, NOT_FILTER, AssigneeIdParamValues } from './constants';
+import { ListType } from './constants';
export function getMilestone() {
return null;
@@ -175,45 +175,106 @@ export function isListDraggable(list) {
return list.listType !== ListType.backlog && list.listType !== ListType.closed;
}
-export function transformNotFilters(filters) {
- return Object.keys(filters)
- .filter((key) => key.startsWith(NOT_FILTER))
- .reduce((obj, key) => {
- return {
- ...obj,
- [key.substring(4, key.length - 1)]: filters[key],
- };
- }, {});
-}
-
-export function getSupportedParams(filters, supportedFilters) {
- return supportedFilters.reduce((acc, f) => {
- /**
- * TODO the API endpoint for the classic boards
- * accepts assignee wildcard value as 'assigneeId' param -
- * while the GraphQL query accepts the value in 'assigneWildcardId' field.
- * Once we deprecate the classics boards,
- * we should change the filtered search bar to use 'asssigneeWildcardId' as a token name.
- */
- if (f === 'assigneeId' && filters[f]) {
- return AssigneeIdParamValues.includes(filters[f])
- ? {
- ...acc,
- assigneeWildcardId: filters[f].toUpperCase(),
- }
- : acc;
- }
-
- if (filters[f]) {
- return {
- ...acc,
- [f]: filters[f],
- };
- }
-
- return acc;
- }, {});
-}
+export const FiltersInfo = {
+ assigneeUsername: {
+ negatedSupport: true,
+ },
+ assigneeId: {
+ // assigneeId should be renamed to assigneeWildcardId.
+ // Classic boards used 'assigneeId'
+ remap: () => 'assigneeWildcardId',
+ },
+ assigneeWildcardId: {
+ negatedSupport: false,
+ transform: (val) => val.toUpperCase(),
+ },
+ authorUsername: {
+ negatedSupport: true,
+ },
+ labelName: {
+ negatedSupport: true,
+ },
+ milestoneTitle: {
+ negatedSupport: true,
+ },
+ myReactionEmoji: {
+ negatedSupport: true,
+ },
+ releaseTag: {
+ negatedSupport: true,
+ },
+ search: {
+ negatedSupport: false,
+ },
+};
+
+/**
+ * @param {Object} filters - ex. { search: "foobar", "not[authorUsername]": "root", }
+ * @returns {Object} - ex. [ ["search", "foobar", false], ["authorUsername", "root", true], ]
+ */
+const parseFilters = (filters) => {
+ /* eslint-disable-next-line @gitlab/require-i18n-strings */
+ const isNegated = (x) => x.startsWith('not[') && x.endsWith(']');
+
+ return Object.entries(filters).map(([k, v]) => {
+ const isNot = isNegated(k);
+ const filterKey = isNot ? k.slice(4, -1) : k;
+
+ return [filterKey, v, isNot];
+ });
+};
+
+/**
+ * Returns an object of filter key/value pairs used as variables in GraphQL requests.
+ * (warning: filter values are not validated)
+ *
+ * @param {Object} objParam.filters - filters extracted from url params. ex. { search: "foobar", "not[authorUsername]": "root", }
+ * @param {string} objParam.issuableType - issuable type e.g., issue.
+ * @param {Object} objParam.filterInfo - data on filters such as how to transform filter value, if filter can be negated, etc.
+ * @param {Object} objParam.filterFields - data on what filters are available for given issuableType (based on GraphQL schema)
+ */
+export const filterVariables = ({ filters, issuableType, filterInfo, filterFields }) =>
+ parseFilters(filters)
+ .map(([k, v, negated]) => {
+ // for legacy reasons, some filters need to be renamed to correct GraphQL fields.
+ const remapAvailable = filterInfo[k]?.remap;
+ const remappedKey = remapAvailable ? filterInfo[k].remap(k, v) : k;
+
+ return [remappedKey, v, negated];
+ })
+ .filter(([k, , negated]) => {
+ // remove unsupported filters (+ check if the filters support negation)
+ const supported = filterFields[issuableType].includes(k);
+ if (supported) {
+ return negated ? filterInfo[k].negatedSupport : true;
+ }
+
+ return false;
+ })
+ .map(([k, v, negated]) => {
+ // if the filter value needs a special transformation, apply it (e.g., capitalization)
+ const transform = filterInfo[k]?.transform;
+ const newVal = transform ? transform(v) : v;
+
+ return [k, newVal, negated];
+ })
+ .reduce(
+ (acc, [k, v, negated]) => {
+ return negated
+ ? {
+ ...acc,
+ not: {
+ ...acc.not,
+ [k]: v,
+ },
+ }
+ : {
+ ...acc,
+ [k]: v,
+ };
+ },
+ { not: {} },
+ );
// EE-specific feature. Find the implementation in the `ee/`-folder
export function transformBoardConfig() {
@@ -228,5 +289,4 @@ export default {
fullLabelId,
fullIterationId,
isListDraggable,
- transformNotFilters,
};
diff --git a/app/assets/javascripts/boards/components/board_content_sidebar.vue b/app/assets/javascripts/boards/components/board_content_sidebar.vue
index 74a686eea78..ba02f21bd6e 100644
--- a/app/assets/javascripts/boards/components/board_content_sidebar.vue
+++ b/app/assets/javascripts/boards/components/board_content_sidebar.vue
@@ -26,8 +26,6 @@ export default {
BoardSidebarMilestoneSelect,
BoardSidebarWeightInput: () =>
import('ee_component/boards/components/sidebar/board_sidebar_weight_input.vue'),
- SidebarIterationWidget: () =>
- import('ee_component/sidebar/components/sidebar_iteration_widget.vue'),
SidebarDropdownWidget: () =>
import('ee_component/sidebar/components/sidebar_dropdown_widget.vue'),
},
@@ -100,13 +98,16 @@ export default {
/>
<div>
<board-sidebar-milestone-select />
- <sidebar-iteration-widget
+ <sidebar-dropdown-widget
v-if="iterationFeatureAvailable"
:iid="activeBoardItem.iid"
+ issuable-attribute="iteration"
:workspace-path="projectPathForActiveIssue"
- :iterations-workspace-path="groupPathForActiveIssue"
+ :attr-workspace-path="groupPathForActiveIssue"
:issuable-type="issuableType"
class="gl-mt-5"
+ data-testid="iteration-edit"
+ data-qa-selector="iteration_container"
/>
</div>
<board-sidebar-time-tracker class="swimlanes-sidebar-time-tracker" />
diff --git a/app/assets/javascripts/boards/constants.js b/app/assets/javascripts/boards/constants.js
index d88774d11c1..0ad16002482 100644
--- a/app/assets/javascripts/boards/constants.js
+++ b/app/assets/javascripts/boards/constants.js
@@ -9,17 +9,6 @@ import updateBoardListMutation from './graphql/board_list_update.mutation.graphq
import issueSetSubscriptionMutation from './graphql/issue_set_subscription.mutation.graphql';
import issueSetTitleMutation from './graphql/issue_set_title.mutation.graphql';
-export const SupportedFilters = [
- 'assigneeUsername',
- 'authorUsername',
- 'labelName',
- 'milestoneTitle',
- 'releaseTag',
- 'search',
- 'myReactionEmoji',
- 'assigneeId',
-];
-
/* eslint-disable-next-line @gitlab/require-i18n-strings */
export const AssigneeIdParamValues = ['Any', 'None'];
@@ -60,8 +49,6 @@ export const inactiveId = 0;
export const ISSUABLE = 'issuable';
export const LIST = 'list';
-export const NOT_FILTER = 'not[';
-
export const flashAnimationDuration = 2000;
export const listsQuery = {
@@ -106,6 +93,19 @@ export const subscriptionQueries = {
},
};
+export const FilterFields = {
+ [issuableTypes.issue]: [
+ 'assigneeUsername',
+ 'assigneeWildcardId',
+ 'authorUsername',
+ 'labelName',
+ 'milestoneTitle',
+ 'myReactionEmoji',
+ 'releaseTag',
+ 'search',
+ ],
+};
+
export default {
BoardType,
ListType,
diff --git a/app/assets/javascripts/boards/stores/actions.js b/app/assets/javascripts/boards/stores/actions.js
index bc44b84da51..b8896185408 100644
--- a/app/assets/javascripts/boards/stores/actions.js
+++ b/app/assets/javascripts/boards/stores/actions.js
@@ -7,11 +7,11 @@ import {
ISSUABLE,
titleQueries,
subscriptionQueries,
- SupportedFilters,
deleteListQueries,
listsQuery,
updateListQueries,
issuableTypes,
+ FilterFields,
} from 'ee_else_ce/boards/constants';
import createBoardListMutation from 'ee_else_ce/boards/graphql/board_list_create.mutation.graphql';
import issueMoveListMutation from 'ee_else_ce/boards/graphql/issue_move_list.mutation.graphql';
@@ -26,10 +26,10 @@ import {
formatIssue,
formatIssueInput,
updateListPosition,
- transformNotFilters,
moveItemListHelper,
getMoveData,
- getSupportedParams,
+ FiltersInfo,
+ filterVariables,
} from '../boards_util';
import boardLabelsQuery from '../graphql/board_labels.query.graphql';
import groupProjectsQuery from '../graphql/group_projects.query.graphql';
@@ -60,13 +60,16 @@ export default {
dispatch('setActiveId', { id: inactiveId, sidebarType: '' });
},
- setFilters: ({ commit }, filters) => {
- const filterParams = {
- ...getSupportedParams(filters, SupportedFilters),
- not: transformNotFilters(filters),
- };
-
- commit(types.SET_FILTERS, filterParams);
+ setFilters: ({ commit, state: { issuableType } }, filters) => {
+ commit(
+ types.SET_FILTERS,
+ filterVariables({
+ filters,
+ issuableType,
+ filterInfo: FiltersInfo,
+ filterFields: FilterFields,
+ }),
+ );
},
performSearch({ dispatch }) {
diff --git a/app/graphql/types/merge_request_type.rb b/app/graphql/types/merge_request_type.rb
index 4eeeaa4f5d0..73b2de97289 100644
--- a/app/graphql/types/merge_request_type.rb
+++ b/app/graphql/types/merge_request_type.rb
@@ -82,7 +82,11 @@ module Types
field :force_remove_source_branch, GraphQL::BOOLEAN_TYPE, method: :force_remove_source_branch?, null: true,
description: 'Indicates if the project settings will lead to source branch deletion after merge.'
field :merge_status, GraphQL::STRING_TYPE, method: :public_merge_status, null: true,
- description: 'Status of the merge request.'
+ description: 'Status of the merge request.',
+ deprecated: { reason: :renamed, replacement: 'MergeRequest.mergeStatusEnum', milestone: '14.0' }
+ field :merge_status_enum, ::Types::MergeRequests::MergeStatusEnum,
+ method: :public_merge_status, null: true,
+ description: 'Merge status of the merge request.'
field :in_progress_merge_commit_sha, GraphQL::STRING_TYPE, null: true,
description: 'Commit SHA of the merge request if merge is in progress.'
field :merge_error, GraphQL::STRING_TYPE, null: true,
diff --git a/app/graphql/types/merge_requests/merge_status_enum.rb b/app/graphql/types/merge_requests/merge_status_enum.rb
new file mode 100644
index 00000000000..bb3e0f1a0c0
--- /dev/null
+++ b/app/graphql/types/merge_requests/merge_status_enum.rb
@@ -0,0 +1,26 @@
+# frozen_string_literal: true
+
+module Types
+ module MergeRequests
+ class MergeStatusEnum < BaseEnum
+ graphql_name 'MergeStatus'
+ description 'Representation of whether a GitLab merge request can be merged.'
+
+ value 'UNCHECKED',
+ value: 'unchecked',
+ description: 'Merge status has not been checked.'
+ value 'CHECKING',
+ value: 'checking',
+ description: 'Currently checking for mergeability.'
+ value 'CAN_BE_MERGED',
+ value: 'can_be_merged',
+ description: 'There are no conflicts between the source and target branches.'
+ value 'CANNOT_BE_MERGED',
+ value: 'cannot_be_merged',
+ description: 'There are conflicts between the source and target branches.'
+ value 'CANNOT_BE_MERGED_RECHECK',
+ value: 'cannot_be_merged_recheck',
+ description: 'Currently unchecked. The previous state was `CANNOT_BE_MERGED`.'
+ end
+ end
+end
diff --git a/app/models/integrations/pushover.rb b/app/models/integrations/pushover.rb
new file mode 100644
index 00000000000..b0cadc7ef4e
--- /dev/null
+++ b/app/models/integrations/pushover.rb
@@ -0,0 +1,107 @@
+# frozen_string_literal: true
+
+module Integrations
+ class Pushover < Integration
+ BASE_URI = 'https://api.pushover.net/1'
+
+ prop_accessor :api_key, :user_key, :device, :priority, :sound
+ validates :api_key, :user_key, :priority, presence: true, if: :activated?
+
+ def title
+ 'Pushover'
+ end
+
+ def description
+ s_('PushoverService|Get real-time notifications on your device.')
+ end
+
+ def self.to_param
+ 'pushover'
+ end
+
+ 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:
+ [
+ [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:
+ [
+ ['Device default sound', nil],
+ ['Pushover (default)', 'pushover'],
+ %w(Bike bike),
+ %w(Bugle bugle),
+ ['Cash Register', 'cashregister'],
+ %w(Classical classical),
+ %w(Cosmic cosmic),
+ %w(Falling falling),
+ %w(Gamelan gamelan),
+ %w(Incoming incoming),
+ %w(Intermission intermission),
+ %w(Magic magic),
+ %w(Mechanical mechanical),
+ ['Piano Bar', 'pianobar'],
+ %w(Siren siren),
+ ['Space Alarm', 'spacealarm'],
+ ['Tug Boat', 'tugboat'],
+ ['Alien Alarm (long)', 'alien'],
+ ['Climb (long)', 'climb'],
+ ['Persistent (long)', 'persistent'],
+ ['Pushover Echo (long)', 'echo'],
+ ['Up Down (long)', 'updown'],
+ ['None (silent)', 'none']
+ ] }
+ ]
+ end
+
+ def self.supported_events
+ %w(push)
+ end
+
+ def execute(data)
+ return unless supported_events.include?(data[:object_kind])
+
+ ref = Gitlab::Git.ref_name(data[:ref])
+ before = data[:before]
+ after = data[:after]
+
+ message =
+ if Gitlab::Git.blank_ref?(before)
+ s_("PushoverService|%{user_name} pushed new branch \"%{ref}\".") % { user_name: data[:user_name], ref: ref }
+ elsif Gitlab::Git.blank_ref?(after)
+ s_("PushoverService|%{user_name} deleted branch \"%{ref}\".") % { user_name: data[:user_name], ref: ref }
+ else
+ s_("PushoverService|%{user_name} push to branch \"%{ref}\".") % { user_name: data[:user_name], ref: ref }
+ end
+
+ if data[:total_commits_count] > 0
+ message = [message, s_("PushoverService|Total commits count: %{total_commits_count}") % { total_commits_count: data[:total_commits_count] }].join("\n")
+ end
+
+ pushover_data = {
+ token: api_key,
+ user: user_key,
+ device: device,
+ priority: priority,
+ title: "#{project.full_name}",
+ message: message,
+ url: data[:project][:web_url],
+ url_title: s_("PushoverService|See project %{project_full_name}") % { project_full_name: project.full_name }
+ }
+
+ # Sound parameter MUST NOT be sent to API if not selected
+ if sound
+ pushover_data[:sound] = sound
+ end
+
+ Gitlab::HTTP.post('/messages.json', base_uri: BASE_URI, body: pushover_data)
+ end
+ end
+end
diff --git a/app/models/project.rb b/app/models/project.rb
index 53054e5304f..9aedd34c993 100644
--- a/app/models/project.rb
+++ b/app/models/project.rb
@@ -180,6 +180,7 @@ class Project < ApplicationRecord
has_one :packagist_service, class_name: 'Integrations::Packagist'
has_one :pipelines_email_service, class_name: 'Integrations::PipelinesEmail'
has_one :pivotaltracker_service, class_name: 'Integrations::Pivotaltracker'
+ has_one :pushover_service, class_name: 'Integrations::Pushover'
has_one :redmine_service, class_name: 'Integrations::Redmine'
has_one :slack_service, class_name: 'Integrations::Slack'
has_one :teamcity_service, class_name: 'Integrations::Teamcity'
@@ -188,7 +189,6 @@ class Project < ApplicationRecord
has_one :youtrack_service, class_name: 'Integrations::Youtrack'
has_one :mattermost_slash_commands_service
has_one :slack_slash_commands_service
- has_one :pushover_service
has_one :prometheus_service, inverse_of: :project
has_one :mock_monitoring_service
diff --git a/app/models/project_services/pushover_service.rb b/app/models/project_services/pushover_service.rb
deleted file mode 100644
index 89765fbdf41..00000000000
--- a/app/models/project_services/pushover_service.rb
+++ /dev/null
@@ -1,105 +0,0 @@
-# frozen_string_literal: true
-
-class PushoverService < Integration
- BASE_URI = 'https://api.pushover.net/1'
-
- prop_accessor :api_key, :user_key, :device, :priority, :sound
- validates :api_key, :user_key, :priority, presence: true, if: :activated?
-
- def title
- 'Pushover'
- end
-
- def description
- s_('PushoverService|Get real-time notifications on your device.')
- end
-
- def self.to_param
- 'pushover'
- end
-
- 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:
- [
- [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:
- [
- ['Device default sound', nil],
- ['Pushover (default)', 'pushover'],
- %w(Bike bike),
- %w(Bugle bugle),
- ['Cash Register', 'cashregister'],
- %w(Classical classical),
- %w(Cosmic cosmic),
- %w(Falling falling),
- %w(Gamelan gamelan),
- %w(Incoming incoming),
- %w(Intermission intermission),
- %w(Magic magic),
- %w(Mechanical mechanical),
- ['Piano Bar', 'pianobar'],
- %w(Siren siren),
- ['Space Alarm', 'spacealarm'],
- ['Tug Boat', 'tugboat'],
- ['Alien Alarm (long)', 'alien'],
- ['Climb (long)', 'climb'],
- ['Persistent (long)', 'persistent'],
- ['Pushover Echo (long)', 'echo'],
- ['Up Down (long)', 'updown'],
- ['None (silent)', 'none']
- ] }
- ]
- end
-
- def self.supported_events
- %w(push)
- end
-
- def execute(data)
- return unless supported_events.include?(data[:object_kind])
-
- ref = Gitlab::Git.ref_name(data[:ref])
- before = data[:before]
- after = data[:after]
-
- message =
- if Gitlab::Git.blank_ref?(before)
- s_("PushoverService|%{user_name} pushed new branch \"%{ref}\".") % { user_name: data[:user_name], ref: ref }
- elsif Gitlab::Git.blank_ref?(after)
- s_("PushoverService|%{user_name} deleted branch \"%{ref}\".") % { user_name: data[:user_name], ref: ref }
- else
- s_("PushoverService|%{user_name} push to branch \"%{ref}\".") % { user_name: data[:user_name], ref: ref }
- end
-
- if data[:total_commits_count] > 0
- message = [message, s_("PushoverService|Total commits count: %{total_commits_count}") % { total_commits_count: data[:total_commits_count] }].join("\n")
- end
-
- pushover_data = {
- token: api_key,
- user: user_key,
- device: device,
- priority: priority,
- title: "#{project.full_name}",
- message: message,
- url: data[:project][:web_url],
- url_title: s_("PushoverService|See project %{project_full_name}") % { project_full_name: project.full_name }
- }
-
- # Sound parameter MUST NOT be sent to API if not selected
- if sound
- pushover_data[:sound] = sound
- end
-
- Gitlab::HTTP.post('/messages.json', base_uri: BASE_URI, body: pushover_data)
- end
-end
diff --git a/app/services/users/activity_service.rb b/app/services/users/activity_service.rb
index c89a286cc8b..20594bec28d 100644
--- a/app/services/users/activity_service.rb
+++ b/app/services/users/activity_service.rb
@@ -17,7 +17,7 @@ module Users
def execute
return unless @user
- record_activity
+ ::Gitlab::Database::LoadBalancing::Session.without_sticky_writes { record_activity }
end
private
@@ -37,5 +37,3 @@ module Users
end
end
end
-
-Users::ActivityService.prepend_mod
diff --git a/app/views/notify/unknown_sign_in_email.html.haml b/app/views/notify/unknown_sign_in_email.html.haml
index 464bcef1474..47c5656db27 100644
--- a/app/views/notify/unknown_sign_in_email.html.haml
+++ b/app/views/notify/unknown_sign_in_email.html.haml
@@ -32,7 +32,7 @@
%td{ style: "#{default_style}border-top:1px solid #ededed;" }
= _('Time')
%td{ style: "#{default_style}color:#333333;font-weight:400;width:75%;padding-left:5px;border-top:1px solid #ededed;" }
- = @time.strftime('%Y-%m-%d %k:%M:%S %Z')
+ = @time.strftime('%Y-%m-%d %H:%M:%S %Z')
%tr.spacer
%td{ style: spacer_style }
&nbsp;
diff --git a/config/metrics/counts_28d/20210216181050_packages.yml b/config/metrics/counts_28d/20210216181050_packages.yml
index 4c6edc118aa..f364a4778e0 100644
--- a/config/metrics/counts_28d/20210216181050_packages.yml
+++ b/config/metrics/counts_28d/20210216181050_packages.yml
@@ -1,16 +1,18 @@
---
key_path: counts_monthly.packages
-description: Monthly count of Packages
+description: A monthly count of packages published to the registry
product_section: ops
-product_stage:
+product_stage: package
product_group: group::package
-product_category:
+product_category: package registry
value_type: number
status: data_available
time_frame: 28d
data_source: database
distribution:
+- ee
- ce
tier:
- free
-skip_validation: true
+- premium
+- ultimate
diff --git a/config/metrics/counts_28d/20210216181057_projects_with_packages.yml b/config/metrics/counts_28d/20210216181057_projects_with_packages.yml
index 3fe9c7fde65..5460afbc134 100644
--- a/config/metrics/counts_28d/20210216181057_projects_with_packages.yml
+++ b/config/metrics/counts_28d/20210216181057_projects_with_packages.yml
@@ -1,16 +1,18 @@
---
key_path: usage_activity_by_stage_monthly.package.projects_with_packages
-description: Incident confidential status changed event
+description: The total number of projects in a given month with at least one package
product_section: ops
product_stage: package
product_group: group::package
-product_category:
+product_category: package registry
value_type: number
status: data_available
time_frame: 28d
-data_source:
+data_source: database
distribution:
+- ee
- ce
tier:
- free
-skip_validation: true
+- premium
+- ultimate
diff --git a/config/metrics/counts_28d/20210216184806_i_package_composer_deploy_token_monthly.yml b/config/metrics/counts_28d/20210216184806_i_package_composer_deploy_token_monthly.yml
index 5d25977e938..7f2f93f909b 100644
--- a/config/metrics/counts_28d/20210216184806_i_package_composer_deploy_token_monthly.yml
+++ b/config/metrics/counts_28d/20210216184806_i_package_composer_deploy_token_monthly.yml
@@ -1,16 +1,18 @@
---
key_path: redis_hll_counters.deploy_token_packages.i_package_composer_deploy_token_monthly
-description: ''
-product_section: ''
-product_stage: ''
-product_group: ''
-product_category: ''
+description: A monthly count of Composer packages published to the registry using a deploy token
+product_section: ops
+product_stage: package
+product_group: group::package
+product_category: package registry
value_type: number
status: data_available
time_frame: 28d
data_source: redis_hll
distribution:
+- ee
- ce
tier:
- free
-skip_validation: true
+- premium
+- ultimate
diff --git a/config/metrics/counts_28d/20210216184810_i_package_conan_deploy_token_monthly.yml b/config/metrics/counts_28d/20210216184810_i_package_conan_deploy_token_monthly.yml
index 5f86c64cda6..6a2bd47f725 100644
--- a/config/metrics/counts_28d/20210216184810_i_package_conan_deploy_token_monthly.yml
+++ b/config/metrics/counts_28d/20210216184810_i_package_conan_deploy_token_monthly.yml
@@ -1,16 +1,18 @@
---
key_path: redis_hll_counters.deploy_token_packages.i_package_conan_deploy_token_monthly
-description: ''
-product_section: ''
-product_stage: ''
-product_group: ''
-product_category: ''
+description: A monthly count of Conan packages published to the registry using a deploy token
+product_section: ops
+product_stage: package
+product_group: group::package
+product_category: package registry
value_type: number
status: data_available
time_frame: 28d
data_source: redis_hll
distribution:
+- ee
- ce
tier:
- free
-skip_validation: true
+- premium
+- ultimate
diff --git a/config/metrics/counts_28d/20210216184814_i_package_container_deploy_token_monthly.yml b/config/metrics/counts_28d/20210216184814_i_package_container_deploy_token_monthly.yml
index 6ba5297d60d..4bb6038634f 100644
--- a/config/metrics/counts_28d/20210216184814_i_package_container_deploy_token_monthly.yml
+++ b/config/metrics/counts_28d/20210216184814_i_package_container_deploy_token_monthly.yml
@@ -1,16 +1,18 @@
---
key_path: redis_hll_counters.deploy_token_packages.i_package_container_deploy_token_monthly
-description: ''
-product_section: ''
-product_stage: ''
-product_group: ''
-product_category: ''
+description: A monthly count of container images published to the registry using a deploy token
+product_section: ops
+product_stage: package
+product_group: group::package
+product_category: container registry
value_type: number
-status: data_available
+status: deprecated
time_frame: 28d
data_source: redis_hll
distribution:
+- ee
- ce
tier:
- free
-skip_validation: true
+- premium
+- ultimate
diff --git a/config/metrics/counts_28d/20210216184818_i_package_debian_deploy_token_monthly.yml b/config/metrics/counts_28d/20210216184818_i_package_debian_deploy_token_monthly.yml
index 9fe96b21e7e..1bf0aa9697d 100644
--- a/config/metrics/counts_28d/20210216184818_i_package_debian_deploy_token_monthly.yml
+++ b/config/metrics/counts_28d/20210216184818_i_package_debian_deploy_token_monthly.yml
@@ -1,16 +1,18 @@
---
key_path: redis_hll_counters.deploy_token_packages.i_package_debian_deploy_token_monthly
-description: ''
-product_section: ''
-product_stage: ''
-product_group: ''
-product_category: ''
+description: A monthly count of Debian packages published to the registry using a deploy token
+product_section: ops
+product_stage: package
+product_group: group::package
+product_category: package registry
value_type: number
-status: data_available
+status: deprecated
time_frame: 28d
data_source: redis_hll
distribution:
+- ee
- ce
tier:
- free
-skip_validation: true
+- premium
+- ultimate
diff --git a/config/metrics/counts_28d/20210216184822_i_package_generic_deploy_token_monthly.yml b/config/metrics/counts_28d/20210216184822_i_package_generic_deploy_token_monthly.yml
index 982d765b5fa..cc4754964dd 100644
--- a/config/metrics/counts_28d/20210216184822_i_package_generic_deploy_token_monthly.yml
+++ b/config/metrics/counts_28d/20210216184822_i_package_generic_deploy_token_monthly.yml
@@ -1,16 +1,19 @@
---
key_path: redis_hll_counters.deploy_token_packages.i_package_generic_deploy_token_monthly
-description: ''
-product_section: ''
-product_stage: ''
-product_group: ''
-product_category: ''
+description: A monthly count of generic packages published to the registry using a deploy token
+product_section: ops
+product_stage: package
+product_group: group::package
+product_category: package registry
value_type: number
-status: data_available
+status: broken
+repair_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/331455
time_frame: 28d
data_source: redis_hll
distribution:
+- ee
- ce
tier:
- free
-skip_validation: true
+- premium
+- ultimate
diff --git a/config/metrics/counts_28d/20210216184826_i_package_golang_deploy_token_monthly.yml b/config/metrics/counts_28d/20210216184826_i_package_golang_deploy_token_monthly.yml
index b5001143b05..3b4f45e0737 100644
--- a/config/metrics/counts_28d/20210216184826_i_package_golang_deploy_token_monthly.yml
+++ b/config/metrics/counts_28d/20210216184826_i_package_golang_deploy_token_monthly.yml
@@ -1,16 +1,18 @@
---
key_path: redis_hll_counters.deploy_token_packages.i_package_golang_deploy_token_monthly
-description: ''
-product_section: ''
-product_stage: ''
-product_group: ''
-product_category: ''
+description: A monthly count of Go modules published to the registry using a deploy token
+product_section: ops
+product_stage: package
+product_group: group::package
+product_category: package registry
value_type: number
-status: data_available
+status: deprecated
time_frame: 28d
data_source: redis_hll
distribution:
+- ee
- ce
tier:
- free
-skip_validation: true
+- premium
+- ultimate
diff --git a/config/metrics/counts_28d/20210216184830_i_package_maven_deploy_token_monthly.yml b/config/metrics/counts_28d/20210216184830_i_package_maven_deploy_token_monthly.yml
index 220fa24696b..eabb8cff15f 100644
--- a/config/metrics/counts_28d/20210216184830_i_package_maven_deploy_token_monthly.yml
+++ b/config/metrics/counts_28d/20210216184830_i_package_maven_deploy_token_monthly.yml
@@ -1,16 +1,18 @@
---
key_path: redis_hll_counters.deploy_token_packages.i_package_maven_deploy_token_monthly
-description: ''
-product_section: ''
-product_stage: ''
-product_group: ''
-product_category: ''
+description: A monthly count of Maven packages published to the registry using a deploy token
+product_section: ops
+product_stage: package
+product_group: group::package
+product_category: package registry
value_type: number
status: data_available
time_frame: 28d
data_source: redis_hll
distribution:
+- ee
- ce
tier:
- free
-skip_validation: true
+- premium
+- ultimate
diff --git a/config/metrics/counts_28d/20210216184834_i_package_npm_deploy_token_monthly.yml b/config/metrics/counts_28d/20210216184834_i_package_npm_deploy_token_monthly.yml
index ba98e8363a0..fc3b6db7af8 100644
--- a/config/metrics/counts_28d/20210216184834_i_package_npm_deploy_token_monthly.yml
+++ b/config/metrics/counts_28d/20210216184834_i_package_npm_deploy_token_monthly.yml
@@ -1,16 +1,18 @@
---
key_path: redis_hll_counters.deploy_token_packages.i_package_npm_deploy_token_monthly
-description: ''
-product_section: ''
-product_stage: ''
-product_group: ''
-product_category: ''
+description: A monthly count of npm packages published to the registry using a deploy token
+product_section: ops
+product_stage: package
+product_group: group::package
+product_category: package registry
value_type: number
status: data_available
time_frame: 28d
data_source: redis_hll
distribution:
+- ee
- ce
tier:
- free
-skip_validation: true
+- premium
+- ultimate
diff --git a/config/metrics/counts_28d/20210216184838_i_package_nuget_deploy_token_monthly.yml b/config/metrics/counts_28d/20210216184838_i_package_nuget_deploy_token_monthly.yml
index 2fe6251f959..6dfb7a6a201 100644
--- a/config/metrics/counts_28d/20210216184838_i_package_nuget_deploy_token_monthly.yml
+++ b/config/metrics/counts_28d/20210216184838_i_package_nuget_deploy_token_monthly.yml
@@ -1,16 +1,18 @@
---
key_path: redis_hll_counters.deploy_token_packages.i_package_nuget_deploy_token_monthly
-description: ''
-product_section: ''
-product_stage: ''
-product_group: ''
-product_category: ''
+description: A monthly count of NuGet packages published to the registry using a deploy token
+product_section: ops
+product_stage: package
+product_group: group::package
+product_category: package registry
value_type: number
status: data_available
time_frame: 28d
data_source: redis_hll
distribution:
+- ee
- ce
tier:
- free
-skip_validation: true
+- premium
+- ultimate
diff --git a/config/metrics/counts_28d/20210216184842_i_package_pypi_deploy_token_monthly.yml b/config/metrics/counts_28d/20210216184842_i_package_pypi_deploy_token_monthly.yml
index db8b894abf7..9a73f02c128 100644
--- a/config/metrics/counts_28d/20210216184842_i_package_pypi_deploy_token_monthly.yml
+++ b/config/metrics/counts_28d/20210216184842_i_package_pypi_deploy_token_monthly.yml
@@ -1,16 +1,19 @@
---
key_path: redis_hll_counters.deploy_token_packages.i_package_pypi_deploy_token_monthly
-description: ''
-product_section: ''
-product_stage: ''
-product_group: ''
-product_category: ''
+description: A monthly count of PyPI packages published to the registry using a deploy token
+product_section: ops
+product_stage: package
+product_group: group::package
+product_category: package registry
value_type: number
status: data_available
time_frame: 28d
data_source: redis_hll
distribution:
+- ee
- ce
tier:
- free
-skip_validation: true
+- premium
+- ultimate
+
diff --git a/config/metrics/counts_28d/20210216184846_i_package_tag_deploy_token_monthly.yml b/config/metrics/counts_28d/20210216184846_i_package_tag_deploy_token_monthly.yml
index b69c4aa13d5..6a9856418c4 100644
--- a/config/metrics/counts_28d/20210216184846_i_package_tag_deploy_token_monthly.yml
+++ b/config/metrics/counts_28d/20210216184846_i_package_tag_deploy_token_monthly.yml
@@ -1,16 +1,18 @@
---
key_path: redis_hll_counters.deploy_token_packages.i_package_tag_deploy_token_monthly
-description: ''
-product_section: ''
-product_stage: ''
-product_group: ''
-product_category: ''
+description: A monthly count of package tags published to the registry using a deploy token
+product_section: ops
+product_stage: package
+product_group: group::package
+product_category: package registry
value_type: number
-status: data_available
+status: deprecated
time_frame: 28d
data_source: redis_hll
distribution:
+- ee
- ce
tier:
- free
-skip_validation: true
+- premium
+- ultimate
diff --git a/config/metrics/counts_28d/20210216184850_deploy_token_packages_total_unique_counts_monthly.yml b/config/metrics/counts_28d/20210216184850_deploy_token_packages_total_unique_counts_monthly.yml
index b17e2a671b3..9df4ad1d53e 100644
--- a/config/metrics/counts_28d/20210216184850_deploy_token_packages_total_unique_counts_monthly.yml
+++ b/config/metrics/counts_28d/20210216184850_deploy_token_packages_total_unique_counts_monthly.yml
@@ -1,16 +1,18 @@
---
key_path: redis_hll_counters.deploy_token_packages.deploy_token_packages_total_unique_counts_monthly
-description: ''
-product_section: ''
-product_stage: ''
-product_group: ''
-product_category: ''
+description: A monthly count of packages published to the registry using a deploy token
+product_section: ops
+product_stage: package
+product_group: group::package
+product_category: package registry
value_type: number
status: data_available
time_frame: 28d
data_source: redis_hll
distribution:
+- ee
- ce
tier:
- free
-skip_validation: true
+- premium
+- ultimate
diff --git a/config/metrics/counts_28d/20210216184854_i_package_composer_user_monthly.yml b/config/metrics/counts_28d/20210216184854_i_package_composer_user_monthly.yml
index 821a30c475f..23cdfbb2be4 100644
--- a/config/metrics/counts_28d/20210216184854_i_package_composer_user_monthly.yml
+++ b/config/metrics/counts_28d/20210216184854_i_package_composer_user_monthly.yml
@@ -1,16 +1,18 @@
---
key_path: redis_hll_counters.user_packages.i_package_composer_user_monthly
-description: ''
-product_section: ''
-product_stage: ''
-product_group: ''
-product_category: ''
+description: A monthly count of users that have published a Composer package to the registry
+product_section: ops
+product_stage: package
+product_group: group::package
+product_category: package registry
value_type: number
status: data_available
time_frame: 28d
data_source: redis_hll
distribution:
+- ee
- ce
tier:
- free
-skip_validation: true
+- premium
+- ultimate
diff --git a/config/metrics/counts_28d/20210216184858_i_package_conan_user_monthly.yml b/config/metrics/counts_28d/20210216184858_i_package_conan_user_monthly.yml
index 34ca1cba1e8..44b005feead 100644
--- a/config/metrics/counts_28d/20210216184858_i_package_conan_user_monthly.yml
+++ b/config/metrics/counts_28d/20210216184858_i_package_conan_user_monthly.yml
@@ -1,16 +1,18 @@
---
key_path: redis_hll_counters.user_packages.i_package_conan_user_monthly
-description: ''
-product_section: ''
-product_stage: ''
-product_group: ''
-product_category: ''
+description: A monthly count of users that have published a Conan package to the registry
+product_section: ops
+product_stage: package
+product_group: group::package
+product_category: package registry
value_type: number
status: data_available
time_frame: 28d
data_source: redis_hll
distribution:
+- ee
- ce
tier:
- free
-skip_validation: true
+- premium
+- ultimate
diff --git a/config/metrics/counts_28d/20210216184902_i_package_container_user_monthly.yml b/config/metrics/counts_28d/20210216184902_i_package_container_user_monthly.yml
index dd916840cb1..3ff19ed318b 100644
--- a/config/metrics/counts_28d/20210216184902_i_package_container_user_monthly.yml
+++ b/config/metrics/counts_28d/20210216184902_i_package_container_user_monthly.yml
@@ -1,16 +1,18 @@
---
key_path: redis_hll_counters.user_packages.i_package_container_user_monthly
-description: ''
-product_section: ''
-product_stage: ''
-product_group: ''
-product_category: ''
+description: A monthly count of users that have published a container image to the registry
+product_section: ops
+product_stage: package
+product_group: group::package
+product_category: container registry
value_type: number
-status: data_available
+status: deprecated
time_frame: 28d
data_source: redis_hll
distribution:
+- ee
- ce
tier:
- free
-skip_validation: true
+- premium
+- ultimate
diff --git a/config/metrics/counts_28d/20210216184906_i_package_debian_user_monthly.yml b/config/metrics/counts_28d/20210216184906_i_package_debian_user_monthly.yml
index d72c6db17bb..84993d1d227 100644
--- a/config/metrics/counts_28d/20210216184906_i_package_debian_user_monthly.yml
+++ b/config/metrics/counts_28d/20210216184906_i_package_debian_user_monthly.yml
@@ -1,16 +1,18 @@
---
key_path: redis_hll_counters.user_packages.i_package_debian_user_monthly
-description: ''
-product_section: ''
-product_stage: ''
-product_group: ''
-product_category: ''
+description: A monthly count of users that have published a Debian package to the registry
+product_section: ops
+product_stage: package
+product_group: group::package
+product_category: package registry
value_type: number
-status: data_available
+status: deprecated
time_frame: 28d
data_source: redis_hll
distribution:
+- ee
- ce
tier:
- free
-skip_validation: true
+- premium
+- ultimate
diff --git a/config/metrics/counts_28d/20210216184910_i_package_generic_user_monthly.yml b/config/metrics/counts_28d/20210216184910_i_package_generic_user_monthly.yml
index af2d01d8320..8365d585d6a 100644
--- a/config/metrics/counts_28d/20210216184910_i_package_generic_user_monthly.yml
+++ b/config/metrics/counts_28d/20210216184910_i_package_generic_user_monthly.yml
@@ -1,16 +1,19 @@
---
key_path: redis_hll_counters.user_packages.i_package_generic_user_monthly
-description: ''
-product_section: ''
-product_stage: ''
-product_group: ''
-product_category: ''
+description: A monthly count of users that have published a generic package to the registry
+product_section: ops
+product_stage: package
+product_group: group::package
+product_category: package registry
value_type: number
-status: data_available
+status: broken
+repair_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/331455
time_frame: 28d
data_source: redis_hll
distribution:
+- ee
- ce
tier:
- free
-skip_validation: true
+- premium
+- ultimate
diff --git a/config/metrics/counts_28d/20210216184913_i_package_golang_user_monthly.yml b/config/metrics/counts_28d/20210216184913_i_package_golang_user_monthly.yml
index 031a6b51b04..8a8adf299a2 100644
--- a/config/metrics/counts_28d/20210216184913_i_package_golang_user_monthly.yml
+++ b/config/metrics/counts_28d/20210216184913_i_package_golang_user_monthly.yml
@@ -1,16 +1,18 @@
---
key_path: redis_hll_counters.user_packages.i_package_golang_user_monthly
-description: ''
-product_section: ''
-product_stage: ''
-product_group: ''
-product_category: ''
+description: A monthly count of users that have published a Go moduleto the registry
+product_section: ops
+product_stage: package
+product_group: group::package
+product_category: package registry
value_type: number
-status: data_available
+status: deprecated
time_frame: 28d
data_source: redis_hll
distribution:
+- ee
- ce
tier:
- free
-skip_validation: true
+- premium
+- ultimate
diff --git a/config/metrics/counts_28d/20210216184917_i_package_maven_user_monthly.yml b/config/metrics/counts_28d/20210216184917_i_package_maven_user_monthly.yml
index 4a4649cd38a..8f404ea70d3 100644
--- a/config/metrics/counts_28d/20210216184917_i_package_maven_user_monthly.yml
+++ b/config/metrics/counts_28d/20210216184917_i_package_maven_user_monthly.yml
@@ -1,16 +1,18 @@
---
key_path: redis_hll_counters.user_packages.i_package_maven_user_monthly
-description: ''
-product_section: ''
-product_stage: ''
-product_group: ''
-product_category: ''
+description: A monthly count of users that have published a Maven package to the registry
+product_section: ops
+product_stage: package
+product_group: group::package
+product_category: package registry
value_type: number
status: data_available
time_frame: 28d
data_source: redis_hll
distribution:
+- ee
- ce
tier:
- free
-skip_validation: true
+- premium
+- ultimate
diff --git a/config/metrics/counts_28d/20210216184921_i_package_npm_user_monthly.yml b/config/metrics/counts_28d/20210216184921_i_package_npm_user_monthly.yml
index 12dd245e7be..2c81962800a 100644
--- a/config/metrics/counts_28d/20210216184921_i_package_npm_user_monthly.yml
+++ b/config/metrics/counts_28d/20210216184921_i_package_npm_user_monthly.yml
@@ -1,16 +1,18 @@
---
key_path: redis_hll_counters.user_packages.i_package_npm_user_monthly
-description: ''
-product_section: ''
-product_stage: ''
-product_group: ''
-product_category: ''
+description: A monthly count of users that have published an npm package to the registry
+product_section: ops
+product_stage: package
+product_group: group::package
+product_category: package registry
value_type: number
status: data_available
time_frame: 28d
data_source: redis_hll
distribution:
+- ee
- ce
tier:
- free
-skip_validation: true
+- premium
+- ultimate
diff --git a/config/metrics/counts_28d/20210216184925_i_package_nuget_user_monthly.yml b/config/metrics/counts_28d/20210216184925_i_package_nuget_user_monthly.yml
index 6035e571393..9dcfb653994 100644
--- a/config/metrics/counts_28d/20210216184925_i_package_nuget_user_monthly.yml
+++ b/config/metrics/counts_28d/20210216184925_i_package_nuget_user_monthly.yml
@@ -1,16 +1,18 @@
---
key_path: redis_hll_counters.user_packages.i_package_nuget_user_monthly
-description: ''
-product_section: ''
-product_stage: ''
-product_group: ''
-product_category: ''
+description: A monthly count of users that have published a NuGet package to the registry
+product_section: ops
+product_stage: package
+product_group: group::package
+product_category: package registry
value_type: number
status: data_available
time_frame: 28d
data_source: redis_hll
distribution:
+- ee
- ce
tier:
- free
-skip_validation: true
+- premium
+- ultimate
diff --git a/config/metrics/counts_28d/20210216184929_i_package_pypi_user_monthly.yml b/config/metrics/counts_28d/20210216184929_i_package_pypi_user_monthly.yml
index eff9b749fb4..d975d7ed7ac 100644
--- a/config/metrics/counts_28d/20210216184929_i_package_pypi_user_monthly.yml
+++ b/config/metrics/counts_28d/20210216184929_i_package_pypi_user_monthly.yml
@@ -1,16 +1,18 @@
---
key_path: redis_hll_counters.user_packages.i_package_pypi_user_monthly
-description: ''
-product_section: ''
-product_stage: ''
-product_group: ''
-product_category: ''
+description: A monthly count of users that have published a PyPI package to the registry
+product_section: ops
+product_stage: package
+product_group: group::package
+product_category: package registry
value_type: number
status: data_available
time_frame: 28d
data_source: redis_hll
distribution:
+- ee
- ce
tier:
- free
-skip_validation: true
+- premium
+- ultimate
diff --git a/config/metrics/counts_28d/20210216184933_i_package_tag_user_monthly.yml b/config/metrics/counts_28d/20210216184933_i_package_tag_user_monthly.yml
index 15c078db1f9..5e953322470 100644
--- a/config/metrics/counts_28d/20210216184933_i_package_tag_user_monthly.yml
+++ b/config/metrics/counts_28d/20210216184933_i_package_tag_user_monthly.yml
@@ -1,16 +1,18 @@
---
key_path: redis_hll_counters.user_packages.i_package_tag_user_monthly
-description: ''
-product_section: ''
-product_stage: ''
-product_group: ''
-product_category: ''
+description: A monthly count of users that have published a package tag to the registry
+product_section: ops
+product_stage: package
+product_group: group::package
+product_category: package registry
value_type: number
-status: data_available
+status: deprecated
time_frame: 28d
data_source: redis_hll
distribution:
+- ee
- ce
tier:
- free
-skip_validation: true
+- premium
+- ultimate
diff --git a/config/metrics/counts_28d/20210216184937_user_packages_total_unique_counts_monthly.yml b/config/metrics/counts_28d/20210216184937_user_packages_total_unique_counts_monthly.yml
index c21e9bebd6c..f01aba36f32 100644
--- a/config/metrics/counts_28d/20210216184937_user_packages_total_unique_counts_monthly.yml
+++ b/config/metrics/counts_28d/20210216184937_user_packages_total_unique_counts_monthly.yml
@@ -1,16 +1,18 @@
---
key_path: redis_hll_counters.user_packages.user_packages_total_unique_counts_monthly
-description: ''
-product_section: ''
-product_stage: ''
-product_group: ''
-product_category: ''
+description: A monthly count of users that have published a package to the registry
+product_section: ops
+product_stage: package
+product_group: group::package
+product_category: package registry
value_type: number
status: data_available
time_frame: 28d
data_source: redis_hll
distribution:
+- ee
- ce
tier:
- free
-skip_validation: true
+- premium
+- ultimate
diff --git a/config/metrics/counts_28d/20210303154626_i_package_rubygems_deploy_token_monthly.yml b/config/metrics/counts_28d/20210303154626_i_package_rubygems_deploy_token_monthly.yml
index 3bd212d751c..38782ce6ce4 100644
--- a/config/metrics/counts_28d/20210303154626_i_package_rubygems_deploy_token_monthly.yml
+++ b/config/metrics/counts_28d/20210303154626_i_package_rubygems_deploy_token_monthly.yml
@@ -1,6 +1,6 @@
---
key_path: redis_hll_counters.deploy_token_packages.i_package_rubygems_deploy_token_monthly
-description: Distinct user count events for RubyGems packages in recent 28 days
+description: Distinct count events for RubyGems packages published using a Deploy token in recent 28 days
product_section: ops
product_stage: package
product_group: group::package
@@ -18,4 +18,3 @@ tier:
- free
- premium
- ultimate
-
diff --git a/config/metrics/counts_28d/20210303154654_i_package_rubygems_user_monthly.yml b/config/metrics/counts_28d/20210303154654_i_package_rubygems_user_monthly.yml
index 6f0ffabd23d..3c5f72e525e 100644
--- a/config/metrics/counts_28d/20210303154654_i_package_rubygems_user_monthly.yml
+++ b/config/metrics/counts_28d/20210303154654_i_package_rubygems_user_monthly.yml
@@ -1,6 +1,6 @@
---
key_path: redis_hll_counters.user_packages.i_package_rubygems_user_monthly
-description: Distinct user count events for RubyGems packages in recent 28 days
+description: Distinct user count of RubyGems packages published in recent 28 days
product_section: ops
product_stage: package
product_group: group::package
diff --git a/config/metrics/counts_7d/20210216184805_i_package_composer_deploy_token_weekly.yml b/config/metrics/counts_7d/20210216184805_i_package_composer_deploy_token_weekly.yml
new file mode 100644
index 00000000000..cd92e9282ef
--- /dev/null
+++ b/config/metrics/counts_7d/20210216184805_i_package_composer_deploy_token_weekly.yml
@@ -0,0 +1,18 @@
+---
+key_path: redis_hll_counters.deploy_token_packages.i_package_composer_deploy_token_weekly
+description: A weekly count of Composer packages published to the registry using a deploy token
+product_section: ops
+product_stage: package
+product_group: group::package
+product_category: package registry
+value_type: number
+status: deprecated
+time_frame: 7d
+data_source: redis_hll
+distribution:
+- ee
+- ce
+tier:
+- free
+- premium
+- ultimate
diff --git a/config/metrics/counts_7d/20210216184808_i_package_conan_deploy_token_weekly.yml b/config/metrics/counts_7d/20210216184808_i_package_conan_deploy_token_weekly.yml
new file mode 100644
index 00000000000..e6c21b02342
--- /dev/null
+++ b/config/metrics/counts_7d/20210216184808_i_package_conan_deploy_token_weekly.yml
@@ -0,0 +1,18 @@
+---
+key_path: redis_hll_counters.deploy_token_packages.i_package_conan_deploy_token_weekly
+description: A weekly count of Conan packages published to the registry using a deploy token
+product_section: ops
+product_stage: package
+product_group: group::package
+product_category: package registry
+value_type: number
+status: data_available
+time_frame: 7d
+data_source: redis_hll
+distribution:
+- ee
+- ce
+tier:
+- free
+- premium
+- ultimate
diff --git a/config/metrics/counts_7d/20210216184812_i_package_container_deploy_token_weekly.yml b/config/metrics/counts_7d/20210216184812_i_package_container_deploy_token_weekly.yml
new file mode 100644
index 00000000000..3fde3669069
--- /dev/null
+++ b/config/metrics/counts_7d/20210216184812_i_package_container_deploy_token_weekly.yml
@@ -0,0 +1,18 @@
+---
+key_path: redis_hll_counters.deploy_token_packages.i_package_container_deploy_token_weekly
+description: A weekly count of container images published to the registry using a deploy token
+product_section: ops
+product_stage: package
+product_group: group::package
+product_category: container registry
+value_type: number
+status: deprecated
+time_frame: 7d
+data_source: redis_hll
+distribution:
+- ee
+- ce
+tier:
+- free
+- premium
+- ultimate
diff --git a/config/metrics/counts_7d/20210216184816_i_package_debian_deploy_token_weekly.yml b/config/metrics/counts_7d/20210216184816_i_package_debian_deploy_token_weekly.yml
new file mode 100644
index 00000000000..7d76be2711b
--- /dev/null
+++ b/config/metrics/counts_7d/20210216184816_i_package_debian_deploy_token_weekly.yml
@@ -0,0 +1,18 @@
+---
+key_path: redis_hll_counters.deploy_token_packages.i_package_debian_deploy_token_weekly
+description: A weekly count of Debian packages published to the registry using a deploy token
+product_section: ops
+product_stage: package
+product_group: group::package
+product_category: package registry
+value_type: number
+status: deprecated
+time_frame: 7d
+data_source: redis_hll
+distribution:
+- ee
+- ce
+tier:
+- free
+- premium
+- ultimate
diff --git a/config/metrics/counts_7d/20210216184820_i_package_generic_deploy_token_weekly.yml b/config/metrics/counts_7d/20210216184820_i_package_generic_deploy_token_weekly.yml
new file mode 100644
index 00000000000..edcd164636a
--- /dev/null
+++ b/config/metrics/counts_7d/20210216184820_i_package_generic_deploy_token_weekly.yml
@@ -0,0 +1,18 @@
+---
+key_path: redis_hll_counters.deploy_token_packages.i_package_generic_deploy_token_weekly
+description: A weekly count of generic packages published to the registry using a deploy token
+product_section: ops
+product_stage: package
+product_group: group::package
+product_category: package registry
+value_type: number
+status: data_available
+time_frame: 7d
+data_source: redis_hll
+distribution:
+- ee
+- ce
+tier:
+- free
+- premium
+- ultimate
diff --git a/config/metrics/counts_7d/20210216184824_i_package_golang_deploy_token_weekly.yml b/config/metrics/counts_7d/20210216184824_i_package_golang_deploy_token_weekly.yml
new file mode 100644
index 00000000000..5c0ec453711
--- /dev/null
+++ b/config/metrics/counts_7d/20210216184824_i_package_golang_deploy_token_weekly.yml
@@ -0,0 +1,18 @@
+---
+key_path: redis_hll_counters.deploy_token_packages.i_package_golang_deploy_token_weekly
+description: A weekly count of Go modules published to the registry using a deploy token
+product_section: ops
+product_stage: package
+product_group: group::package
+product_category: package registry
+value_type: number
+status: deprecated
+time_frame: 7d
+data_source: redis_hll
+distribution:
+- ee
+- ce
+tier:
+- free
+- premium
+- ultimate
diff --git a/config/metrics/counts_7d/20210216184828_i_package_maven_deploy_token_weekly.yml b/config/metrics/counts_7d/20210216184828_i_package_maven_deploy_token_weekly.yml
new file mode 100644
index 00000000000..af6daafa7dd
--- /dev/null
+++ b/config/metrics/counts_7d/20210216184828_i_package_maven_deploy_token_weekly.yml
@@ -0,0 +1,18 @@
+---
+key_path: redis_hll_counters.deploy_token_packages.i_package_maven_deploy_token_weekly
+description: A weekly count of Maven packages published to the registry using a deploy token
+product_section: ops
+product_stage: package
+product_group: group::package
+product_category: package registry
+value_type: number
+status: data_available
+time_frame: 7d
+data_source: redis_hll
+distribution:
+- ee
+- ce
+tier:
+- free
+- premium
+- ultimate
diff --git a/config/metrics/counts_7d/20210216184832_i_package_npm_deploy_token_weekly.yml b/config/metrics/counts_7d/20210216184832_i_package_npm_deploy_token_weekly.yml
new file mode 100644
index 00000000000..609bebc4087
--- /dev/null
+++ b/config/metrics/counts_7d/20210216184832_i_package_npm_deploy_token_weekly.yml
@@ -0,0 +1,18 @@
+---
+key_path: redis_hll_counters.deploy_token_packages.i_package_npm_deploy_token_weekly
+description: A weekly count of npm packages published to the registry using a deploy token
+product_section: ops
+product_stage: package
+product_group: group::package
+product_category: package registry
+value_type: number
+status: data_available
+time_frame: 7d
+data_source: redis_hll
+distribution:
+- ee
+- ce
+tier:
+- free
+- premium
+- ultimate
diff --git a/config/metrics/counts_7d/20210216184836_i_package_nuget_deploy_token_weekly.yml b/config/metrics/counts_7d/20210216184836_i_package_nuget_deploy_token_weekly.yml
new file mode 100644
index 00000000000..0f78eb35621
--- /dev/null
+++ b/config/metrics/counts_7d/20210216184836_i_package_nuget_deploy_token_weekly.yml
@@ -0,0 +1,18 @@
+---
+key_path: redis_hll_counters.deploy_token_packages.i_package_nuget_deploy_token_weekly
+description: A weekly count of NuGet packages published to the registry using a deploy token
+product_section: ops
+product_stage: package
+product_group: group::package
+product_category: package registry
+value_type: number
+status: data_available
+time_frame: 7d
+data_source: redis_hll
+distribution:
+- ee
+- ce
+tier:
+- free
+- premium
+- ultimate
diff --git a/config/metrics/counts_7d/20210216184840_i_package_pypi_deploy_token_weekly.yml b/config/metrics/counts_7d/20210216184840_i_package_pypi_deploy_token_weekly.yml
new file mode 100644
index 00000000000..0cf568469ee
--- /dev/null
+++ b/config/metrics/counts_7d/20210216184840_i_package_pypi_deploy_token_weekly.yml
@@ -0,0 +1,18 @@
+---
+key_path: redis_hll_counters.deploy_token_packages.i_package_pypi_deploy_token_weekly
+description: A weekly count of Python packages published to the registry using a deploy token
+product_section: ops
+product_stage: package
+product_group: group::package
+product_category: package registry
+value_type: number
+status: data_available
+time_frame: 7d
+data_source: redis_hll
+distribution:
+- ee
+- ce
+tier:
+- free
+- premium
+- ultimate
diff --git a/config/metrics/counts_7d/20210216184844_i_package_tag_deploy_token_weekly.yml b/config/metrics/counts_7d/20210216184844_i_package_tag_deploy_token_weekly.yml
new file mode 100644
index 00000000000..b36b49e33ae
--- /dev/null
+++ b/config/metrics/counts_7d/20210216184844_i_package_tag_deploy_token_weekly.yml
@@ -0,0 +1,18 @@
+---
+key_path: redis_hll_counters.deploy_token_packages.i_package_tag_deploy_token_weekly
+description: A weekly count of users that have published a package tag to the registry using a deploy token
+product_section: ops
+product_stage: package
+product_group: group::package
+product_category: package registry
+value_type: number
+status: deprecated
+time_frame: 7d
+data_source: redis_hll
+distribution:
+- ee
+- ce
+tier:
+- free
+- premium
+- ultimate
diff --git a/config/metrics/counts_7d/20210216184848_deploy_token_packages_total_unique_counts_weekly.yml b/config/metrics/counts_7d/20210216184848_deploy_token_packages_total_unique_counts_weekly.yml
new file mode 100644
index 00000000000..3809462ab07
--- /dev/null
+++ b/config/metrics/counts_7d/20210216184848_deploy_token_packages_total_unique_counts_weekly.yml
@@ -0,0 +1,18 @@
+---
+key_path: redis_hll_counters.deploy_token_packages.deploy_token_packages_total_unique_counts_weekly
+description: A weekly count of packages published to the registry using a deploy token
+product_section: ops
+product_stage: package
+product_group: group::package
+product_category: package registry
+value_type: number
+status: data_available
+time_frame: 7d
+data_source: redis_hll
+distribution:
+- ee
+- ce
+tier:
+- free
+- premium
+- ultimate
diff --git a/config/metrics/counts_7d/20210216184852_i_package_composer_user_weekly.yml b/config/metrics/counts_7d/20210216184852_i_package_composer_user_weekly.yml
new file mode 100644
index 00000000000..cfaa46f0dae
--- /dev/null
+++ b/config/metrics/counts_7d/20210216184852_i_package_composer_user_weekly.yml
@@ -0,0 +1,18 @@
+---
+key_path: redis_hll_counters.user_packages.i_package_composer_user_weekly
+description: A weekly count of users that have published a Composer package to the registry
+product_section: ops
+product_stage: package
+product_group: group::package
+product_category: package registry
+value_type: number
+status: data_available
+time_frame: 7d
+data_source: redis_hll
+distribution:
+- ee
+- ce
+tier:
+- free
+- premium
+- ultimate
diff --git a/config/metrics/counts_7d/20210216184856_i_package_conan_user_weekly.yml b/config/metrics/counts_7d/20210216184856_i_package_conan_user_weekly.yml
new file mode 100644
index 00000000000..b044acc90fa
--- /dev/null
+++ b/config/metrics/counts_7d/20210216184856_i_package_conan_user_weekly.yml
@@ -0,0 +1,18 @@
+---
+key_path: redis_hll_counters.user_packages.i_package_conan_user_weekly
+description: A weekly count of users that have published a Conan package to the registry
+product_section: ops
+product_stage: package
+product_group: group::package
+product_category: package registry
+value_type: number
+status: data_available
+time_frame: 7d
+data_source: redis_hll
+distribution:
+- ee
+- ce
+tier:
+- free
+- premium
+- ultimate
diff --git a/config/metrics/counts_7d/20210216184900_i_package_container_user_weekly.yml b/config/metrics/counts_7d/20210216184900_i_package_container_user_weekly.yml
new file mode 100644
index 00000000000..98a07acb5d0
--- /dev/null
+++ b/config/metrics/counts_7d/20210216184900_i_package_container_user_weekly.yml
@@ -0,0 +1,18 @@
+---
+key_path: redis_hll_counters.user_packages.i_package_container_user_weekly
+description: A weekly count of users that have published a container image to the registry
+product_section: ops
+product_stage: package
+product_group: group::package
+product_category: container registry
+value_type: number
+status: deprecated
+time_frame: 7d
+data_source: redis_hll
+distribution:
+- ee
+- ce
+tier:
+- free
+- premium
+- ultimate
diff --git a/config/metrics/counts_7d/20210216184904_i_package_debian_user_weekly.yml b/config/metrics/counts_7d/20210216184904_i_package_debian_user_weekly.yml
new file mode 100644
index 00000000000..8dc2aed0989
--- /dev/null
+++ b/config/metrics/counts_7d/20210216184904_i_package_debian_user_weekly.yml
@@ -0,0 +1,18 @@
+---
+key_path: redis_hll_counters.user_packages.i_package_debian_user_weekly
+description: A weekly count of users that have published a Debian package to the registry
+product_section: ops
+product_stage: package
+product_group: group::package
+product_category: package registry
+value_type: number
+status: deprecated
+time_frame: 7d
+data_source: redis_hll
+distribution:
+- ee
+- ce
+tier:
+- free
+- premium
+- ultimate
diff --git a/config/metrics/counts_7d/20210216184908_i_package_generic_user_weekly.yml b/config/metrics/counts_7d/20210216184908_i_package_generic_user_weekly.yml
new file mode 100644
index 00000000000..e5e25e10db1
--- /dev/null
+++ b/config/metrics/counts_7d/20210216184908_i_package_generic_user_weekly.yml
@@ -0,0 +1,19 @@
+---
+key_path: redis_hll_counters.user_packages.i_package_generic_user_weekly
+description: A weekly count of users that have published a generic package to the registry
+product_section: ops
+product_stage: package
+product_group: group::package
+product_category: package registry
+value_type: number
+status: broken
+repair_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/331455
+time_frame: 7d
+data_source: redis_hll
+distribution:
+- ee
+- ce
+tier:
+- free
+- premium
+- ultimate
diff --git a/config/metrics/counts_7d/20210216184911_i_package_golang_user_weekly.yml b/config/metrics/counts_7d/20210216184911_i_package_golang_user_weekly.yml
new file mode 100644
index 00000000000..e7c354fdbf6
--- /dev/null
+++ b/config/metrics/counts_7d/20210216184911_i_package_golang_user_weekly.yml
@@ -0,0 +1,18 @@
+---
+key_path: redis_hll_counters.user_packages.i_package_golang_user_weekly
+description: A weekly count of users that have published a Go module to the registry
+product_section: ops
+product_stage: package
+product_group: group::package
+product_category: package registry
+value_type: number
+status: deprecated
+time_frame: 7d
+data_source: redis_hll
+distribution:
+- ee
+- ce
+tier:
+- free
+- premium
+- ultimate
diff --git a/config/metrics/counts_7d/20210216184916_i_package_maven_user_weekly.yml b/config/metrics/counts_7d/20210216184916_i_package_maven_user_weekly.yml
new file mode 100644
index 00000000000..8ee42570d49
--- /dev/null
+++ b/config/metrics/counts_7d/20210216184916_i_package_maven_user_weekly.yml
@@ -0,0 +1,18 @@
+---
+key_path: redis_hll_counters.user_packages.i_package_maven_user_weekly
+description: A weekly count of users that have published a Maven package to the registry
+product_section: ops
+product_stage: package
+product_group: group::package
+product_category: package registry
+value_type: number
+status: data_available
+time_frame: 7d
+data_source: redis_hll
+distribution:
+- ee
+- ce
+tier:
+- free
+- premium
+- ultimate
diff --git a/config/metrics/counts_7d/20210216184919_i_package_npm_user_weekly.yml b/config/metrics/counts_7d/20210216184919_i_package_npm_user_weekly.yml
new file mode 100644
index 00000000000..29dd1a69cf0
--- /dev/null
+++ b/config/metrics/counts_7d/20210216184919_i_package_npm_user_weekly.yml
@@ -0,0 +1,18 @@
+---
+key_path: redis_hll_counters.user_packages.i_package_npm_user_weekly
+description: A weekly count of users that have published an npm package to the registry
+product_section: ops
+product_stage: package
+product_group: group::package
+product_category: package registry
+value_type: number
+status: data_available
+time_frame: 7d
+data_source: redis_hll
+distribution:
+- ee
+- ce
+tier:
+- free
+- premium
+- ultimate
diff --git a/config/metrics/counts_7d/20210216184923_i_package_nuget_user_weekly.yml b/config/metrics/counts_7d/20210216184923_i_package_nuget_user_weekly.yml
new file mode 100644
index 00000000000..5a4e18afa15
--- /dev/null
+++ b/config/metrics/counts_7d/20210216184923_i_package_nuget_user_weekly.yml
@@ -0,0 +1,18 @@
+---
+key_path: redis_hll_counters.user_packages.i_package_nuget_user_weekly
+description: A weekly count of users that have published a NuGet package to the registry
+product_section: ops
+product_stage: package
+product_group: group::package
+product_category: package registry
+value_type: number
+status: data_available
+time_frame: 7d
+data_source: redis_hll
+distribution:
+- ee
+- ce
+tier:
+- free
+- premium
+- ultimate
diff --git a/config/metrics/counts_7d/20210216184927_i_package_pypi_user_weekly.yml b/config/metrics/counts_7d/20210216184927_i_package_pypi_user_weekly.yml
new file mode 100644
index 00000000000..ebb116c53a6
--- /dev/null
+++ b/config/metrics/counts_7d/20210216184927_i_package_pypi_user_weekly.yml
@@ -0,0 +1,18 @@
+---
+key_path: redis_hll_counters.user_packages.i_package_pypi_user_weekly
+description: A weekly count of users that have published a Python package to the registry
+product_section: ops
+product_stage: package
+product_group: group::package
+product_category: package registry
+value_type: number
+status: data_available
+time_frame: 7d
+data_source: redis_hll
+distribution:
+- ee
+- ce
+tier:
+- free
+- premium
+- ultimate
diff --git a/config/metrics/counts_7d/20210216184931_i_package_tag_user_weekly.yml b/config/metrics/counts_7d/20210216184931_i_package_tag_user_weekly.yml
new file mode 100644
index 00000000000..02a8c435a35
--- /dev/null
+++ b/config/metrics/counts_7d/20210216184931_i_package_tag_user_weekly.yml
@@ -0,0 +1,18 @@
+---
+key_path: redis_hll_counters.user_packages.i_package_tag_user_weekly
+description: A weekly count of users that have published a package with a tag to the registry
+product_section: ops
+product_stage: package
+product_group: group::package
+product_category: package registry
+value_type: number
+status: deprecated
+time_frame: 7d
+data_source: redis_hll
+distribution:
+- ee
+- ce
+tier:
+- free
+- premium
+- ultimate
diff --git a/config/metrics/counts_7d/20210216184935_user_packages_total_unique_counts_weekly.yml b/config/metrics/counts_7d/20210216184935_user_packages_total_unique_counts_weekly.yml
new file mode 100644
index 00000000000..f262cb31b68
--- /dev/null
+++ b/config/metrics/counts_7d/20210216184935_user_packages_total_unique_counts_weekly.yml
@@ -0,0 +1,18 @@
+---
+key_path: redis_hll_counters.user_packages.user_packages_total_unique_counts_weekly
+description: A weekly count of users that have published a package to the registry
+product_section: ops
+product_stage: package
+product_group: group::package
+product_category: package registry
+value_type: number
+status: data_available
+time_frame: 7d
+data_source: redis_hll
+distribution:
+- ee
+- ce
+tier:
+- free
+- premium
+- ultimate
diff --git a/config/metrics/counts_7d/20210303154624_i_package_rubygems_deploy_token_weekly.yml b/config/metrics/counts_7d/20210303154624_i_package_rubygems_deploy_token_weekly.yml
index ec3258babd5..c0bd8b6b224 100644
--- a/config/metrics/counts_7d/20210303154624_i_package_rubygems_deploy_token_weekly.yml
+++ b/config/metrics/counts_7d/20210303154624_i_package_rubygems_deploy_token_weekly.yml
@@ -1,6 +1,6 @@
---
key_path: redis_hll_counters.deploy_token_packages.i_package_rubygems_deploy_token_weekly
-description: Distinct RubyGems pakages deployed in recent 7 days
+description: A weekly count of distinct RubyGems packages published using a deploy token
product_section: ops
product_stage: package
product_group: group::package
diff --git a/config/metrics/counts_7d/20210303154652_i_package_rubygems_user_weekly.yml b/config/metrics/counts_7d/20210303154652_i_package_rubygems_user_weekly.yml
index 57d8f3b9457..4935d036846 100644
--- a/config/metrics/counts_7d/20210303154652_i_package_rubygems_user_weekly.yml
+++ b/config/metrics/counts_7d/20210303154652_i_package_rubygems_user_weekly.yml
@@ -1,6 +1,6 @@
---
key_path: redis_hll_counters.user_packages.i_package_rubygems_user_weekly
-description: Distinct user count events for RubyGems packages in recent 7 days
+description: A weekly count of distinct RubyGems packages published by a user
product_section: ops
product_stage: package
product_group: group::package
@@ -18,4 +18,3 @@ tier:
- free
- premium
- ultimate
-
diff --git a/config/metrics/counts_all/20210216181009_lfs_objects.yml b/config/metrics/counts_all/20210216181009_lfs_objects.yml
index fe221ae2c47..b17b029852c 100644
--- a/config/metrics/counts_all/20210216181009_lfs_objects.yml
+++ b/config/metrics/counts_all/20210216181009_lfs_objects.yml
@@ -2,8 +2,8 @@
key_path: counts.lfs_objects
description:
product_section: ops
-product_stage: package
-product_group: group::package
+product_stage: create
+product_group: group::create
product_category:
value_type: number
status: data_available
diff --git a/config/metrics/counts_all/20210216181011_projects_with_packages.yml b/config/metrics/counts_all/20210216181011_projects_with_packages.yml
index 2dee15b9438..8d81edaa55f 100644
--- a/config/metrics/counts_all/20210216181011_projects_with_packages.yml
+++ b/config/metrics/counts_all/20210216181011_projects_with_packages.yml
@@ -1,17 +1,18 @@
---
key_path: counts.projects_with_packages
-description: Projects with package registry configured
+description: Projects with package registry enabled
product_section: ops
-product_stage:
+product_stage: package
product_group: group::package
-product_category:
+product_category: package registry
value_type: number
status: data_available
time_frame: all
data_source: database
distribution:
-- ce
- ee
+- ce
tier:
- free
-skip_validation: true
+- premium
+- ultimate
diff --git a/config/metrics/counts_all/20210216181012_packages.yml b/config/metrics/counts_all/20210216181012_packages.yml
index 2843f223d9e..2934ebdc3d7 100644
--- a/config/metrics/counts_all/20210216181012_packages.yml
+++ b/config/metrics/counts_all/20210216181012_packages.yml
@@ -1,16 +1,18 @@
---
key_path: counts.packages
-description: Number of packages
+description: The total number of packages published to the registry
product_section: ops
-product_stage:
+product_stage: package
product_group: group::package
-product_category:
+product_category: package registry
value_type: number
status: data_available
time_frame: all
data_source: database
distribution:
+- ee
- ce
tier:
- free
-skip_validation: true
+- premium
+- ultimate
diff --git a/config/metrics/counts_all/20210216181014_projects_with_expiration_policy_disabled.yml b/config/metrics/counts_all/20210216181014_projects_with_expiration_policy_disabled.yml
index 69b893251ac..dbc5e4c0d0a 100644
--- a/config/metrics/counts_all/20210216181014_projects_with_expiration_policy_disabled.yml
+++ b/config/metrics/counts_all/20210216181014_projects_with_expiration_policy_disabled.yml
@@ -1,16 +1,18 @@
---
key_path: counts.projects_with_expiration_policy_disabled
-description:
+description: The number of projects with cleanup policy for tags turned off
product_section: ops
product_stage: package
product_group: group::package
-product_category:
+product_category: container registry
value_type: number
status: data_available
time_frame: all
data_source: database
distribution:
+- ee
- ce
tier:
- free
-skip_validation: true
+- premium
+- ultimate
diff --git a/config/metrics/counts_all/20210216181016_projects_with_expiration_policy_enabled.yml b/config/metrics/counts_all/20210216181016_projects_with_expiration_policy_enabled.yml
index 9e06674dc61..a71a36f19ca 100644
--- a/config/metrics/counts_all/20210216181016_projects_with_expiration_policy_enabled.yml
+++ b/config/metrics/counts_all/20210216181016_projects_with_expiration_policy_enabled.yml
@@ -1,16 +1,18 @@
---
key_path: counts.projects_with_expiration_policy_enabled
-description:
+description: A count of projects with the cleanup policy for tags turned on
product_section: ops
product_stage: package
product_group: group::package
-product_category:
+product_category: container registry
value_type: number
status: data_available
time_frame: all
data_source: database
distribution:
+- ee
- ce
tier:
- free
-skip_validation: true
+- premium
+- ultimate
diff --git a/config/metrics/counts_all/20210216181018_projects_with_expiration_policy_enabled_with_keep_n_set_to_1.yml b/config/metrics/counts_all/20210216181018_projects_with_expiration_policy_enabled_with_keep_n_set_to_1.yml
new file mode 100644
index 00000000000..7cf495c6091
--- /dev/null
+++ b/config/metrics/counts_all/20210216181018_projects_with_expiration_policy_enabled_with_keep_n_set_to_1.yml
@@ -0,0 +1,18 @@
+---
+key_path: counts.projects_with_expiration_policy_enabled_with_keep_n_set_to_1
+description: A count of projects with the cleanup policy set to keep 1 tag
+product_section: ops
+product_stage: package
+product_group: group::package
+product_category: container registry
+value_type: number
+status: data_available
+time_frame: all
+data_source: database
+distribution:
+- ee
+- ce
+tier:
+- free
+- premium
+- ultimate
diff --git a/config/metrics/counts_all/20210216181020_projects_with_expiration_policy_enabled_with_keep_n_set_to_5.yml b/config/metrics/counts_all/20210216181020_projects_with_expiration_policy_enabled_with_keep_n_set_to_5.yml
new file mode 100644
index 00000000000..143d47835aa
--- /dev/null
+++ b/config/metrics/counts_all/20210216181020_projects_with_expiration_policy_enabled_with_keep_n_set_to_5.yml
@@ -0,0 +1,18 @@
+---
+key_path: counts.projects_with_expiration_policy_enabled_with_keep_n_set_to_5
+description: A count of projects with the cleanup policy set to keep 5 tags
+product_section: ops
+product_stage: package
+product_group: group::package
+product_category: container registry
+value_type: number
+status: data_available
+time_frame: all
+data_source: database
+distribution:
+- ee
+- ce
+tier:
+- free
+- premium
+- ultimate
diff --git a/config/metrics/counts_all/20210216181022_projects_with_expiration_policy_enabled_with_keep_n_set_to_10.yml b/config/metrics/counts_all/20210216181022_projects_with_expiration_policy_enabled_with_keep_n_set_to_10.yml
new file mode 100644
index 00000000000..27ae7c56c24
--- /dev/null
+++ b/config/metrics/counts_all/20210216181022_projects_with_expiration_policy_enabled_with_keep_n_set_to_10.yml
@@ -0,0 +1,18 @@
+---
+key_path: counts.projects_with_expiration_policy_enabled_with_keep_n_set_to_10
+description: A count of projects with the cleanup policy set to keep 10 tags
+product_section: ops
+product_stage: package
+product_group: group::package
+product_category: container registry
+value_type: number
+status: data_available
+time_frame: all
+data_source: database
+distribution:
+- ee
+- ce
+tier:
+- free
+- premium
+- ultimate
diff --git a/config/metrics/counts_all/20210216181024_projects_with_expiration_policy_enabled_with_keep_n_set_to_25.yml b/config/metrics/counts_all/20210216181024_projects_with_expiration_policy_enabled_with_keep_n_set_to_25.yml
new file mode 100644
index 00000000000..2c1c00ec965
--- /dev/null
+++ b/config/metrics/counts_all/20210216181024_projects_with_expiration_policy_enabled_with_keep_n_set_to_25.yml
@@ -0,0 +1,18 @@
+---
+key_path: counts.projects_with_expiration_policy_enabled_with_keep_n_set_to_25
+description: A count of projects with the cleanup policy set to keep 25 tags
+product_section: ops
+product_stage: package
+product_group: group::package
+product_category: container registry
+value_type: number
+status: data_available
+time_frame: all
+data_source: database
+distribution:
+- ee
+- ce
+tier:
+- free
+- premium
+- ultimate
diff --git a/config/metrics/counts_all/20210216181025_projects_with_expiration_policy_enabled_with_keep_n_set_to_50.yml b/config/metrics/counts_all/20210216181025_projects_with_expiration_policy_enabled_with_keep_n_set_to_50.yml
new file mode 100644
index 00000000000..b735f009dae
--- /dev/null
+++ b/config/metrics/counts_all/20210216181025_projects_with_expiration_policy_enabled_with_keep_n_set_to_50.yml
@@ -0,0 +1,18 @@
+---
+key_path: counts.projects_with_expiration_policy_enabled_with_keep_n_set_to_50
+description: A count of projects with the cleanup policy set to keep 50 tags
+product_section: ops
+product_stage: package
+product_group: group::package
+product_category: container registry
+value_type: number
+status: data_available
+time_frame: all
+data_source: database
+distribution:
+- ee
+- ce
+tier:
+- free
+- premium
+- ultimate
diff --git a/config/metrics/counts_all/20210216181027_projects_with_expiration_policy_enabled_with_keep_n_set_to_100.yml b/config/metrics/counts_all/20210216181027_projects_with_expiration_policy_enabled_with_keep_n_set_to_100.yml
new file mode 100644
index 00000000000..a14f17039e9
--- /dev/null
+++ b/config/metrics/counts_all/20210216181027_projects_with_expiration_policy_enabled_with_keep_n_set_to_100.yml
@@ -0,0 +1,18 @@
+---
+key_path: counts.projects_with_expiration_policy_enabled_with_keep_n_set_to_100
+description: A count of projects with the cleanup policy set to keep 100 tags
+product_section: ops
+product_stage: package
+product_group: group::package
+product_category: container registry
+value_type: number
+status: data_available
+time_frame: all
+data_source: database
+distribution:
+- ee
+- ce
+tier:
+- free
+- premium
+- ultimate
diff --git a/config/metrics/counts_all/20210216181029_projects_with_expiration_policy_enabled_with_cadence_set_to_1d.yml b/config/metrics/counts_all/20210216181029_projects_with_expiration_policy_enabled_with_cadence_set_to_1d.yml
index 907fa82882c..daf4551b16d 100644
--- a/config/metrics/counts_all/20210216181029_projects_with_expiration_policy_enabled_with_cadence_set_to_1d.yml
+++ b/config/metrics/counts_all/20210216181029_projects_with_expiration_policy_enabled_with_cadence_set_to_1d.yml
@@ -1,16 +1,18 @@
---
key_path: counts.projects_with_expiration_policy_enabled_with_cadence_set_to_1d
-description:
+description: A count of projects with the cleanup policy set to run every day
product_section: ops
product_stage: package
product_group: group::package
-product_category:
+product_category: container registry
value_type: number
status: data_available
time_frame: all
data_source: database
distribution:
+- ee
- ce
tier:
- free
-skip_validation: true
+- premium
+- ultimate
diff --git a/config/metrics/counts_all/20210216181031_projects_with_expiration_policy_enabled_with_cadence_set_to_7d.yml b/config/metrics/counts_all/20210216181031_projects_with_expiration_policy_enabled_with_cadence_set_to_7d.yml
index 55ae6fc7a24..f67df5897ff 100644
--- a/config/metrics/counts_all/20210216181031_projects_with_expiration_policy_enabled_with_cadence_set_to_7d.yml
+++ b/config/metrics/counts_all/20210216181031_projects_with_expiration_policy_enabled_with_cadence_set_to_7d.yml
@@ -1,16 +1,18 @@
---
key_path: counts.projects_with_expiration_policy_enabled_with_cadence_set_to_7d
-description:
+description: A count of projects with the cleanup policy set to run every 7 days
product_section: ops
product_stage: package
product_group: group::package
-product_category:
+product_category: container registry
value_type: number
status: data_available
time_frame: all
data_source: database
distribution:
+- ee
- ce
tier:
- free
-skip_validation: true
+- premium
+- ultimate
diff --git a/config/metrics/counts_all/20210216181033_projects_with_expiration_policy_enabled_with_cadence_set_to_14d.yml b/config/metrics/counts_all/20210216181033_projects_with_expiration_policy_enabled_with_cadence_set_to_14d.yml
index 2e0bb6e06f5..5ac7179b486 100644
--- a/config/metrics/counts_all/20210216181033_projects_with_expiration_policy_enabled_with_cadence_set_to_14d.yml
+++ b/config/metrics/counts_all/20210216181033_projects_with_expiration_policy_enabled_with_cadence_set_to_14d.yml
@@ -1,16 +1,18 @@
---
key_path: counts.projects_with_expiration_policy_enabled_with_cadence_set_to_14d
-description:
+description: A count of projects with the cleanup policy set to run every 14 days
product_section: ops
product_stage: package
product_group: group::package
-product_category:
+product_category: container registry
value_type: number
status: data_available
time_frame: all
data_source: database
distribution:
+- ee
- ce
tier:
- free
-skip_validation: true
+- premium
+- ultimate
diff --git a/config/metrics/counts_all/20210216181035_projects_with_expiration_policy_enabled_with_cadence_set_to_1month.yml b/config/metrics/counts_all/20210216181035_projects_with_expiration_policy_enabled_with_cadence_set_to_1month.yml
index 5b6ec558b76..25ce0d633e4 100644
--- a/config/metrics/counts_all/20210216181035_projects_with_expiration_policy_enabled_with_cadence_set_to_1month.yml
+++ b/config/metrics/counts_all/20210216181035_projects_with_expiration_policy_enabled_with_cadence_set_to_1month.yml
@@ -1,16 +1,18 @@
---
key_path: counts.projects_with_expiration_policy_enabled_with_cadence_set_to_1month
-description:
+description: A count of projects with the cleanup policy set to run monthly
product_section: ops
product_stage: package
product_group: group::package
-product_category:
+product_category: container registry
value_type: number
status: data_available
time_frame: all
data_source: database
distribution:
+- ee
- ce
tier:
- free
-skip_validation: true
+- premium
+- ultimate
diff --git a/config/metrics/counts_all/20210216181037_projects_with_expiration_policy_enabled_with_cadence_set_to_3month.yml b/config/metrics/counts_all/20210216181037_projects_with_expiration_policy_enabled_with_cadence_set_to_3month.yml
index 6028972324d..f8df648b170 100644
--- a/config/metrics/counts_all/20210216181037_projects_with_expiration_policy_enabled_with_cadence_set_to_3month.yml
+++ b/config/metrics/counts_all/20210216181037_projects_with_expiration_policy_enabled_with_cadence_set_to_3month.yml
@@ -1,16 +1,18 @@
---
key_path: counts.projects_with_expiration_policy_enabled_with_cadence_set_to_3month
-description:
+description: A count of projects with the cleanup policy set to run every 3 months
product_section: ops
product_stage: package
product_group: group::package
-product_category:
+product_category: container registry
value_type: number
status: data_available
time_frame: all
data_source: database
distribution:
+- ee
- ce
tier:
- free
-skip_validation: true
+- premium
+- ultimate
diff --git a/config/metrics/counts_all/20210216181038_projects_with_expiration_policy_enabled_with_older_than_set_to_7d.yml b/config/metrics/counts_all/20210216181038_projects_with_expiration_policy_enabled_with_older_than_set_to_7d.yml
index c1bd230ec5b..29926d961e4 100644
--- a/config/metrics/counts_all/20210216181038_projects_with_expiration_policy_enabled_with_older_than_set_to_7d.yml
+++ b/config/metrics/counts_all/20210216181038_projects_with_expiration_policy_enabled_with_older_than_set_to_7d.yml
@@ -1,16 +1,18 @@
---
key_path: counts.projects_with_expiration_policy_enabled_with_older_than_set_to_7d
-description:
+description: A count of projects with the cleanup policy set delete tags older than 7 days
product_section: ops
product_stage: package
product_group: group::package
-product_category:
+product_category: container registry
value_type: number
status: data_available
time_frame: all
data_source: database
distribution:
+- ee
- ce
tier:
- free
-skip_validation: true
+- premium
+- ultimate
diff --git a/config/metrics/counts_all/20210216181040_projects_with_expiration_policy_enabled_with_older_than_set_to_14d.yml b/config/metrics/counts_all/20210216181040_projects_with_expiration_policy_enabled_with_older_than_set_to_14d.yml
index fc2e647a05e..28e905f980b 100644
--- a/config/metrics/counts_all/20210216181040_projects_with_expiration_policy_enabled_with_older_than_set_to_14d.yml
+++ b/config/metrics/counts_all/20210216181040_projects_with_expiration_policy_enabled_with_older_than_set_to_14d.yml
@@ -1,16 +1,18 @@
---
key_path: counts.projects_with_expiration_policy_enabled_with_older_than_set_to_14d
-description:
+description: A count of projects with the cleanup policy set delete tags older than 14 days
product_section: ops
product_stage: package
product_group: group::package
-product_category:
+product_category: container registry
value_type: number
status: data_available
time_frame: all
data_source: database
distribution:
+- ee
- ce
tier:
- free
-skip_validation: true
+- premium
+- ultimate
diff --git a/config/metrics/counts_all/20210216181042_projects_with_expiration_policy_enabled_with_older_than_set_to_30d.yml b/config/metrics/counts_all/20210216181042_projects_with_expiration_policy_enabled_with_older_than_set_to_30d.yml
index e8816d6f4f2..db0db2762d4 100644
--- a/config/metrics/counts_all/20210216181042_projects_with_expiration_policy_enabled_with_older_than_set_to_30d.yml
+++ b/config/metrics/counts_all/20210216181042_projects_with_expiration_policy_enabled_with_older_than_set_to_30d.yml
@@ -1,16 +1,18 @@
---
key_path: counts.projects_with_expiration_policy_enabled_with_older_than_set_to_30d
-description:
+description: A count of projects with the cleanup policy set delete tags older than 30 days
product_section: ops
product_stage: package
product_group: group::package
-product_category:
+product_category: container registry
value_type: number
status: data_available
time_frame: all
data_source: database
distribution:
+- ee
- ce
tier:
- free
-skip_validation: true
+- premium
+- ultimate
diff --git a/config/metrics/counts_all/20210216181044_projects_with_expiration_policy_enabled_with_older_than_set_to_90d.yml b/config/metrics/counts_all/20210216181044_projects_with_expiration_policy_enabled_with_older_than_set_to_90d.yml
index 367eae45062..c1854ea634a 100644
--- a/config/metrics/counts_all/20210216181044_projects_with_expiration_policy_enabled_with_older_than_set_to_90d.yml
+++ b/config/metrics/counts_all/20210216181044_projects_with_expiration_policy_enabled_with_older_than_set_to_90d.yml
@@ -1,16 +1,18 @@
---
key_path: counts.projects_with_expiration_policy_enabled_with_older_than_set_to_90d
-description:
+description: A count of projects with the cleanup policy set delete tags older than 90 days
product_section: ops
product_stage: package
product_group: group::package
-product_category:
+product_category: container registry
value_type: number
status: data_available
time_frame: all
data_source: database
distribution:
+- ee
- ce
tier:
- free
-skip_validation: true
+- premium
+- ultimate
diff --git a/config/metrics/counts_all/20210216181046_projects_with_expiration_policy_enabled_with_keep_n_unset.yml b/config/metrics/counts_all/20210216181046_projects_with_expiration_policy_enabled_with_keep_n_unset.yml
new file mode 100644
index 00000000000..983687d7a6c
--- /dev/null
+++ b/config/metrics/counts_all/20210216181046_projects_with_expiration_policy_enabled_with_keep_n_unset.yml
@@ -0,0 +1,18 @@
+---
+key_path: counts.projects_with_expiration_policy_enabled_with_keep_n_unset
+description: A count of projects with the cleanup policy with the number of tags to keep unset
+product_section: ops
+product_stage: package
+product_group: group::package
+product_category: container registry
+value_type: number
+status: data_available
+time_frame: all
+data_source: database
+distribution:
+- ee
+- ce
+tier:
+- free
+- premium
+- ultimate
diff --git a/config/metrics/counts_all/20210216181048_projects_with_expiration_policy_enabled_with_older_than_unset.yml b/config/metrics/counts_all/20210216181048_projects_with_expiration_policy_enabled_with_older_than_unset.yml
index f89b6ef698e..23f0b9b3b47 100644
--- a/config/metrics/counts_all/20210216181048_projects_with_expiration_policy_enabled_with_older_than_unset.yml
+++ b/config/metrics/counts_all/20210216181048_projects_with_expiration_policy_enabled_with_older_than_unset.yml
@@ -1,16 +1,18 @@
---
key_path: counts.projects_with_expiration_policy_enabled_with_older_than_unset
-description:
+description: A count of projects with the cleanup policy with the number of tags to delete unset
product_section: ops
product_stage: package
product_group: group::package
-product_category:
+product_category: container registry
value_type: number
status: data_available
time_frame: all
data_source: database
distribution:
+- ee
- ce
tier:
- free
-skip_validation: true
+- premium
+- ultimate
diff --git a/config/metrics/counts_all/20210216181051_vendor.yml b/config/metrics/counts_all/20210216181051_vendor.yml
index 1233659fa5c..29fc84d1b1c 100644
--- a/config/metrics/counts_all/20210216181051_vendor.yml
+++ b/config/metrics/counts_all/20210216181051_vendor.yml
@@ -1,17 +1,18 @@
---
key_path: container_registry_server.vendor
-description: Identifies if a user is using an external container registry and what
- type
+description: Identifies if a user is using an external container registry and what type
product_section: ops
product_stage: package
product_group: group::package
-product_category:
+product_category: container registry
value_type: number
status: data_available
time_frame: all
-data_source:
+data_source: database
distribution:
+- ee
- ce
tier:
- free
-skip_validation: true
+- premium
+- ultimate
diff --git a/config/metrics/counts_all/20210216181055_projects_with_packages.yml b/config/metrics/counts_all/20210216181055_projects_with_packages.yml
index 55ea64a66a8..fb006b7f9ec 100644
--- a/config/metrics/counts_all/20210216181055_projects_with_packages.yml
+++ b/config/metrics/counts_all/20210216181055_projects_with_packages.yml
@@ -1,16 +1,18 @@
---
key_path: usage_activity_by_stage.package.projects_with_packages
-description: Projects with package registry configured
+description: Projects with package registry enabled
product_section: ops
product_stage: package
product_group: group::package
-product_category:
+product_category: package registry
value_type: number
status: data_available
time_frame: all
-data_source:
+data_source: redis
distribution:
+- ee
- ce
tier:
- free
-skip_validation: true
+- premium
+- ultimate
diff --git a/config/metrics/counts_all/20210216182855_package_events_i_package_composer_delete_package.yml b/config/metrics/counts_all/20210216182855_package_events_i_package_composer_delete_package.yml
index fb26328eb81..3ad8d02cb1d 100644
--- a/config/metrics/counts_all/20210216182855_package_events_i_package_composer_delete_package.yml
+++ b/config/metrics/counts_all/20210216182855_package_events_i_package_composer_delete_package.yml
@@ -1,16 +1,18 @@
---
key_path: counts.package_events_i_package_composer_delete_package
-description: ''
-product_section: ''
-product_stage: ''
-product_group: ''
-product_category: ''
+description: A count of Composer packages that have been deleted
+product_section: ops
+product_stage: package
+product_group: group::package
+product_category: package registry
value_type: number
status: data_available
time_frame: all
-data_source: database
+data_source: redis
distribution:
+- ee
- ce
tier:
- free
-skip_validation: true
+- premium
+- ultimate
diff --git a/config/metrics/counts_all/20210216182857_package_events_i_package_composer_pull_package.yml b/config/metrics/counts_all/20210216182857_package_events_i_package_composer_pull_package.yml
index 010067763b5..e6d056f6cc3 100644
--- a/config/metrics/counts_all/20210216182857_package_events_i_package_composer_pull_package.yml
+++ b/config/metrics/counts_all/20210216182857_package_events_i_package_composer_pull_package.yml
@@ -1,16 +1,18 @@
---
key_path: counts.package_events_i_package_composer_pull_package
-description: ''
-product_section: ''
-product_stage: ''
-product_group: ''
-product_category: ''
+description: A count of Composer packages that have been downloaded
+product_section: ops
+product_stage: package
+product_group: group::package
+product_category: package registry
value_type: number
status: data_available
time_frame: all
-data_source: database
+data_source: redis
distribution:
+- ee
- ce
tier:
- free
-skip_validation: true
+- premium
+- ultimate
diff --git a/config/metrics/counts_all/20210216182859_package_events_i_package_composer_push_package.yml b/config/metrics/counts_all/20210216182859_package_events_i_package_composer_push_package.yml
index 11ccbf3b27e..7aaa3d5d9d0 100644
--- a/config/metrics/counts_all/20210216182859_package_events_i_package_composer_push_package.yml
+++ b/config/metrics/counts_all/20210216182859_package_events_i_package_composer_push_package.yml
@@ -1,16 +1,18 @@
---
key_path: counts.package_events_i_package_composer_push_package
-description: ''
-product_section: ''
-product_stage: ''
-product_group: ''
-product_category: ''
+description: A count of Composer packages that have been published
+product_section: ops
+product_stage: package
+product_group: group::package
+product_category: package registry
value_type: number
status: data_available
time_frame: all
-data_source: database
+data_source: redis
distribution:
+- ee
- ce
tier:
- free
-skip_validation: true
+- premium
+- ultimate
diff --git a/config/metrics/counts_all/20210216182901_package_events_i_package_conan_delete_package.yml b/config/metrics/counts_all/20210216182901_package_events_i_package_conan_delete_package.yml
index 9091fc299ee..9baa6d0b535 100644
--- a/config/metrics/counts_all/20210216182901_package_events_i_package_conan_delete_package.yml
+++ b/config/metrics/counts_all/20210216182901_package_events_i_package_conan_delete_package.yml
@@ -1,16 +1,18 @@
---
key_path: counts.package_events_i_package_conan_delete_package
-description: ''
-product_section: ''
-product_stage: ''
-product_group: ''
-product_category: ''
+description: A count of Conan packages that have been deleted
+product_section: ops
+product_stage: package
+product_group: group::package
+product_category: package registry
value_type: number
status: data_available
time_frame: all
-data_source: database
+data_source: redis
distribution:
+- ee
- ce
tier:
- free
-skip_validation: true
+- premium
+- ultimate
diff --git a/config/metrics/counts_all/20210216182903_package_events_i_package_conan_pull_package.yml b/config/metrics/counts_all/20210216182903_package_events_i_package_conan_pull_package.yml
index 91cea7e5f4f..9465a30e6a5 100644
--- a/config/metrics/counts_all/20210216182903_package_events_i_package_conan_pull_package.yml
+++ b/config/metrics/counts_all/20210216182903_package_events_i_package_conan_pull_package.yml
@@ -1,16 +1,18 @@
---
key_path: counts.package_events_i_package_conan_pull_package
-description: ''
-product_section: ''
-product_stage: ''
-product_group: ''
-product_category: ''
+description: A count of Conan packages that have been downloaded
+product_section: ops
+product_stage: package
+product_group: group::package
+product_category: package registry
value_type: number
status: data_available
time_frame: all
-data_source: database
+data_source: redis
distribution:
+- ee
- ce
tier:
- free
-skip_validation: true
+- premium
+- ultimate
diff --git a/config/metrics/counts_all/20210216182905_package_events_i_package_conan_push_package.yml b/config/metrics/counts_all/20210216182905_package_events_i_package_conan_push_package.yml
index 4b4e08c0631..6bc0ea59256 100644
--- a/config/metrics/counts_all/20210216182905_package_events_i_package_conan_push_package.yml
+++ b/config/metrics/counts_all/20210216182905_package_events_i_package_conan_push_package.yml
@@ -1,16 +1,18 @@
---
key_path: counts.package_events_i_package_conan_push_package
-description: ''
-product_section: ''
-product_stage: ''
-product_group: ''
-product_category: ''
+description: A count of Conan packages that have been published
+product_section: ops
+product_stage: package
+product_group: group::package
+product_category: package registry
value_type: number
status: data_available
time_frame: all
-data_source: database
+data_source: redis
distribution:
+- ee
- ce
tier:
- free
-skip_validation: true
+- premium
+- ultimate
diff --git a/config/metrics/counts_all/20210216182907_package_events_i_package_container_delete_package.yml b/config/metrics/counts_all/20210216182907_package_events_i_package_container_delete_package.yml
index b87bc78265c..d475ea39438 100644
--- a/config/metrics/counts_all/20210216182907_package_events_i_package_container_delete_package.yml
+++ b/config/metrics/counts_all/20210216182907_package_events_i_package_container_delete_package.yml
@@ -1,16 +1,18 @@
---
key_path: counts.package_events_i_package_container_delete_package
-description: ''
-product_section: ''
-product_stage: ''
-product_group: ''
-product_category: ''
+description: A count of container images that have been deleted
+product_section: ops
+product_stage: package
+product_group: group::package
+product_category: container registry
value_type: number
-status: data_available
+status: deprecated
time_frame: all
-data_source: database
+data_source: redis
distribution:
+- ee
- ce
tier:
- free
-skip_validation: true
+- premium
+- ultimate
diff --git a/config/metrics/counts_all/20210216182909_package_events_i_package_container_pull_package.yml b/config/metrics/counts_all/20210216182909_package_events_i_package_container_pull_package.yml
index 4ca264fc57f..7a9070b623a 100644
--- a/config/metrics/counts_all/20210216182909_package_events_i_package_container_pull_package.yml
+++ b/config/metrics/counts_all/20210216182909_package_events_i_package_container_pull_package.yml
@@ -1,16 +1,18 @@
---
key_path: counts.package_events_i_package_container_pull_package
-description: ''
-product_section: ''
-product_stage: ''
-product_group: ''
-product_category: ''
+description: A count of container images that have been downloaded
+product_section: ops
+product_stage: package
+product_group: group::package
+product_category: container registry
value_type: number
-status: data_available
+status: deprecated
time_frame: all
-data_source: database
+data_source: redis
distribution:
+- ee
- ce
tier:
- free
-skip_validation: true
+- premium
+- ultimate
diff --git a/config/metrics/counts_all/20210216182911_package_events_i_package_container_push_package.yml b/config/metrics/counts_all/20210216182911_package_events_i_package_container_push_package.yml
index ea30df537f2..11402a7b5e7 100644
--- a/config/metrics/counts_all/20210216182911_package_events_i_package_container_push_package.yml
+++ b/config/metrics/counts_all/20210216182911_package_events_i_package_container_push_package.yml
@@ -1,16 +1,18 @@
---
key_path: counts.package_events_i_package_container_push_package
-description: ''
-product_section: ''
-product_stage: ''
-product_group: ''
-product_category: ''
+description: A count of container images that have been published
+product_section: ops
+product_stage: package
+product_group: group::package
+product_category: container registry
value_type: number
-status: data_available
+status: deprecated
time_frame: all
-data_source: database
+data_source: redis
distribution:
+- ee
- ce
tier:
- free
-skip_validation: true
+- premium
+- ultimate
diff --git a/config/metrics/counts_all/20210216182913_package_events_i_package_debian_delete_package.yml b/config/metrics/counts_all/20210216182913_package_events_i_package_debian_delete_package.yml
index e05cbbdc3a9..25fd4257ed2 100644
--- a/config/metrics/counts_all/20210216182913_package_events_i_package_debian_delete_package.yml
+++ b/config/metrics/counts_all/20210216182913_package_events_i_package_debian_delete_package.yml
@@ -1,16 +1,18 @@
---
key_path: counts.package_events_i_package_debian_delete_package
-description: ''
-product_section: ''
-product_stage: ''
-product_group: ''
-product_category: ''
+description: A count of Debian packages that have been deleted
+product_section: ops
+product_stage: package
+product_group: group::package
+product_category: package registry
value_type: number
status: data_available
time_frame: all
-data_source: database
+data_source: redis
distribution:
+- ee
- ce
tier:
- free
-skip_validation: true
+- premium
+- ultimate
diff --git a/config/metrics/counts_all/20210216182915_package_events_i_package_debian_pull_package.yml b/config/metrics/counts_all/20210216182915_package_events_i_package_debian_pull_package.yml
index 6e0635e7108..c4017a636a5 100644
--- a/config/metrics/counts_all/20210216182915_package_events_i_package_debian_pull_package.yml
+++ b/config/metrics/counts_all/20210216182915_package_events_i_package_debian_pull_package.yml
@@ -1,16 +1,18 @@
---
key_path: counts.package_events_i_package_debian_pull_package
-description: ''
-product_section: ''
-product_stage: ''
-product_group: ''
-product_category: ''
+description: A count of Debian packages that have been downloaded
+product_section: ops
+product_stage: package
+product_group: group::package
+product_category: package registry
value_type: number
status: data_available
time_frame: all
-data_source: database
+data_source: redis
distribution:
+- ee
- ce
tier:
- free
-skip_validation: true
+- premium
+- ultimate
diff --git a/config/metrics/counts_all/20210216182917_package_events_i_package_debian_push_package.yml b/config/metrics/counts_all/20210216182917_package_events_i_package_debian_push_package.yml
index 818d32cf911..7af47fe182d 100644
--- a/config/metrics/counts_all/20210216182917_package_events_i_package_debian_push_package.yml
+++ b/config/metrics/counts_all/20210216182917_package_events_i_package_debian_push_package.yml
@@ -1,16 +1,18 @@
---
key_path: counts.package_events_i_package_debian_push_package
-description: ''
-product_section: ''
-product_stage: ''
-product_group: ''
-product_category: ''
+description: A count of Debian packages that have been published
+product_section: ops
+product_stage: package
+product_group: group::package
+product_category: package registry
value_type: number
-status: data_available
+status: deprecated
time_frame: all
-data_source: database
+data_source: redis
distribution:
+- ee
- ce
tier:
- free
-skip_validation: true
+- premium
+- ultimate
diff --git a/config/metrics/counts_all/20210216182919_package_events_i_package_delete_package.yml b/config/metrics/counts_all/20210216182919_package_events_i_package_delete_package.yml
index 3bec73ead90..11196fc56c3 100644
--- a/config/metrics/counts_all/20210216182919_package_events_i_package_delete_package.yml
+++ b/config/metrics/counts_all/20210216182919_package_events_i_package_delete_package.yml
@@ -1,16 +1,18 @@
---
key_path: counts.package_events_i_package_delete_package
-description: ''
-product_section: ''
-product_stage: ''
-product_group: ''
-product_category: ''
+description: A count of packages that have been deleted
+product_section: ops
+product_stage: package
+product_group: group::package
+product_category: package registry
value_type: number
status: data_available
time_frame: all
-data_source: database
+data_source: redis
distribution:
+- ee
- ce
tier:
- free
-skip_validation: true
+- premium
+- ultimate
diff --git a/config/metrics/counts_all/20210216182921_package_events_i_package_delete_package_by_deploy_token.yml b/config/metrics/counts_all/20210216182921_package_events_i_package_delete_package_by_deploy_token.yml
index 4ac31ac255b..00650c4a139 100644
--- a/config/metrics/counts_all/20210216182921_package_events_i_package_delete_package_by_deploy_token.yml
+++ b/config/metrics/counts_all/20210216182921_package_events_i_package_delete_package_by_deploy_token.yml
@@ -1,16 +1,18 @@
---
key_path: counts.package_events_i_package_delete_package_by_deploy_token
-description: ''
-product_section: ''
-product_stage: ''
-product_group: ''
-product_category: ''
+description: A count of packages that have been deleted using a Deploy Token
+product_section: ops
+product_stage: package
+product_group: group::package
+product_category: package registry
value_type: number
status: data_available
time_frame: all
-data_source: database
+data_source: redis
distribution:
+- ee
- ce
tier:
- free
-skip_validation: true
+- premium
+- ultimate
diff --git a/config/metrics/counts_all/20210216182923_package_events_i_package_delete_package_by_guest.yml b/config/metrics/counts_all/20210216182923_package_events_i_package_delete_package_by_guest.yml
index 8a3cb104b6a..f8240096bb9 100644
--- a/config/metrics/counts_all/20210216182923_package_events_i_package_delete_package_by_guest.yml
+++ b/config/metrics/counts_all/20210216182923_package_events_i_package_delete_package_by_guest.yml
@@ -1,16 +1,18 @@
---
key_path: counts.package_events_i_package_delete_package_by_guest
-description: ''
-product_section: ''
-product_stage: ''
-product_group: ''
-product_category: ''
+description: A count of packages that have been deleted using a Guest
+product_section: ops
+product_stage: package
+product_group: group::package
+product_category: package registry
value_type: number
status: data_available
time_frame: all
-data_source: database
+data_source: redis
distribution:
+- ee
- ce
tier:
- free
-skip_validation: true
+- premium
+- ultimate
diff --git a/config/metrics/counts_all/20210216182925_package_events_i_package_delete_package_by_user.yml b/config/metrics/counts_all/20210216182925_package_events_i_package_delete_package_by_user.yml
index c0bf7f79ebc..012d7d2bf39 100644
--- a/config/metrics/counts_all/20210216182925_package_events_i_package_delete_package_by_user.yml
+++ b/config/metrics/counts_all/20210216182925_package_events_i_package_delete_package_by_user.yml
@@ -1,16 +1,18 @@
---
key_path: counts.package_events_i_package_delete_package_by_user
-description: ''
-product_section: ''
-product_stage: ''
-product_group: ''
-product_category: ''
+description: A count of packages that have been deleted using a logged in user
+product_section: ops
+product_stage: package
+product_group: group::package
+product_category: package registry
value_type: number
status: data_available
time_frame: all
-data_source: database
+data_source: redis
distribution:
+- ee
- ce
tier:
- free
-skip_validation: true
+- premium
+- ultimate
diff --git a/config/metrics/counts_all/20210216182927_package_events_i_package_generic_delete_package.yml b/config/metrics/counts_all/20210216182927_package_events_i_package_generic_delete_package.yml
index e38a6a4910e..fda3a7065e1 100644
--- a/config/metrics/counts_all/20210216182927_package_events_i_package_generic_delete_package.yml
+++ b/config/metrics/counts_all/20210216182927_package_events_i_package_generic_delete_package.yml
@@ -1,16 +1,18 @@
---
key_path: counts.package_events_i_package_generic_delete_package
-description: ''
-product_section: ''
-product_stage: ''
-product_group: ''
-product_category: ''
+description: A count of generic packages that have been deleted
+product_section: ops
+product_stage: package
+product_group: group::package
+product_category: package registry
value_type: number
status: data_available
time_frame: all
-data_source: database
+data_source: redis
distribution:
+- ee
- ce
tier:
- free
-skip_validation: true
+- premium
+- ultimate
diff --git a/config/metrics/counts_all/20210216182929_package_events_i_package_generic_pull_package.yml b/config/metrics/counts_all/20210216182929_package_events_i_package_generic_pull_package.yml
index 29e08dd04fe..34b718a2497 100644
--- a/config/metrics/counts_all/20210216182929_package_events_i_package_generic_pull_package.yml
+++ b/config/metrics/counts_all/20210216182929_package_events_i_package_generic_pull_package.yml
@@ -1,16 +1,18 @@
---
key_path: counts.package_events_i_package_generic_pull_package
-description: ''
-product_section: ''
-product_stage: ''
-product_group: ''
-product_category: ''
+description: A count of generic packages that have been downloaded
+product_section: ops
+product_stage: package
+product_group: group::package
+product_category: package registry
value_type: number
status: data_available
time_frame: all
-data_source: database
+data_source: redis
distribution:
+- ee
- ce
tier:
- free
-skip_validation: true
+- premium
+- ultimate
diff --git a/config/metrics/counts_all/20210216182931_package_events_i_package_generic_push_package.yml b/config/metrics/counts_all/20210216182931_package_events_i_package_generic_push_package.yml
index 9dbd7572df6..5c39995a1b2 100644
--- a/config/metrics/counts_all/20210216182931_package_events_i_package_generic_push_package.yml
+++ b/config/metrics/counts_all/20210216182931_package_events_i_package_generic_push_package.yml
@@ -1,16 +1,18 @@
---
key_path: counts.package_events_i_package_generic_push_package
-description: ''
-product_section: ''
-product_stage: ''
-product_group: ''
-product_category: ''
+description: A count of generic packages that have been published
+product_section: ops
+product_stage: package
+product_group: group::package
+product_category: package registry
value_type: number
status: data_available
time_frame: all
-data_source: database
+data_source: redis
distribution:
+- ee
- ce
tier:
- free
-skip_validation: true
+- premium
+- ultimate
diff --git a/config/metrics/counts_all/20210216182933_package_events_i_package_golang_delete_package.yml b/config/metrics/counts_all/20210216182933_package_events_i_package_golang_delete_package.yml
index 9dda1569073..c856484e691 100644
--- a/config/metrics/counts_all/20210216182933_package_events_i_package_golang_delete_package.yml
+++ b/config/metrics/counts_all/20210216182933_package_events_i_package_golang_delete_package.yml
@@ -1,16 +1,18 @@
---
key_path: counts.package_events_i_package_golang_delete_package
-description: ''
-product_section: ''
-product_stage: ''
-product_group: ''
-product_category: ''
+description: A count of Go modules that have been deleted
+product_section: ops
+product_stage: package
+product_group: group::package
+product_category: package registry
value_type: number
status: data_available
time_frame: all
-data_source: database
+data_source: redis
distribution:
+- ee
- ce
tier:
- free
-skip_validation: true
+- premium
+- ultimate
diff --git a/config/metrics/counts_all/20210216182934_package_events_i_package_golang_pull_package.yml b/config/metrics/counts_all/20210216182934_package_events_i_package_golang_pull_package.yml
index 8a0399ca1be..e4bfe9f50d6 100644
--- a/config/metrics/counts_all/20210216182934_package_events_i_package_golang_pull_package.yml
+++ b/config/metrics/counts_all/20210216182934_package_events_i_package_golang_pull_package.yml
@@ -1,16 +1,18 @@
---
key_path: counts.package_events_i_package_golang_pull_package
-description: ''
-product_section: ''
-product_stage: ''
-product_group: ''
-product_category: ''
+description: A count of Go modules that have been downloaded
+product_section: ops
+product_stage: package
+product_group: group::package
+product_category: package registry
value_type: number
status: data_available
time_frame: all
-data_source: database
+data_source: redis
distribution:
+- ee
- ce
tier:
- free
-skip_validation: true
+- premium
+- ultimate
diff --git a/config/metrics/counts_all/20210216182936_package_events_i_package_golang_push_package.yml b/config/metrics/counts_all/20210216182936_package_events_i_package_golang_push_package.yml
index 5c83f5533d0..6bfc5255e9f 100644
--- a/config/metrics/counts_all/20210216182936_package_events_i_package_golang_push_package.yml
+++ b/config/metrics/counts_all/20210216182936_package_events_i_package_golang_push_package.yml
@@ -1,16 +1,18 @@
---
key_path: counts.package_events_i_package_golang_push_package
-description: ''
-product_section: ''
-product_stage: ''
-product_group: ''
-product_category: ''
+description: A count of Go modules that have been published
+product_section: ops
+product_stage: package
+product_group: group::package
+product_category: package registry
value_type: number
status: data_available
time_frame: all
-data_source: database
+data_source: redis
distribution:
+- ee
- ce
tier:
- free
-skip_validation: true
+- premium
+- ultimate
diff --git a/config/metrics/counts_all/20210216182938_package_events_i_package_maven_delete_package.yml b/config/metrics/counts_all/20210216182938_package_events_i_package_maven_delete_package.yml
index 5ebdc064a11..43c8d16986d 100644
--- a/config/metrics/counts_all/20210216182938_package_events_i_package_maven_delete_package.yml
+++ b/config/metrics/counts_all/20210216182938_package_events_i_package_maven_delete_package.yml
@@ -1,16 +1,18 @@
---
key_path: counts.package_events_i_package_maven_delete_package
-description: ''
-product_section: ''
-product_stage: ''
-product_group: ''
-product_category: ''
+description: A count of Maven packages that have been deleted
+product_section: ops
+product_stage: package
+product_group: group::package
+product_category: package registry
value_type: number
status: data_available
time_frame: all
-data_source: database
+data_source: redis
distribution:
+- ee
- ce
tier:
- free
-skip_validation: true
+- premium
+- ultimate
diff --git a/config/metrics/counts_all/20210216182940_package_events_i_package_maven_pull_package.yml b/config/metrics/counts_all/20210216182940_package_events_i_package_maven_pull_package.yml
index 6749fba2c3b..3c95516325e 100644
--- a/config/metrics/counts_all/20210216182940_package_events_i_package_maven_pull_package.yml
+++ b/config/metrics/counts_all/20210216182940_package_events_i_package_maven_pull_package.yml
@@ -1,16 +1,18 @@
---
key_path: counts.package_events_i_package_maven_pull_package
-description: ''
-product_section: ''
-product_stage: ''
-product_group: ''
-product_category: ''
+description: A count of Maven packages that have been downloaded
+product_section: ops
+product_stage: package
+product_group: group::package
+product_category: package registry
value_type: number
status: data_available
time_frame: all
-data_source: database
+data_source: redis
distribution:
+- ee
- ce
tier:
- free
-skip_validation: true
+- premium
+- ultimate
diff --git a/config/metrics/counts_all/20210216182942_package_events_i_package_maven_push_package.yml b/config/metrics/counts_all/20210216182942_package_events_i_package_maven_push_package.yml
index f329104f2b2..d1843778ad9 100644
--- a/config/metrics/counts_all/20210216182942_package_events_i_package_maven_push_package.yml
+++ b/config/metrics/counts_all/20210216182942_package_events_i_package_maven_push_package.yml
@@ -1,16 +1,18 @@
---
key_path: counts.package_events_i_package_maven_push_package
-description: ''
-product_section: ''
-product_stage: ''
-product_group: ''
-product_category: ''
+description: A count of Maven packages that have been published
+product_section: ops
+product_stage: package
+product_group: group::package
+product_category: package registry
value_type: number
status: data_available
time_frame: all
-data_source: database
+data_source: redis
distribution:
+- ee
- ce
tier:
- free
-skip_validation: true
+- premium
+- ultimate
diff --git a/config/metrics/counts_all/20210216182944_package_events_i_package_npm_delete_package.yml b/config/metrics/counts_all/20210216182944_package_events_i_package_npm_delete_package.yml
index b8653d5a27e..2c3ca5d1dfb 100644
--- a/config/metrics/counts_all/20210216182944_package_events_i_package_npm_delete_package.yml
+++ b/config/metrics/counts_all/20210216182944_package_events_i_package_npm_delete_package.yml
@@ -1,16 +1,18 @@
---
key_path: counts.package_events_i_package_npm_delete_package
-description: ''
-product_section: ''
-product_stage: ''
-product_group: ''
-product_category: ''
+description: A count of npm packages that have been deleted
+product_section: ops
+product_stage: package
+product_group: group::package
+product_category: package registry
value_type: number
status: data_available
time_frame: all
-data_source: database
+data_source: redis
distribution:
+- ee
- ce
tier:
- free
-skip_validation: true
+- premium
+- ultimate
diff --git a/config/metrics/counts_all/20210216182946_package_events_i_package_npm_pull_package.yml b/config/metrics/counts_all/20210216182946_package_events_i_package_npm_pull_package.yml
index 54799778680..639ecf0b0fb 100644
--- a/config/metrics/counts_all/20210216182946_package_events_i_package_npm_pull_package.yml
+++ b/config/metrics/counts_all/20210216182946_package_events_i_package_npm_pull_package.yml
@@ -1,16 +1,18 @@
---
key_path: counts.package_events_i_package_npm_pull_package
-description: ''
-product_section: ''
-product_stage: ''
-product_group: ''
-product_category: ''
+description: A count of npm packages that have been downloaded
+product_section: ops
+product_stage: package
+product_group: group::package
+product_category: package registry
value_type: number
status: data_available
time_frame: all
-data_source: database
+data_source: redis
distribution:
+- ee
- ce
tier:
- free
-skip_validation: true
+- premium
+- ultimate
diff --git a/config/metrics/counts_all/20210216182948_package_events_i_package_npm_push_package.yml b/config/metrics/counts_all/20210216182948_package_events_i_package_npm_push_package.yml
index c9c5f43627a..815c2b0194d 100644
--- a/config/metrics/counts_all/20210216182948_package_events_i_package_npm_push_package.yml
+++ b/config/metrics/counts_all/20210216182948_package_events_i_package_npm_push_package.yml
@@ -1,16 +1,18 @@
---
key_path: counts.package_events_i_package_npm_push_package
-description: ''
-product_section: ''
-product_stage: ''
-product_group: ''
-product_category: ''
+description: A count of npm packages that have been published
+product_section: ops
+product_stage: package
+product_group: group::package
+product_category: package registry
value_type: number
status: data_available
time_frame: all
-data_source: database
+data_source: redis
distribution:
+- ee
- ce
tier:
- free
-skip_validation: true
+- premium
+- ultimate
diff --git a/config/metrics/counts_all/20210216182950_package_events_i_package_nuget_delete_package.yml b/config/metrics/counts_all/20210216182950_package_events_i_package_nuget_delete_package.yml
index 1f410f5ae95..1cd5ec0e63f 100644
--- a/config/metrics/counts_all/20210216182950_package_events_i_package_nuget_delete_package.yml
+++ b/config/metrics/counts_all/20210216182950_package_events_i_package_nuget_delete_package.yml
@@ -1,16 +1,18 @@
---
key_path: counts.package_events_i_package_nuget_delete_package
-description: ''
-product_section: ''
-product_stage: ''
-product_group: ''
-product_category: ''
+description: A count of NuGet packages that have been deleted
+product_section: ops
+product_stage: package
+product_group: group::package
+product_category: package registry
value_type: number
status: data_available
time_frame: all
-data_source: database
+data_source: redis
distribution:
+- ee
- ce
tier:
- free
-skip_validation: true
+- premium
+- ultimate
diff --git a/config/metrics/counts_all/20210216182952_package_events_i_package_nuget_pull_package.yml b/config/metrics/counts_all/20210216182952_package_events_i_package_nuget_pull_package.yml
index 4b7abb5af70..06f2b212ecc 100644
--- a/config/metrics/counts_all/20210216182952_package_events_i_package_nuget_pull_package.yml
+++ b/config/metrics/counts_all/20210216182952_package_events_i_package_nuget_pull_package.yml
@@ -1,16 +1,18 @@
---
key_path: counts.package_events_i_package_nuget_pull_package
-description: ''
-product_section: ''
-product_stage: ''
-product_group: ''
-product_category: ''
+description: A count of NuGet packages that have been downloaded
+product_section: ops
+product_stage: package
+product_group: group::package
+product_category: package registry
value_type: number
status: data_available
time_frame: all
-data_source: database
+data_source: redis
distribution:
+- ee
- ce
tier:
- free
-skip_validation: true
+- premium
+- ultimate
diff --git a/config/metrics/counts_all/20210216182954_package_events_i_package_nuget_push_package.yml b/config/metrics/counts_all/20210216182954_package_events_i_package_nuget_push_package.yml
index 3812514b79d..2cbe0345ccc 100644
--- a/config/metrics/counts_all/20210216182954_package_events_i_package_nuget_push_package.yml
+++ b/config/metrics/counts_all/20210216182954_package_events_i_package_nuget_push_package.yml
@@ -1,16 +1,18 @@
---
key_path: counts.package_events_i_package_nuget_push_package
-description: ''
-product_section: ''
-product_stage: ''
-product_group: ''
-product_category: ''
+description: A count of NuGet packages that have been published
+product_section: ops
+product_stage: package
+product_group: group::package
+product_category: package registry
value_type: number
status: data_available
time_frame: all
-data_source: database
+data_source: redis
distribution:
+- ee
- ce
tier:
- free
-skip_validation: true
+- premium
+- ultimate
diff --git a/config/metrics/counts_all/20210216182956_package_events_i_package_pull_package.yml b/config/metrics/counts_all/20210216182956_package_events_i_package_pull_package.yml
index dd3c335235b..879cfd64e03 100644
--- a/config/metrics/counts_all/20210216182956_package_events_i_package_pull_package.yml
+++ b/config/metrics/counts_all/20210216182956_package_events_i_package_pull_package.yml
@@ -1,16 +1,18 @@
---
key_path: counts.package_events_i_package_pull_package
-description: ''
-product_section: ''
-product_stage: ''
-product_group: ''
-product_category: ''
+description: A count of packages that have been downloaded from the package registry
+product_section: ops
+product_stage: package
+product_group: group::package
+product_category: package registry
value_type: number
status: data_available
time_frame: all
-data_source: database
+data_source: redis
distribution:
+- ee
- ce
tier:
- free
-skip_validation: true
+- premium
+- ultimate
diff --git a/config/metrics/counts_all/20210216182958_package_events_i_package_pull_package_by_deploy_token.yml b/config/metrics/counts_all/20210216182958_package_events_i_package_pull_package_by_deploy_token.yml
index 1114eb321ca..048286d10bf 100644
--- a/config/metrics/counts_all/20210216182958_package_events_i_package_pull_package_by_deploy_token.yml
+++ b/config/metrics/counts_all/20210216182958_package_events_i_package_pull_package_by_deploy_token.yml
@@ -1,16 +1,18 @@
---
key_path: counts.package_events_i_package_pull_package_by_deploy_token
-description: ''
-product_section: ''
-product_stage: ''
-product_group: ''
-product_category: ''
+description: A count of packages that have been downloaded from the package registry using a Deploy Token
+product_section: ops
+product_stage: package
+product_group: group::package
+product_category: package registry
value_type: number
status: data_available
time_frame: all
-data_source: database
+data_source: redis
distribution:
+- ee
- ce
tier:
- free
-skip_validation: true
+- premium
+- ultimate
diff --git a/config/metrics/counts_all/20210216183000_package_events_i_package_pull_package_by_guest.yml b/config/metrics/counts_all/20210216183000_package_events_i_package_pull_package_by_guest.yml
index f76cac6886b..58e7b47407b 100644
--- a/config/metrics/counts_all/20210216183000_package_events_i_package_pull_package_by_guest.yml
+++ b/config/metrics/counts_all/20210216183000_package_events_i_package_pull_package_by_guest.yml
@@ -1,16 +1,18 @@
---
key_path: counts.package_events_i_package_pull_package_by_guest
-description: ''
-product_section: ''
-product_stage: ''
-product_group: ''
-product_category: ''
+description: A count of packages that have been downloaded from the package registry by a guest
+product_section: ops
+product_stage: package
+product_group: group::package
+product_category: package registry
value_type: number
status: data_available
time_frame: all
-data_source: database
+data_source: redis
distribution:
+- ee
- ce
tier:
- free
-skip_validation: true
+- premium
+- ultimate
diff --git a/config/metrics/counts_all/20210216183002_package_events_i_package_pull_package_by_user.yml b/config/metrics/counts_all/20210216183002_package_events_i_package_pull_package_by_user.yml
index fa4ee39ed81..d7cac5b13f1 100644
--- a/config/metrics/counts_all/20210216183002_package_events_i_package_pull_package_by_user.yml
+++ b/config/metrics/counts_all/20210216183002_package_events_i_package_pull_package_by_user.yml
@@ -1,16 +1,18 @@
---
key_path: counts.package_events_i_package_pull_package_by_user
-description: ''
-product_section: ''
-product_stage: ''
-product_group: ''
-product_category: ''
+description: A count of packages that have been downloaded from the package registry by a user
+product_section: ops
+product_stage: package
+product_group: group::package
+product_category: package registry
value_type: number
status: data_available
time_frame: all
-data_source: database
+data_source: redis
distribution:
+- ee
- ce
tier:
- free
-skip_validation: true
+- premium
+- ultimate
diff --git a/config/metrics/counts_all/20210216183004_package_events_i_package_push_package.yml b/config/metrics/counts_all/20210216183004_package_events_i_package_push_package.yml
index 2905f0fa31a..a4008091a8a 100644
--- a/config/metrics/counts_all/20210216183004_package_events_i_package_push_package.yml
+++ b/config/metrics/counts_all/20210216183004_package_events_i_package_push_package.yml
@@ -1,16 +1,18 @@
---
key_path: counts.package_events_i_package_push_package
-description: ''
-product_section: ''
-product_stage: ''
-product_group: ''
-product_category: ''
+description: A count of packages that have been published to the package registry
+product_section: ops
+product_stage: package
+product_group: group::package
+product_category: package registry
value_type: number
status: data_available
time_frame: all
-data_source: database
+data_source: redis
distribution:
+- ee
- ce
tier:
- free
-skip_validation: true
+- premium
+- ultimate
diff --git a/config/metrics/counts_all/20210216183005_package_events_i_package_push_package_by_deploy_token.yml b/config/metrics/counts_all/20210216183005_package_events_i_package_push_package_by_deploy_token.yml
index 920875186bd..5e4f76b1bad 100644
--- a/config/metrics/counts_all/20210216183005_package_events_i_package_push_package_by_deploy_token.yml
+++ b/config/metrics/counts_all/20210216183005_package_events_i_package_push_package_by_deploy_token.yml
@@ -1,16 +1,18 @@
---
key_path: counts.package_events_i_package_push_package_by_deploy_token
-description: ''
-product_section: ''
-product_stage: ''
-product_group: ''
-product_category: ''
+description: A count of packages that have been published to the package registry using a deploy token
+product_section: ops
+product_stage: package
+product_group: group::package
+product_category: package registry
value_type: number
status: data_available
time_frame: all
-data_source: database
+data_source: redis
distribution:
+- ee
- ce
tier:
- free
-skip_validation: true
+- premium
+- ultimate
diff --git a/config/metrics/counts_all/20210216183007_package_events_i_package_push_package_by_guest.yml b/config/metrics/counts_all/20210216183007_package_events_i_package_push_package_by_guest.yml
index a360e34eaec..6205204cb5a 100644
--- a/config/metrics/counts_all/20210216183007_package_events_i_package_push_package_by_guest.yml
+++ b/config/metrics/counts_all/20210216183007_package_events_i_package_push_package_by_guest.yml
@@ -1,16 +1,18 @@
---
key_path: counts.package_events_i_package_push_package_by_guest
-description: ''
-product_section: ''
-product_stage: ''
-product_group: ''
-product_category: ''
+description: A count of packages that have been published to the package registry by a Guest
+product_section: ops
+product_stage: package
+product_group: group::package
+product_category: package registry
value_type: number
status: data_available
time_frame: all
-data_source: database
+data_source: redis
distribution:
+- ee
- ce
tier:
- free
-skip_validation: true
+- premium
+- ultimate
diff --git a/config/metrics/counts_all/20210216183009_package_events_i_package_push_package_by_user.yml b/config/metrics/counts_all/20210216183009_package_events_i_package_push_package_by_user.yml
index 5fd7d2b3ee3..bb2bac41a08 100644
--- a/config/metrics/counts_all/20210216183009_package_events_i_package_push_package_by_user.yml
+++ b/config/metrics/counts_all/20210216183009_package_events_i_package_push_package_by_user.yml
@@ -1,16 +1,18 @@
---
key_path: counts.package_events_i_package_push_package_by_user
-description: ''
-product_section: ''
-product_stage: ''
-product_group: ''
-product_category: ''
+description: A count of packages that have been published to the package registry by a user
+product_section: ops
+product_stage: package
+product_group: group::package
+product_category: package registry
value_type: number
status: data_available
time_frame: all
-data_source: database
+data_source: redis
distribution:
+- ee
- ce
tier:
- free
-skip_validation: true
+- premium
+- ultimate
diff --git a/config/metrics/counts_all/20210216183011_package_events_i_package_pypi_delete_package.yml b/config/metrics/counts_all/20210216183011_package_events_i_package_pypi_delete_package.yml
index a943cce5ecb..42c579ba3be 100644
--- a/config/metrics/counts_all/20210216183011_package_events_i_package_pypi_delete_package.yml
+++ b/config/metrics/counts_all/20210216183011_package_events_i_package_pypi_delete_package.yml
@@ -1,16 +1,18 @@
---
key_path: counts.package_events_i_package_pypi_delete_package
-description: ''
-product_section: ''
-product_stage: ''
-product_group: ''
-product_category: ''
+description: A count of Python packages that have been deleted from the package registry
+product_section: ops
+product_stage: package
+product_group: group::package
+product_category: package registry
value_type: number
status: data_available
time_frame: all
-data_source: database
+data_source: redis
distribution:
+- ee
- ce
tier:
- free
-skip_validation: true
+- premium
+- ultimate
diff --git a/config/metrics/counts_all/20210216183013_package_events_i_package_pypi_pull_package.yml b/config/metrics/counts_all/20210216183013_package_events_i_package_pypi_pull_package.yml
index a15794a05f1..06b6e8de0b0 100644
--- a/config/metrics/counts_all/20210216183013_package_events_i_package_pypi_pull_package.yml
+++ b/config/metrics/counts_all/20210216183013_package_events_i_package_pypi_pull_package.yml
@@ -1,16 +1,18 @@
---
key_path: counts.package_events_i_package_pypi_pull_package
-description: ''
-product_section: ''
-product_stage: ''
-product_group: ''
-product_category: ''
+description: A count of Python packages that have been downloaded from the package registry
+product_section: ops
+product_stage: package
+product_group: group::package
+product_category: package registry
value_type: number
status: data_available
time_frame: all
-data_source: database
+data_source: redis
distribution:
+- ee
- ce
tier:
- free
-skip_validation: true
+- premium
+- ultimate
diff --git a/config/metrics/counts_all/20210216183015_package_events_i_package_pypi_push_package.yml b/config/metrics/counts_all/20210216183015_package_events_i_package_pypi_push_package.yml
index ea0c217997a..98bd5734c3b 100644
--- a/config/metrics/counts_all/20210216183015_package_events_i_package_pypi_push_package.yml
+++ b/config/metrics/counts_all/20210216183015_package_events_i_package_pypi_push_package.yml
@@ -1,16 +1,18 @@
---
key_path: counts.package_events_i_package_pypi_push_package
-description: ''
-product_section: ''
-product_stage: ''
-product_group: ''
-product_category: ''
+description: A count of Python packages that have been published to the package registry
+product_section: ops
+product_stage: package
+product_group: group::package
+product_category: package registry
value_type: number
status: data_available
time_frame: all
-data_source: database
+data_source: redis
distribution:
+- ee
- ce
tier:
- free
-skip_validation: true
+- premium
+- ultimate
diff --git a/config/metrics/counts_all/20210216183017_package_events_i_package_tag_delete_package.yml b/config/metrics/counts_all/20210216183017_package_events_i_package_tag_delete_package.yml
index c35c455e5d7..963ceae076d 100644
--- a/config/metrics/counts_all/20210216183017_package_events_i_package_tag_delete_package.yml
+++ b/config/metrics/counts_all/20210216183017_package_events_i_package_tag_delete_package.yml
@@ -1,16 +1,18 @@
---
key_path: counts.package_events_i_package_tag_delete_package
-description: ''
-product_section: ''
-product_stage: ''
-product_group: ''
-product_category: ''
+description: A count of package tags that have been deleted from the package registry
+product_section: ops
+product_stage: package
+product_group: group::package
+product_category: package registry
value_type: number
-status: data_available
+status: deprecated
time_frame: all
-data_source: database
+data_source: redis
distribution:
+- ee
- ce
tier:
- free
-skip_validation: true
+- premium
+- ultimate
diff --git a/config/metrics/counts_all/20210216183019_package_events_i_package_tag_pull_package.yml b/config/metrics/counts_all/20210216183019_package_events_i_package_tag_pull_package.yml
index 7b2f0fcca5b..14021b24575 100644
--- a/config/metrics/counts_all/20210216183019_package_events_i_package_tag_pull_package.yml
+++ b/config/metrics/counts_all/20210216183019_package_events_i_package_tag_pull_package.yml
@@ -1,16 +1,18 @@
---
key_path: counts.package_events_i_package_tag_pull_package
-description: ''
-product_section: ''
-product_stage: ''
-product_group: ''
-product_category: ''
+description: A count of package tags that have been downloaded from the package registry
+product_section: ops
+product_stage: package
+product_group: group::package
+product_category: package registry
value_type: number
-status: data_available
+status: deprecated
time_frame: all
-data_source: database
+data_source: redis
distribution:
+- ee
- ce
tier:
- free
-skip_validation: true
+- premium
+- ultimate
diff --git a/config/metrics/counts_all/20210216183021_package_events_i_package_tag_push_package.yml b/config/metrics/counts_all/20210216183021_package_events_i_package_tag_push_package.yml
index 6f5a0bc7a8b..4991ccbd835 100644
--- a/config/metrics/counts_all/20210216183021_package_events_i_package_tag_push_package.yml
+++ b/config/metrics/counts_all/20210216183021_package_events_i_package_tag_push_package.yml
@@ -1,16 +1,18 @@
---
key_path: counts.package_events_i_package_tag_push_package
-description: ''
-product_section: ''
-product_stage: ''
-product_group: ''
-product_category: ''
+description: A count of package tags that have been published to the package registry
+product_section: ops
+product_stage: package
+product_group: group::package
+product_category: package registry
value_type: number
-status: data_available
+status: deprecated
time_frame: all
-data_source: database
+data_source: redis
distribution:
+- ee
- ce
tier:
- free
-skip_validation: true
+- premium
+- ultimate
diff --git a/config/metrics/license/20210216181053_version.yml b/config/metrics/license/20210216181053_version.yml
index 824167c8d97..c267c2e9bca 100644
--- a/config/metrics/license/20210216181053_version.yml
+++ b/config/metrics/license/20210216181053_version.yml
@@ -4,13 +4,15 @@ description: Identifies the version of the external registry being used
product_section: ops
product_stage: package
product_group: group::package
-product_category:
-value_type: string
+product_category: container registry
+value_type: number
status: data_available
time_frame: none
data_source: system
distribution:
+- ee
- ce
tier:
- free
-skip_validation: true
+- premium
+- ultimate
diff --git a/config/metrics/settings/20210204124858_container_registry_enabled.yml b/config/metrics/settings/20210204124858_container_registry_enabled.yml
index d8a47a39912..5cccb84ec10 100644
--- a/config/metrics/settings/20210204124858_container_registry_enabled.yml
+++ b/config/metrics/settings/20210204124858_container_registry_enabled.yml
@@ -1,16 +1,18 @@
---
key_path: container_registry_enabled
-description: Whether container registry is enabled
-product_section: growth
-product_stage: growth
-product_group: group::product intelligence
-product_category: collection
+description: A count of projects where the container registry is enabled
+product_section: ops
+product_stage: package
+product_group: group::package
+product_category: container registry
value_type: boolean
status: data_available
time_frame: none
data_source: system
distribution:
+- ee
- ce
tier:
- free
-skip_validation: true
+- premium
+- ultimate
diff --git a/config/metrics/settings/20210204124900_dependency_proxy_enabled.yml b/config/metrics/settings/20210204124900_dependency_proxy_enabled.yml
index f7aa195f284..f06b89477a4 100644
--- a/config/metrics/settings/20210204124900_dependency_proxy_enabled.yml
+++ b/config/metrics/settings/20210204124900_dependency_proxy_enabled.yml
@@ -1,16 +1,18 @@
---
key_path: dependency_proxy_enabled
-description: Whether dependency proxy is enabled
-product_section: growth
-product_stage: growth
-product_group: group::product intelligence
-product_category: collection
+description: A count of projects where the dependency proxy is enabled
+product_section: ops
+product_stage: package
+product_group: group::package
+product_category: container registry
value_type: boolean
status: data_available
time_frame: none
data_source: system
distribution:
+- ee
- ce
tier:
- free
-skip_validation: true
+- premium
+- ultimate
diff --git a/doc/api/graphql/reference/index.md b/doc/api/graphql/reference/index.md
index f3055a5b068..01eb7ef2514 100644
--- a/doc/api/graphql/reference/index.md
+++ b/doc/api/graphql/reference/index.md
@@ -9992,7 +9992,8 @@ Maven metadata.
| <a id="mergerequestmergecommitsha"></a>`mergeCommitSha` | [`String`](#string) | SHA of the merge request commit (set once merged). |
| <a id="mergerequestmergeerror"></a>`mergeError` | [`String`](#string) | Error message due to a merge error. |
| <a id="mergerequestmergeongoing"></a>`mergeOngoing` | [`Boolean!`](#boolean) | Indicates if a merge is currently occurring. |
-| <a id="mergerequestmergestatus"></a>`mergeStatus` | [`String`](#string) | Status of the merge request. |
+| <a id="mergerequestmergestatus"></a>`mergeStatus` **{warning-solid}** | [`String`](#string) | **Deprecated** in 14.0. This was renamed. Use: [`MergeRequest.mergeStatusEnum`](#mergerequestmergestatusenum). |
+| <a id="mergerequestmergestatusenum"></a>`mergeStatusEnum` | [`MergeStatus`](#mergestatus) | Merge status of the merge request. |
| <a id="mergerequestmergetrainscount"></a>`mergeTrainsCount` | [`Int`](#int) | Number of merge requests in the merge train. |
| <a id="mergerequestmergeuser"></a>`mergeUser` | [`UserCore`](#usercore) | User who merged this merge request. |
| <a id="mergerequestmergewhenpipelinesucceeds"></a>`mergeWhenPipelineSucceeds` | [`Boolean`](#boolean) | Indicates if the merge has been set to be merged when its pipeline succeeds (MWPS). |
@@ -14425,6 +14426,18 @@ State of a GitLab merge request.
| <a id="mergerequeststatemerged"></a>`merged` | Merge request has been merged. |
| <a id="mergerequeststateopened"></a>`opened` | In open state. |
+### `MergeStatus`
+
+Representation of whether a GitLab merge request can be merged.
+
+| Value | Description |
+| ----- | ----------- |
+| <a id="mergestatuscannot_be_merged"></a>`CANNOT_BE_MERGED` | There are conflicts between the source and target branches. |
+| <a id="mergestatuscannot_be_merged_recheck"></a>`CANNOT_BE_MERGED_RECHECK` | Currently unchecked. The previous state was `CANNOT_BE_MERGED`. |
+| <a id="mergestatuscan_be_merged"></a>`CAN_BE_MERGED` | There are no conflicts between the source and target branches. |
+| <a id="mergestatuschecking"></a>`CHECKING` | Currently checking for mergeability. |
+| <a id="mergestatusunchecked"></a>`UNCHECKED` | Merge status has not been checked. |
+
### `MergeStrategyEnum`
| Value | Description |
diff --git a/doc/api/merge_requests.md b/doc/api/merge_requests.md
index c4cb7753fc9..fd5da7d9180 100644
--- a/doc/api/merge_requests.md
+++ b/doc/api/merge_requests.md
@@ -405,6 +405,16 @@ Parameters:
]
```
+The `merge_status` field may hold one of the following values:
+
+| Value | Interpretation |
+|----------------------------|-----------------------------------------------------------------------|
+| `unchecked` | We have not checked this yet |
+| `checking` | We are currently checking if the merge request can be merged |
+| `can_be_merged` | This merge request can be merged without conflict |
+| `cannot_be_merged` | There are merge conflicts between the source and target branches |
+| `cannot_be_merged_recheck` | Currently unchecked. Before the current changes, there were conflicts |
+
Users on GitLab Premium or higher also see
the `approvals_before_merge` parameter:
diff --git a/doc/api/repositories.md b/doc/api/repositories.md
index 857cd3883c8..1868f33373c 100644
--- a/doc/api/repositories.md
+++ b/doc/api/repositories.md
@@ -311,6 +311,11 @@ Supported attributes:
| `file` | string | no | The file to commit the changes to, defaults to `CHANGELOG.md`. |
| `message` | string | no | The commit message to produce when committing the changes, defaults to `Add changelog for version X` where X is the value of the `version` argument. |
+WARNING:
+GitLab treats trailers case-sensitively. If you set the `trailer` field to
+`Example`, GitLab _won't_ include commits that use the trailer `example`,
+`eXaMpLE`, or anything else that isn't _exactly_ `Example`.
+
If the `from` attribute is unspecified, GitLab uses the Git tag of the last
stable version that came before the version specified in the `version`
attribute. This requires that Git tag names follow a specific format, allowing
diff --git a/doc/development/snowplow/index.md b/doc/development/snowplow/index.md
index 31ede1f9ab3..da056a87b60 100644
--- a/doc/development/snowplow/index.md
+++ b/doc/development/snowplow/index.md
@@ -204,7 +204,7 @@ Below is a list of supported `data-track-*` attributes:
| `data-track-action` | true | Action the user is taking. Clicks must be prepended with `click` and activations must be prepended with `activate`. For example, focusing a form field would be `activate_form_input` and clicking a button would be `click_button`. Replaces `data-track-event`, which was [deprecated](https://gitlab.com/gitlab-org/gitlab/-/issues/290962) in GitLab 13.11. |
| `data-track-label` | false | The `label` as described in our [Structured event taxonomy](#structured-event-taxonomy). |
| `data-track-property` | false | The `property` as described in our [Structured event taxonomy](#structured-event-taxonomy). |
-| `data-track-value` | false | The `value` as described in our [Structured event taxonomy](#structured-event-taxonomy). If omitted, this is the element's `value` property or an empty string. For checkboxes, the default value is the element's checked attribute or `false` when unchecked. |
+| `data-track-value` | false | The `value` as described in our [Structured event taxonomy](#structured-event-taxonomy). If omitted, this is the element's `value` property or `undefined`. For checkboxes, the default value is the element's checked attribute or `0` when unchecked. |
| `data-track-extra` | false | A key-value pairs object passed as a valid JSON string. This is added to the `extra` property in our [`gitlab_standard`](#gitlab_standard) schema. |
| `data-track-context` | false | The `context` as described in our [Structured event taxonomy](#structured-event-taxonomy). |
@@ -369,7 +369,7 @@ button.addEventListener('click', () => {
property: 'template_preview',
extra: {
templateVariant: 'primary',
- valid: true,
+ valid: 1,
},
});
});
diff --git a/doc/development/usage_ping/dictionary.md b/doc/development/usage_ping/dictionary.md
index 518b2643d1e..4e46c34c63f 100644
--- a/doc/development/usage_ping/dictionary.md
+++ b/doc/development/usage_ping/dictionary.md
@@ -372,15 +372,15 @@ Tiers: `free`
### `container_registry_enabled`
-Whether container registry is enabled
+A count of projects where the container registry is enabled
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/settings/20210204124858_container_registry_enabled.yml)
-Group: `group::product intelligence`
+Group: `group::package`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `container_registry_server.vendor`
@@ -392,7 +392,7 @@ Group: `group::package`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `container_registry_server.version`
@@ -404,7 +404,7 @@ Group: `group::package`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `counts.alert_bot_incident_issues`
@@ -3280,7 +3280,7 @@ Missing description
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_all/20210216181009_lfs_objects.yml)
-Group: `group::package`
+Group: `group::create`
Status: `data_available`
@@ -3456,267 +3456,267 @@ Tiers: `free`, `premium`, `ultimate`
### `counts.package_events_i_package_composer_delete_package`
-Missing description
+A count of Composer packages that have been deleted
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_all/20210216182855_package_events_i_package_composer_delete_package.yml)
-Group: ``
+Group: `group::package`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `counts.package_events_i_package_composer_pull_package`
-Missing description
+A count of Composer packages that have been downloaded
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_all/20210216182857_package_events_i_package_composer_pull_package.yml)
-Group: ``
+Group: `group::package`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `counts.package_events_i_package_composer_push_package`
-Missing description
+A count of Composer packages that have been published
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_all/20210216182859_package_events_i_package_composer_push_package.yml)
-Group: ``
+Group: `group::package`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `counts.package_events_i_package_conan_delete_package`
-Missing description
+A count of Conan packages that have been deleted
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_all/20210216182901_package_events_i_package_conan_delete_package.yml)
-Group: ``
+Group: `group::package`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `counts.package_events_i_package_conan_pull_package`
-Missing description
+A count of Conan packages that have been downloaded
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_all/20210216182903_package_events_i_package_conan_pull_package.yml)
-Group: ``
+Group: `group::package`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `counts.package_events_i_package_conan_push_package`
-Missing description
+A count of Conan packages that have been published
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_all/20210216182905_package_events_i_package_conan_push_package.yml)
-Group: ``
+Group: `group::package`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `counts.package_events_i_package_container_delete_package`
-Missing description
+A count of container images that have been deleted
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_all/20210216182907_package_events_i_package_container_delete_package.yml)
-Group: ``
+Group: `group::package`
-Status: `data_available`
+Status: `deprecated`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `counts.package_events_i_package_container_pull_package`
-Missing description
+A count of container images that have been downloaded
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_all/20210216182909_package_events_i_package_container_pull_package.yml)
-Group: ``
+Group: `group::package`
-Status: `data_available`
+Status: `deprecated`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `counts.package_events_i_package_container_push_package`
-Missing description
+A count of container images that have been published
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_all/20210216182911_package_events_i_package_container_push_package.yml)
-Group: ``
+Group: `group::package`
-Status: `data_available`
+Status: `deprecated`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `counts.package_events_i_package_debian_delete_package`
-Missing description
+A count of Debian packages that have been deleted
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_all/20210216182913_package_events_i_package_debian_delete_package.yml)
-Group: ``
+Group: `group::package`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `counts.package_events_i_package_debian_pull_package`
-Missing description
+A count of Debian packages that have been downloaded
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_all/20210216182915_package_events_i_package_debian_pull_package.yml)
-Group: ``
+Group: `group::package`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `counts.package_events_i_package_debian_push_package`
-Missing description
+A count of Debian packages that have been published
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_all/20210216182917_package_events_i_package_debian_push_package.yml)
-Group: ``
+Group: `group::package`
-Status: `data_available`
+Status: `deprecated`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `counts.package_events_i_package_delete_package`
-Missing description
+A count of packages that have been deleted
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_all/20210216182919_package_events_i_package_delete_package.yml)
-Group: ``
+Group: `group::package`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `counts.package_events_i_package_delete_package_by_deploy_token`
-Missing description
+A count of packages that have been deleted using a Deploy Token
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_all/20210216182921_package_events_i_package_delete_package_by_deploy_token.yml)
-Group: ``
+Group: `group::package`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `counts.package_events_i_package_delete_package_by_guest`
-Missing description
+A count of packages that have been deleted using a Guest
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_all/20210216182923_package_events_i_package_delete_package_by_guest.yml)
-Group: ``
+Group: `group::package`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `counts.package_events_i_package_delete_package_by_user`
-Missing description
+A count of packages that have been deleted using a logged in user
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_all/20210216182925_package_events_i_package_delete_package_by_user.yml)
-Group: ``
+Group: `group::package`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `counts.package_events_i_package_generic_delete_package`
-Missing description
+A count of generic packages that have been deleted
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_all/20210216182927_package_events_i_package_generic_delete_package.yml)
-Group: ``
+Group: `group::package`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `counts.package_events_i_package_generic_pull_package`
-Missing description
+A count of generic packages that have been downloaded
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_all/20210216182929_package_events_i_package_generic_pull_package.yml)
-Group: ``
+Group: `group::package`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `counts.package_events_i_package_generic_push_package`
-Missing description
+A count of generic packages that have been published
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_all/20210216182931_package_events_i_package_generic_push_package.yml)
-Group: ``
+Group: `group::package`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `counts.package_events_i_package_golang_delete_package`
-Missing description
+A count of Go modules that have been deleted
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_all/20210216182933_package_events_i_package_golang_delete_package.yml)
-Group: ``
+Group: `group::package`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `counts.package_events_i_package_golang_pull_package`
-Missing description
+A count of Go modules that have been downloaded
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_all/20210216182934_package_events_i_package_golang_pull_package.yml)
-Group: ``
+Group: `group::package`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `counts.package_events_i_package_golang_push_package`
-Missing description
+A count of Go modules that have been published
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_all/20210216182936_package_events_i_package_golang_push_package.yml)
-Group: ``
+Group: `group::package`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `counts.package_events_i_package_helm_pull_package`
@@ -3732,243 +3732,243 @@ Tiers: `free`, `premium`, `ultimate`
### `counts.package_events_i_package_maven_delete_package`
-Missing description
+A count of Maven packages that have been deleted
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_all/20210216182938_package_events_i_package_maven_delete_package.yml)
-Group: ``
+Group: `group::package`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `counts.package_events_i_package_maven_pull_package`
-Missing description
+A count of Maven packages that have been downloaded
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_all/20210216182940_package_events_i_package_maven_pull_package.yml)
-Group: ``
+Group: `group::package`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `counts.package_events_i_package_maven_push_package`
-Missing description
+A count of Maven packages that have been published
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_all/20210216182942_package_events_i_package_maven_push_package.yml)
-Group: ``
+Group: `group::package`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `counts.package_events_i_package_npm_delete_package`
-Missing description
+A count of npm packages that have been deleted
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_all/20210216182944_package_events_i_package_npm_delete_package.yml)
-Group: ``
+Group: `group::package`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `counts.package_events_i_package_npm_pull_package`
-Missing description
+A count of npm packages that have been downloaded
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_all/20210216182946_package_events_i_package_npm_pull_package.yml)
-Group: ``
+Group: `group::package`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `counts.package_events_i_package_npm_push_package`
-Missing description
+A count of npm packages that have been published
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_all/20210216182948_package_events_i_package_npm_push_package.yml)
-Group: ``
+Group: `group::package`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `counts.package_events_i_package_nuget_delete_package`
-Missing description
+A count of NuGet packages that have been deleted
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_all/20210216182950_package_events_i_package_nuget_delete_package.yml)
-Group: ``
+Group: `group::package`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `counts.package_events_i_package_nuget_pull_package`
-Missing description
+A count of NuGet packages that have been downloaded
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_all/20210216182952_package_events_i_package_nuget_pull_package.yml)
-Group: ``
+Group: `group::package`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `counts.package_events_i_package_nuget_push_package`
-Missing description
+A count of NuGet packages that have been published
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_all/20210216182954_package_events_i_package_nuget_push_package.yml)
-Group: ``
+Group: `group::package`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `counts.package_events_i_package_pull_package`
-Missing description
+A count of packages that have been downloaded from the package registry
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_all/20210216182956_package_events_i_package_pull_package.yml)
-Group: ``
+Group: `group::package`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `counts.package_events_i_package_pull_package_by_deploy_token`
-Missing description
+A count of packages that have been downloaded from the package registry using a Deploy Token
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_all/20210216182958_package_events_i_package_pull_package_by_deploy_token.yml)
-Group: ``
+Group: `group::package`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `counts.package_events_i_package_pull_package_by_guest`
-Missing description
+A count of packages that have been downloaded from the package registry by a guest
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_all/20210216183000_package_events_i_package_pull_package_by_guest.yml)
-Group: ``
+Group: `group::package`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `counts.package_events_i_package_pull_package_by_user`
-Missing description
+A count of packages that have been downloaded from the package registry by a user
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_all/20210216183002_package_events_i_package_pull_package_by_user.yml)
-Group: ``
+Group: `group::package`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `counts.package_events_i_package_push_package`
-Missing description
+A count of packages that have been published to the package registry
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_all/20210216183004_package_events_i_package_push_package.yml)
-Group: ``
+Group: `group::package`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `counts.package_events_i_package_push_package_by_deploy_token`
-Missing description
+A count of packages that have been published to the package registry using a deploy token
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_all/20210216183005_package_events_i_package_push_package_by_deploy_token.yml)
-Group: ``
+Group: `group::package`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `counts.package_events_i_package_push_package_by_guest`
-Missing description
+A count of packages that have been published to the package registry by a Guest
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_all/20210216183007_package_events_i_package_push_package_by_guest.yml)
-Group: ``
+Group: `group::package`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `counts.package_events_i_package_push_package_by_user`
-Missing description
+A count of packages that have been published to the package registry by a user
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_all/20210216183009_package_events_i_package_push_package_by_user.yml)
-Group: ``
+Group: `group::package`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `counts.package_events_i_package_pypi_delete_package`
-Missing description
+A count of Python packages that have been deleted from the package registry
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_all/20210216183011_package_events_i_package_pypi_delete_package.yml)
-Group: ``
+Group: `group::package`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `counts.package_events_i_package_pypi_pull_package`
-Missing description
+A count of Python packages that have been downloaded from the package registry
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_all/20210216183013_package_events_i_package_pypi_pull_package.yml)
-Group: ``
+Group: `group::package`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `counts.package_events_i_package_pypi_push_package`
-Missing description
+A count of Python packages that have been published to the package registry
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_all/20210216183015_package_events_i_package_pypi_push_package.yml)
-Group: ``
+Group: `group::package`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `counts.package_events_i_package_rubygems_delete_package`
@@ -4008,39 +4008,39 @@ Tiers: `free`, `premium`, `ultimate`
### `counts.package_events_i_package_tag_delete_package`
-Missing description
+A count of package tags that have been deleted from the package registry
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_all/20210216183017_package_events_i_package_tag_delete_package.yml)
-Group: ``
+Group: `group::package`
-Status: `data_available`
+Status: `deprecated`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `counts.package_events_i_package_tag_pull_package`
-Missing description
+A count of package tags that have been downloaded from the package registry
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_all/20210216183019_package_events_i_package_tag_pull_package.yml)
-Group: ``
+Group: `group::package`
-Status: `data_available`
+Status: `deprecated`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `counts.package_events_i_package_tag_push_package`
-Missing description
+A count of package tags that have been published to the package registry
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_all/20210216183021_package_events_i_package_tag_push_package.yml)
-Group: ``
+Group: `group::package`
-Status: `data_available`
+Status: `deprecated`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `counts.package_events_i_package_terraform_module_delete_package`
@@ -4080,7 +4080,7 @@ Tiers: `free`, `premium`, `ultimate`
### `counts.packages`
-Number of packages
+The total number of packages published to the registry
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_all/20210216181012_packages.yml)
@@ -4088,7 +4088,7 @@ Group: `group::package`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `counts.pages_domains`
@@ -5256,7 +5256,7 @@ Tiers: `free`, `premium`, `ultimate`
### `counts.projects_with_expiration_policy_disabled`
-Missing description
+The number of projects with cleanup policy for tags turned off
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_all/20210216181014_projects_with_expiration_policy_disabled.yml)
@@ -5264,11 +5264,11 @@ Group: `group::package`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `counts.projects_with_expiration_policy_enabled`
-Missing description
+A count of projects with the cleanup policy for tags turned on
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_all/20210216181016_projects_with_expiration_policy_enabled.yml)
@@ -5276,11 +5276,11 @@ Group: `group::package`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `counts.projects_with_expiration_policy_enabled_with_cadence_set_to_14d`
-Missing description
+A count of projects with the cleanup policy set to run every 14 days
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_all/20210216181033_projects_with_expiration_policy_enabled_with_cadence_set_to_14d.yml)
@@ -5288,11 +5288,11 @@ Group: `group::package`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `counts.projects_with_expiration_policy_enabled_with_cadence_set_to_1d`
-Missing description
+A count of projects with the cleanup policy set to run every day
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_all/20210216181029_projects_with_expiration_policy_enabled_with_cadence_set_to_1d.yml)
@@ -5300,11 +5300,11 @@ Group: `group::package`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `counts.projects_with_expiration_policy_enabled_with_cadence_set_to_1month`
-Missing description
+A count of projects with the cleanup policy set to run monthly
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_all/20210216181035_projects_with_expiration_policy_enabled_with_cadence_set_to_1month.yml)
@@ -5312,11 +5312,11 @@ Group: `group::package`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `counts.projects_with_expiration_policy_enabled_with_cadence_set_to_3month`
-Missing description
+A count of projects with the cleanup policy set to run every 3 months
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_all/20210216181037_projects_with_expiration_policy_enabled_with_cadence_set_to_3month.yml)
@@ -5324,11 +5324,11 @@ Group: `group::package`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `counts.projects_with_expiration_policy_enabled_with_cadence_set_to_7d`
-Missing description
+A count of projects with the cleanup policy set to run every 7 days
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_all/20210216181031_projects_with_expiration_policy_enabled_with_cadence_set_to_7d.yml)
@@ -5336,95 +5336,95 @@ Group: `group::package`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `counts.projects_with_expiration_policy_enabled_with_keep_n_set_to_1`
-Missing description
+A count of projects with the cleanup policy set to keep 1 tag
-[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_all/20210216181018_projects_with_expiration_policy_enabled_with_keep_n_set_to_1.yml)
+[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_all/20210216181018_projects_with_expiration_policy_enabled_with_keep_n_set_to_1.yml)
Group: `group::package`
Status: `data_available`
-Tiers:
+Tiers: `free`, `premium`, `ultimate`
### `counts.projects_with_expiration_policy_enabled_with_keep_n_set_to_10`
-Missing description
+A count of projects with the cleanup policy set to keep 10 tags
-[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_all/20210216181022_projects_with_expiration_policy_enabled_with_keep_n_set_to_10.yml)
+[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_all/20210216181022_projects_with_expiration_policy_enabled_with_keep_n_set_to_10.yml)
Group: `group::package`
Status: `data_available`
-Tiers:
+Tiers: `free`, `premium`, `ultimate`
### `counts.projects_with_expiration_policy_enabled_with_keep_n_set_to_100`
-Missing description
+A count of projects with the cleanup policy set to keep 100 tags
-[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_all/20210216181027_projects_with_expiration_policy_enabled_with_keep_n_set_to_100.yml)
+[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_all/20210216181027_projects_with_expiration_policy_enabled_with_keep_n_set_to_100.yml)
Group: `group::package`
Status: `data_available`
-Tiers:
+Tiers: `free`, `premium`, `ultimate`
### `counts.projects_with_expiration_policy_enabled_with_keep_n_set_to_25`
-Missing description
+A count of projects with the cleanup policy set to keep 25 tags
-[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_all/20210216181024_projects_with_expiration_policy_enabled_with_keep_n_set_to_25.yml)
+[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_all/20210216181024_projects_with_expiration_policy_enabled_with_keep_n_set_to_25.yml)
Group: `group::package`
Status: `data_available`
-Tiers:
+Tiers: `free`, `premium`, `ultimate`
### `counts.projects_with_expiration_policy_enabled_with_keep_n_set_to_5`
-Missing description
+A count of projects with the cleanup policy set to keep 5 tags
-[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_all/20210216181020_projects_with_expiration_policy_enabled_with_keep_n_set_to_5.yml)
+[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_all/20210216181020_projects_with_expiration_policy_enabled_with_keep_n_set_to_5.yml)
Group: `group::package`
Status: `data_available`
-Tiers:
+Tiers: `free`, `premium`, `ultimate`
### `counts.projects_with_expiration_policy_enabled_with_keep_n_set_to_50`
-Missing description
+A count of projects with the cleanup policy set to keep 50 tags
-[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_all/20210216181025_projects_with_expiration_policy_enabled_with_keep_n_set_to_50.yml)
+[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_all/20210216181025_projects_with_expiration_policy_enabled_with_keep_n_set_to_50.yml)
Group: `group::package`
Status: `data_available`
-Tiers:
+Tiers: `free`, `premium`, `ultimate`
### `counts.projects_with_expiration_policy_enabled_with_keep_n_unset`
-Missing description
+A count of projects with the cleanup policy with the number of tags to keep unset
-[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_all/20210216181046_projects_with_expiration_policy_enabled_with_keep_n_unset.yml)
+[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_all/20210216181046_projects_with_expiration_policy_enabled_with_keep_n_unset.yml)
Group: `group::package`
Status: `data_available`
-Tiers:
+Tiers: `free`, `premium`, `ultimate`
### `counts.projects_with_expiration_policy_enabled_with_older_than_set_to_14d`
-Missing description
+A count of projects with the cleanup policy set delete tags older than 14 days
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_all/20210216181040_projects_with_expiration_policy_enabled_with_older_than_set_to_14d.yml)
@@ -5432,11 +5432,11 @@ Group: `group::package`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `counts.projects_with_expiration_policy_enabled_with_older_than_set_to_30d`
-Missing description
+A count of projects with the cleanup policy set delete tags older than 30 days
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_all/20210216181042_projects_with_expiration_policy_enabled_with_older_than_set_to_30d.yml)
@@ -5444,11 +5444,11 @@ Group: `group::package`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `counts.projects_with_expiration_policy_enabled_with_older_than_set_to_7d`
-Missing description
+A count of projects with the cleanup policy set delete tags older than 7 days
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_all/20210216181038_projects_with_expiration_policy_enabled_with_older_than_set_to_7d.yml)
@@ -5456,11 +5456,11 @@ Group: `group::package`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `counts.projects_with_expiration_policy_enabled_with_older_than_set_to_90d`
-Missing description
+A count of projects with the cleanup policy set delete tags older than 90 days
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_all/20210216181044_projects_with_expiration_policy_enabled_with_older_than_set_to_90d.yml)
@@ -5468,11 +5468,11 @@ Group: `group::package`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `counts.projects_with_expiration_policy_enabled_with_older_than_unset`
-Missing description
+A count of projects with the cleanup policy with the number of tags to delete unset
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_all/20210216181048_projects_with_expiration_policy_enabled_with_older_than_unset.yml)
@@ -5480,11 +5480,11 @@ Group: `group::package`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `counts.projects_with_packages`
-Projects with package registry configured
+Projects with package registry enabled
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_all/20210216181011_projects_with_packages.yml)
@@ -5492,7 +5492,7 @@ Group: `group::package`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `counts.projects_with_prometheus_alerts`
@@ -6696,7 +6696,7 @@ Tiers: `free`
### `counts_monthly.packages`
-Monthly count of Packages
+A monthly count of packages published to the registry
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_28d/20210216181050_packages.yml)
@@ -6704,7 +6704,7 @@ Group: `group::package`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `counts_monthly.personal_snippets`
@@ -6924,15 +6924,15 @@ Tiers: `free`, `premium`, `ultimate`
### `dependency_proxy_enabled`
-Whether dependency proxy is enabled
+A count of projects where the dependency proxy is enabled
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/settings/20210204124900_dependency_proxy_enabled.yml)
-Group: `group::product intelligence`
+Group: `group::package`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `edition`
@@ -10044,171 +10044,171 @@ Tiers:
### `redis_hll_counters.deploy_token_packages.deploy_token_packages_total_unique_counts_monthly`
-Missing description
+A monthly count of packages published to the registry using a deploy token
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_28d/20210216184850_deploy_token_packages_total_unique_counts_monthly.yml)
-Group: ``
+Group: `group::package`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.deploy_token_packages.deploy_token_packages_total_unique_counts_weekly`
-Missing description
+A weekly count of packages published to the registry using a deploy token
-[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_7d/20210216184848_deploy_token_packages_total_unique_counts_weekly.yml)
+[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_7d/20210216184848_deploy_token_packages_total_unique_counts_weekly.yml)
-Group: ``
+Group: `group::package`
Status: `data_available`
-Tiers:
+Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.deploy_token_packages.i_package_composer_deploy_token_monthly`
-Missing description
+A monthly count of Composer packages published to the registry using a deploy token
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_28d/20210216184806_i_package_composer_deploy_token_monthly.yml)
-Group: ``
+Group: `group::package`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.deploy_token_packages.i_package_composer_deploy_token_weekly`
-Missing description
+A weekly count of Composer packages published to the registry using a deploy token
-[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_7d/20210216184805_i_package_composer_deploy_token_weekly.yml)
+[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_7d/20210216184805_i_package_composer_deploy_token_weekly.yml)
-Group: ``
+Group: `group::package`
-Status: `data_available`
+Status: `deprecated`
-Tiers:
+Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.deploy_token_packages.i_package_conan_deploy_token_monthly`
-Missing description
+A monthly count of Conan packages published to the registry using a deploy token
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_28d/20210216184810_i_package_conan_deploy_token_monthly.yml)
-Group: ``
+Group: `group::package`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.deploy_token_packages.i_package_conan_deploy_token_weekly`
-Missing description
+A weekly count of Conan packages published to the registry using a deploy token
-[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_7d/20210216184808_i_package_conan_deploy_token_weekly.yml)
+[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_7d/20210216184808_i_package_conan_deploy_token_weekly.yml)
-Group: ``
+Group: `group::package`
Status: `data_available`
-Tiers:
+Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.deploy_token_packages.i_package_container_deploy_token_monthly`
-Missing description
+A monthly count of container images published to the registry using a deploy token
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_28d/20210216184814_i_package_container_deploy_token_monthly.yml)
-Group: ``
+Group: `group::package`
-Status: `data_available`
+Status: `deprecated`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.deploy_token_packages.i_package_container_deploy_token_weekly`
-Missing description
+A weekly count of container images published to the registry using a deploy token
-[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_7d/20210216184812_i_package_container_deploy_token_weekly.yml)
+[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_7d/20210216184812_i_package_container_deploy_token_weekly.yml)
-Group: ``
+Group: `group::package`
-Status: `data_available`
+Status: `deprecated`
-Tiers:
+Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.deploy_token_packages.i_package_debian_deploy_token_monthly`
-Missing description
+A monthly count of Debian packages published to the registry using a deploy token
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_28d/20210216184818_i_package_debian_deploy_token_monthly.yml)
-Group: ``
+Group: `group::package`
-Status: `data_available`
+Status: `deprecated`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.deploy_token_packages.i_package_debian_deploy_token_weekly`
-Missing description
+A weekly count of Debian packages published to the registry using a deploy token
-[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_7d/20210216184816_i_package_debian_deploy_token_weekly.yml)
+[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_7d/20210216184816_i_package_debian_deploy_token_weekly.yml)
-Group: ``
+Group: `group::package`
-Status: `data_available`
+Status: `deprecated`
-Tiers:
+Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.deploy_token_packages.i_package_generic_deploy_token_monthly`
-Missing description
+A monthly count of generic packages published to the registry using a deploy token
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_28d/20210216184822_i_package_generic_deploy_token_monthly.yml)
-Group: ``
+Group: `group::package`
-Status: `data_available`
+Status: `broken`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.deploy_token_packages.i_package_generic_deploy_token_weekly`
-Missing description
+A weekly count of generic packages published to the registry using a deploy token
-[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_7d/20210216184820_i_package_generic_deploy_token_weekly.yml)
+[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_7d/20210216184820_i_package_generic_deploy_token_weekly.yml)
-Group: ``
+Group: `group::package`
Status: `data_available`
-Tiers:
+Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.deploy_token_packages.i_package_golang_deploy_token_monthly`
-Missing description
+A monthly count of Go modules published to the registry using a deploy token
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_28d/20210216184826_i_package_golang_deploy_token_monthly.yml)
-Group: ``
+Group: `group::package`
-Status: `data_available`
+Status: `deprecated`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.deploy_token_packages.i_package_golang_deploy_token_weekly`
-Missing description
+A weekly count of Go modules published to the registry using a deploy token
-[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_7d/20210216184824_i_package_golang_deploy_token_weekly.yml)
+[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_7d/20210216184824_i_package_golang_deploy_token_weekly.yml)
-Group: ``
+Group: `group::package`
-Status: `data_available`
+Status: `deprecated`
-Tiers:
+Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.deploy_token_packages.i_package_helm_deploy_token_monthly`
@@ -10236,103 +10236,103 @@ Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.deploy_token_packages.i_package_maven_deploy_token_monthly`
-Missing description
+A monthly count of Maven packages published to the registry using a deploy token
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_28d/20210216184830_i_package_maven_deploy_token_monthly.yml)
-Group: ``
+Group: `group::package`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.deploy_token_packages.i_package_maven_deploy_token_weekly`
-Missing description
+A weekly count of Maven packages published to the registry using a deploy token
-[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_7d/20210216184828_i_package_maven_deploy_token_weekly.yml)
+[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_7d/20210216184828_i_package_maven_deploy_token_weekly.yml)
-Group: ``
+Group: `group::package`
Status: `data_available`
-Tiers:
+Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.deploy_token_packages.i_package_npm_deploy_token_monthly`
-Missing description
+A monthly count of npm packages published to the registry using a deploy token
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_28d/20210216184834_i_package_npm_deploy_token_monthly.yml)
-Group: ``
+Group: `group::package`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.deploy_token_packages.i_package_npm_deploy_token_weekly`
-Missing description
+A weekly count of npm packages published to the registry using a deploy token
-[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_7d/20210216184832_i_package_npm_deploy_token_weekly.yml)
+[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_7d/20210216184832_i_package_npm_deploy_token_weekly.yml)
-Group: ``
+Group: `group::package`
Status: `data_available`
-Tiers:
+Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.deploy_token_packages.i_package_nuget_deploy_token_monthly`
-Missing description
+A monthly count of NuGet packages published to the registry using a deploy token
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_28d/20210216184838_i_package_nuget_deploy_token_monthly.yml)
-Group: ``
+Group: `group::package`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.deploy_token_packages.i_package_nuget_deploy_token_weekly`
-Missing description
+A weekly count of NuGet packages published to the registry using a deploy token
-[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_7d/20210216184836_i_package_nuget_deploy_token_weekly.yml)
+[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_7d/20210216184836_i_package_nuget_deploy_token_weekly.yml)
-Group: ``
+Group: `group::package`
Status: `data_available`
-Tiers:
+Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.deploy_token_packages.i_package_pypi_deploy_token_monthly`
-Missing description
+A monthly count of PyPI packages published to the registry using a deploy token
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_28d/20210216184842_i_package_pypi_deploy_token_monthly.yml)
-Group: ``
+Group: `group::package`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.deploy_token_packages.i_package_pypi_deploy_token_weekly`
-Missing description
+A weekly count of Python packages published to the registry using a deploy token
-[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_7d/20210216184840_i_package_pypi_deploy_token_weekly.yml)
+[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_7d/20210216184840_i_package_pypi_deploy_token_weekly.yml)
-Group: ``
+Group: `group::package`
Status: `data_available`
-Tiers:
+Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.deploy_token_packages.i_package_rubygems_deploy_token_monthly`
-Distinct user count events for RubyGems packages in recent 28 days
+Distinct count events for RubyGems packages published using a Deploy token in recent 28 days
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_28d/20210303154626_i_package_rubygems_deploy_token_monthly.yml)
@@ -10344,7 +10344,7 @@ Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.deploy_token_packages.i_package_rubygems_deploy_token_weekly`
-Distinct RubyGems pakages deployed in recent 7 days
+A weekly count of distinct RubyGems packages published using a deploy token
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_7d/20210303154624_i_package_rubygems_deploy_token_weekly.yml)
@@ -10356,27 +10356,27 @@ Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.deploy_token_packages.i_package_tag_deploy_token_monthly`
-Missing description
+A monthly count of package tags published to the registry using a deploy token
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_28d/20210216184846_i_package_tag_deploy_token_monthly.yml)
-Group: ``
+Group: `group::package`
-Status: `data_available`
+Status: `deprecated`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.deploy_token_packages.i_package_tag_deploy_token_weekly`
-Missing description
+A weekly count of users that have published a package tag to the registry using a deploy token
-[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_7d/20210216184844_i_package_tag_deploy_token_weekly.yml)
+[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_7d/20210216184844_i_package_tag_deploy_token_weekly.yml)
-Group: ``
+Group: `group::package`
-Status: `data_available`
+Status: `deprecated`
-Tiers:
+Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.deploy_token_packages.i_package_terraform_module_deploy_token_monthly`
@@ -15180,147 +15180,147 @@ Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.user_packages.i_package_composer_user_monthly`
-Missing description
+A monthly count of users that have published a Composer package to the registry
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_28d/20210216184854_i_package_composer_user_monthly.yml)
-Group: ``
+Group: `group::package`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.user_packages.i_package_composer_user_weekly`
-Missing description
+A weekly count of users that have published a Composer package to the registry
-[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_7d/20210216184852_i_package_composer_user_weekly.yml)
+[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_7d/20210216184852_i_package_composer_user_weekly.yml)
-Group: ``
+Group: `group::package`
Status: `data_available`
-Tiers:
+Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.user_packages.i_package_conan_user_monthly`
-Missing description
+A monthly count of users that have published a Conan package to the registry
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_28d/20210216184858_i_package_conan_user_monthly.yml)
-Group: ``
+Group: `group::package`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.user_packages.i_package_conan_user_weekly`
-Missing description
+A weekly count of users that have published a Conan package to the registry
-[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_7d/20210216184856_i_package_conan_user_weekly.yml)
+[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_7d/20210216184856_i_package_conan_user_weekly.yml)
-Group: ``
+Group: `group::package`
Status: `data_available`
-Tiers:
+Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.user_packages.i_package_container_user_monthly`
-Missing description
+A monthly count of users that have published a container image to the registry
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_28d/20210216184902_i_package_container_user_monthly.yml)
-Group: ``
+Group: `group::package`
-Status: `data_available`
+Status: `deprecated`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.user_packages.i_package_container_user_weekly`
-Missing description
+A weekly count of users that have published a container image to the registry
-[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_7d/20210216184900_i_package_container_user_weekly.yml)
+[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_7d/20210216184900_i_package_container_user_weekly.yml)
-Group: ``
+Group: `group::package`
-Status: `data_available`
+Status: `deprecated`
-Tiers:
+Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.user_packages.i_package_debian_user_monthly`
-Missing description
+A monthly count of users that have published a Debian package to the registry
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_28d/20210216184906_i_package_debian_user_monthly.yml)
-Group: ``
+Group: `group::package`
-Status: `data_available`
+Status: `deprecated`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.user_packages.i_package_debian_user_weekly`
-Missing description
+A weekly count of users that have published a Debian package to the registry
-[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_7d/20210216184904_i_package_debian_user_weekly.yml)
+[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_7d/20210216184904_i_package_debian_user_weekly.yml)
-Group: ``
+Group: `group::package`
-Status: `data_available`
+Status: `deprecated`
-Tiers:
+Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.user_packages.i_package_generic_user_monthly`
-Missing description
+A monthly count of users that have published a generic package to the registry
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_28d/20210216184910_i_package_generic_user_monthly.yml)
-Group: ``
+Group: `group::package`
-Status: `data_available`
+Status: `broken`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.user_packages.i_package_generic_user_weekly`
-Missing description
+A weekly count of users that have published a generic package to the registry
-[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_7d/20210216184908_i_package_generic_user_weekly.yml)
+[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_7d/20210216184908_i_package_generic_user_weekly.yml)
-Group: ``
+Group: `group::package`
-Status: `data_available`
+Status: `broken`
-Tiers:
+Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.user_packages.i_package_golang_user_monthly`
-Missing description
+A monthly count of users that have published a Go moduleto the registry
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_28d/20210216184913_i_package_golang_user_monthly.yml)
-Group: ``
+Group: `group::package`
-Status: `data_available`
+Status: `deprecated`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.user_packages.i_package_golang_user_weekly`
-Missing description
+A weekly count of users that have published a Go module to the registry
-[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_7d/20210216184911_i_package_golang_user_weekly.yml)
+[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_7d/20210216184911_i_package_golang_user_weekly.yml)
-Group: ``
+Group: `group::package`
-Status: `data_available`
+Status: `deprecated`
-Tiers:
+Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.user_packages.i_package_helm_user_monthly`
@@ -15348,103 +15348,103 @@ Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.user_packages.i_package_maven_user_monthly`
-Missing description
+A monthly count of users that have published a Maven package to the registry
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_28d/20210216184917_i_package_maven_user_monthly.yml)
-Group: ``
+Group: `group::package`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.user_packages.i_package_maven_user_weekly`
-Missing description
+A weekly count of users that have published a Maven package to the registry
-[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_7d/20210216184916_i_package_maven_user_weekly.yml)
+[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_7d/20210216184916_i_package_maven_user_weekly.yml)
-Group: ``
+Group: `group::package`
Status: `data_available`
-Tiers:
+Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.user_packages.i_package_npm_user_monthly`
-Missing description
+A monthly count of users that have published an npm package to the registry
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_28d/20210216184921_i_package_npm_user_monthly.yml)
-Group: ``
+Group: `group::package`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.user_packages.i_package_npm_user_weekly`
-Missing description
+A weekly count of users that have published an npm package to the registry
-[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_7d/20210216184919_i_package_npm_user_weekly.yml)
+[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_7d/20210216184919_i_package_npm_user_weekly.yml)
-Group: ``
+Group: `group::package`
Status: `data_available`
-Tiers:
+Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.user_packages.i_package_nuget_user_monthly`
-Missing description
+A monthly count of users that have published a NuGet package to the registry
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_28d/20210216184925_i_package_nuget_user_monthly.yml)
-Group: ``
+Group: `group::package`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.user_packages.i_package_nuget_user_weekly`
-Missing description
+A weekly count of users that have published a NuGet package to the registry
-[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_7d/20210216184923_i_package_nuget_user_weekly.yml)
+[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_7d/20210216184923_i_package_nuget_user_weekly.yml)
-Group: ``
+Group: `group::package`
Status: `data_available`
-Tiers:
+Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.user_packages.i_package_pypi_user_monthly`
-Missing description
+A monthly count of users that have published a PyPI package to the registry
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_28d/20210216184929_i_package_pypi_user_monthly.yml)
-Group: ``
+Group: `group::package`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.user_packages.i_package_pypi_user_weekly`
-Missing description
+A weekly count of users that have published a Python package to the registry
-[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_7d/20210216184927_i_package_pypi_user_weekly.yml)
+[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_7d/20210216184927_i_package_pypi_user_weekly.yml)
-Group: ``
+Group: `group::package`
Status: `data_available`
-Tiers:
+Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.user_packages.i_package_rubygems_user_monthly`
-Distinct user count events for RubyGems packages in recent 28 days
+Distinct user count of RubyGems packages published in recent 28 days
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_28d/20210303154654_i_package_rubygems_user_monthly.yml)
@@ -15456,7 +15456,7 @@ Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.user_packages.i_package_rubygems_user_weekly`
-Distinct user count events for RubyGems packages in recent 7 days
+A weekly count of distinct RubyGems packages published by a user
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_7d/20210303154652_i_package_rubygems_user_weekly.yml)
@@ -15468,27 +15468,27 @@ Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.user_packages.i_package_tag_user_monthly`
-Missing description
+A monthly count of users that have published a package tag to the registry
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_28d/20210216184933_i_package_tag_user_monthly.yml)
-Group: ``
+Group: `group::package`
-Status: `data_available`
+Status: `deprecated`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.user_packages.i_package_tag_user_weekly`
-Missing description
+A weekly count of users that have published a package with a tag to the registry
-[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_7d/20210216184931_i_package_tag_user_weekly.yml)
+[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_7d/20210216184931_i_package_tag_user_weekly.yml)
-Group: ``
+Group: `group::package`
-Status: `data_available`
+Status: `deprecated`
-Tiers:
+Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.user_packages.i_package_terraform_module_user_monthly`
@@ -15516,27 +15516,27 @@ Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.user_packages.user_packages_total_unique_counts_monthly`
-Missing description
+A monthly count of users that have published a package to the registry
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_28d/20210216184937_user_packages_total_unique_counts_monthly.yml)
-Group: ``
+Group: `group::package`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.user_packages.user_packages_total_unique_counts_weekly`
-Missing description
+A weekly count of users that have published a package to the registry
-[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_7d/20210216184935_user_packages_total_unique_counts_weekly.yml)
+[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_7d/20210216184935_user_packages_total_unique_counts_weekly.yml)
-Group: ``
+Group: `group::package`
Status: `data_available`
-Tiers:
+Tiers: `free`, `premium`, `ultimate`
### `reply_by_email_enabled`
@@ -16972,7 +16972,7 @@ Tiers: `free`, `premium`, `ultimate`
### `usage_activity_by_stage.package.projects_with_packages`
-Projects with package registry configured
+Projects with package registry enabled
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_all/20210216181055_projects_with_packages.yml)
@@ -16980,7 +16980,7 @@ Group: `group::package`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `usage_activity_by_stage.plan.assignee_lists`
@@ -18928,7 +18928,7 @@ Tiers: `free`, `premium`, `ultimate`
### `usage_activity_by_stage_monthly.package.projects_with_packages`
-Incident confidential status changed event
+The total number of projects in a given month with at least one package
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_28d/20210216181057_projects_with_packages.yml)
@@ -18936,7 +18936,7 @@ Group: `group::package`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `usage_activity_by_stage_monthly.plan.assignee_lists`
diff --git a/doc/user/compliance/license_compliance/index.md b/doc/user/compliance/license_compliance/index.md
index da601416174..cdd684c128f 100644
--- a/doc/user/compliance/license_compliance/index.md
+++ b/doc/user/compliance/license_compliance/index.md
@@ -95,7 +95,7 @@ For GitLab 12.8 and later, to enable License Compliance, you must
that's provided as a part of your GitLab installation.
For older versions of GitLab from 11.9 to 12.7, you must
[include](../../../ci/yaml/README.md#includetemplate) the
-[`License-Management.gitlab-ci.yml` template](https://gitlab.com/gitlab-org/gitlab/blob/master/lib/gitlab/ci/templates/Security/License-Management.gitlab-ci.yml).
+[`License-Management.gitlab-ci.yml` template](https://gitlab.com/gitlab-org/gitlab/-/blob/d2cc841c55d65bc8134bfb3a467e66c36ac32b0a/lib/gitlab/ci/templates/Security/License-Management.gitlab-ci.yml).
For GitLab versions earlier than 11.9, you can copy and use the job as defined
that template.
@@ -109,11 +109,6 @@ include:
The included template creates a `license_scanning` job in your CI/CD pipeline and scans your
dependencies to find their licenses.
-NOTE:
-Before GitLab 12.8, the `license_scanning` job was named `license_management`. GitLab 13.0 removes
-the `license_management` job, so you must migrate to the `license_scanning` job and use the new
-`License-Scanning.gitlab-ci.yml` template.
-
The results are saved as a
[License Compliance report artifact](../../../ci/yaml/README.md#artifactsreportslicense_scanning)
that you can later download and analyze. Due to implementation limitations, we
@@ -153,7 +148,7 @@ License Compliance can be configured using CI/CD variables.
> Introduced in [GitLab Ultimate](https://about.gitlab.com/pricing/) 11.4.
-The `license_management` image already embeds many auto-detection scripts, languages,
+The `license_finder` image already embeds many auto-detection scripts, languages,
and packages. Nevertheless, it's almost impossible to cover all cases for all projects.
That's why sometimes it's necessary to install extra packages, or to have extra steps
in the project automated setup, like the download and installation of a certificate.
@@ -558,51 +553,6 @@ For example:
You can supply a custom root certificate to complete TLS verification by using the
`ADDITIONAL_CA_CERT_BUNDLE` [CI/CD variable](#available-cicd-variables).
-### Migration from `license_management` to `license_scanning`
-
-In GitLab 12.8 a new name for `license_management` job was introduced. This change was made to improve clarity around the purpose of the scan, which is to scan and collect the types of licenses present in a projects dependencies.
-GitLab 13.0 drops support for `license_management`.
-If you're using a custom setup for License Compliance, you're required
-to update your CI configuration accordingly:
-
-1. Change the CI template to `License-Scanning.gitlab-ci.yml`.
-1. Change the job name to `license_scanning` (if you mention it in `.gitlab-ci.yml`).
-1. Change the artifact name to `license_scanning`, and the filename to `gl-license-scanning-report.json` (if you mention it in `.gitlab-ci.yml`).
-
-For example, the following `.gitlab-ci.yml`:
-
-```yaml
-include:
- - template: License-Management.gitlab-ci.yml
-
-license_management:
- artifacts:
- reports:
- license_management: gl-license-management-report.json
-```
-
-Should be changed to:
-
-```yaml
-include:
- - template: Security/License-Scanning.gitlab-ci.yml
-
-license_scanning:
- artifacts:
- reports:
- license_scanning: gl-license-scanning-report.json
-```
-
-If you use the `license_management` artifact in GitLab 13.0 or later, the License Compliance job generates this error:
-
-```plaintext
-WARNING: Uploading artifacts to coordinator... failed id=:id responseStatus=400 Bad Request status=400 Bad Request token=:sha
-
-FATAL: invalid_argument
-```
-
-If you encounter this error, follow the instructions described in this section.
-
## Running License Compliance in an offline environment
For self-managed GitLab instances in an environment with limited, restricted, or intermittent access
diff --git a/doc/user/infrastructure/index.md b/doc/user/infrastructure/index.md
index b202359847c..0dc8c58c8f6 100644
--- a/doc/user/infrastructure/index.md
+++ b/doc/user/infrastructure/index.md
@@ -74,6 +74,12 @@ Neither Terraform nor GitLab encrypts the plan file by default. If your Terrafor
includes sensitive data such as passwords, access tokens, or certificates, GitLab strongly
recommends encrypting plan output or modifying the project visibility settings.
+## Terraform module registry
+
+GitLab can be used as a [Terraform module registry](../packages/terraform_module_registry/index.md)
+to create and publish Terraform modules to a private registry specific to your
+top-level namespace.
+
## Terraform integration in Merge Requests
Collaborating around Infrastructure as Code (IaC) changes requires both code changes
diff --git a/doc/user/packages/index.md b/doc/user/packages/index.md
index b871a08c133..f0bf2fc3363 100644
--- a/doc/user/packages/index.md
+++ b/doc/user/packages/index.md
@@ -46,7 +46,6 @@ guides you through the process.
| Puppet | [#36897](https://gitlab.com/gitlab-org/gitlab/-/issues/36897) |
| RPM | [#5932](https://gitlab.com/gitlab-org/gitlab/-/issues/5932) |
| SBT | [#36898](https://gitlab.com/gitlab-org/gitlab/-/issues/36898) |
-| Terraform | [Draft: Merge Request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/18834) |
| Vagrant | [#36899](https://gitlab.com/gitlab-org/gitlab/-/issues/36899) |
<!-- vale gitlab.Spelling = YES -->
@@ -54,6 +53,16 @@ guides you through the process.
The GitLab [Container Registry](container_registry/index.md) is a secure and private registry for container images. It's built on open source software and completely integrated within GitLab. Use GitLab CI/CD to create and publish images. Use the GitLab [API](../../api/container_registry.md) to manage the registry across groups and projects.
+## Infrastructure Registry
+
+The GitLab [Infrastructure Registry](infrastructure_registry/index.md) is a secure and private registry for infrastructure packages. You can use GitLab CI/CD to create and publish infrastructure packages.
+
+The Infrastructure Registry supports the following formats:
+
+| Package type | GitLab version |
+| ------------ | -------------- |
+| [Terraform Module](terraform_module_registry/index.md) | 14.0+ |
+
## Dependency Proxy
The [Dependency Proxy](dependency_proxy/index.md) is a local proxy for frequently-used upstream images and packages.
diff --git a/doc/user/packages/infrastructure_registry/index.md b/doc/user/packages/infrastructure_registry/index.md
new file mode 100644
index 00000000000..00370bd2f48
--- /dev/null
+++ b/doc/user/packages/infrastructure_registry/index.md
@@ -0,0 +1,93 @@
+---
+stage: Configure
+group: Configure
+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
+---
+
+# Infrastructure Registry **(FREE)**
+
+> [Introduced](https://gitlab.com/groups/gitlab-org/-/epics/3221) in GitLab 14.0.
+
+With the GitLab Infrastructure Registry, you can use GitLab projects as a
+private registry for infrastructure packages. You can create and publish
+packages with GitLab CI/CD, which can then be consumed from other private
+projects.
+
+## View packages
+
+To view packages within your project or group:
+
+1. Go to the project or group.
+1. Go to **Packages & Registries > Infrastructure Registry**.
+
+You can search, sort, and filter packages on this page.
+
+When you view packages in a group:
+
+- All packages published to the group and its projects are displayed.
+- Only the projects you can access are displayed.
+- If a project is private, or you are not a member of the project, it is not displayed.
+
+For information on how to create and upload a package, view the GitLab
+documentation for your package type:
+
+- [Terraform modules](../terraform_module_registry/index.md)
+
+## Use GitLab CI/CD to build packages
+
+To use [GitLab CI/CD](../../../ci/README.md) to build packages, you can
+authenticate with the [`CI_JOB_TOKEN` predefined variable](../../../ci/variables/predefined_variables.md).
+
+CI/CD templates, which you can use to get started, are in [this repository](https://gitlab.com/gitlab-org/gitlab/-/tree/master/lib/gitlab/ci/templates).
+
+Learn more about using CI/CD to build:
+
+- [Terraform modules](../terraform_module_registry/index.md#publish-a-terraform-module-by-using-cicd)
+
+If you use CI/CD to build a package, you can find extended activity information
+when you view the package details:
+
+![Package CI/CD activity](../package_registry/img/package_activity_v12_10.png)
+
+You can see the pipeline that published the package as well as the commit and the user who triggered it. However, the history is limited to five updates per package.
+
+## Download a package
+
+To download a package:
+
+1. Go to **Packages & Registries > Infrastructure Registry**.
+1. Select the name of the package you want to download.
+1. In the **Activity** section, select the name of the package you want to download.
+
+## Delete a package
+
+You cannot edit a package after you publish it in the Infrastructure Registry. Instead, you
+must delete and recreate it.
+
+To delete a package, you must have suitable [permissions](../../permissions.md).
+
+You can delete packages by using [the API](../../../api/packages.md#delete-a-project-package) or the UI.
+
+To delete a package in the UI, from your group or project:
+
+1. Go to **Packages & Registries > Infrastructure Registry**.
+1. Find the name of the package you want to delete.
+1. Select **Delete**.
+
+The package is permanently deleted.
+
+## Disable the Infrastructure Registry
+
+The Infrastructure Registry is automatically enabled.
+
+For self-managed instances, a GitLab administrator can
+[disable](../../../administration/packages/index.md) **Packages & Registries**,
+which removes this menu item from the sidebar. **(FREE SELF)**
+
+You can also remove the Infrastructure Registry for a specific project:
+
+1. In your project, go to **Settings > General**.
+1. Expand the **Visibility, project features, permissions** section and toggle **Packages** off (in gray).
+1. Select **Save changes**.
+
+To enable it back, follow the same steps above and toggle it on (in blue).
diff --git a/doc/user/packages/terraform_module_registry/index.md b/doc/user/packages/terraform_module_registry/index.md
new file mode 100644
index 00000000000..95d6ab069f8
--- /dev/null
+++ b/doc/user/packages/terraform_module_registry/index.md
@@ -0,0 +1,118 @@
+---
+stage: Configure
+group: Configure
+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
+---
+
+# Terraform module registry **(FREE)**
+
+> - [Introduced](https://gitlab.com/groups/gitlab-org/-/epics/3221) in GitLab 14.0.
+
+Publish Terraform modules in your project's Infrastructure Registry, then reference them using GitLab
+as a Terraform module registry.
+
+## Authenticate to the Terraform module registry
+
+To authenticate to the Terraform module registry, you need either:
+
+- A [personal access token](../../../api/README.md#personalproject-access-tokens).
+- A [CI/CD job token](../../../api/README.md#gitlab-cicd-job-token).
+- A [deploy token](../../project/deploy_tokens/index.md).
+
+## Publish a Terraform Module
+
+When you publish a Terraform Module, if it does not exist, it is created.
+
+If a package with the same name and version already exists, it will not be created. It does not overwrite the existing package.
+
+Prerequisites:
+
+- You need to [authenticate with the API](../../../api/README.md#authentication). If authenticating with a deploy token, it must be configured with the `write_package_registry` scope.
+
+```plaintext
+PUT /projects/:id/packages/terraform/modules/:module_name/:module_system/:module_version/file
+```
+
+| Attribute | Type | Required | Description |
+| -------------------| --------------- | ---------| -------------------------------------------------------------------------------------------------------------------------------- |
+| `id` | integer/string | yes | The ID or [URL-encoded path of the project](../../../api/README.md#namespaced-path-encoding). |
+| `module_name` | string | yes | The package name. It can contain only lowercase letters (`a-z`), uppercase letter (`A-Z`), numbers (`0-9`), or hyphens (`-`).
+| `module_system` | string | yes | The package name. It can contain only lowercase letters (`a-z`), uppercase letter (`A-Z`), numbers (`0-9`), or hyphens (`-`).
+| `module_version` | string | yes | The package version. It must be valid according to the [Semantic Versioning Specification](https://semver.org/).
+
+Provide the file content in the request body.
+
+Example request using a personal access token:
+
+```shell
+curl --header "PRIVATE-TOKEN: <your_access_token>" \
+ --upload-file path/to/file.tgz \
+ "https://gitlab.example.com/api/v4/projects/<your_project_id>/packages/terraform/modules/my-module/my-system/0.0.1/file"
+```
+
+Example response:
+
+```json
+{
+ "message":"201 Created"
+}
+```
+
+Example request using a deploy token:
+
+```shell
+curl --header "DEPLOY-TOKEN: <deploy_token>" \
+ --upload-file path/to/file.tgz \
+ "https://gitlab.example.com/api/v4/projects/<your_project_id>/packages/terraform/modules/my-module/my-system/0.0.1/file"
+```
+
+Example response:
+
+```json
+{
+ "message":"201 Created"
+}
+```
+
+## Reference a Terraform Module
+
+Prerequisites:
+
+- You need to [authenticate with the API](../../../api/README.md#authentication). If authenticating with a deploy token, it must be configured with the `read_package_registry` and/or `write_package_registry` scope.
+
+Authentication tokens (Deploy Token, Job Token, or Personal Access Token) can be provided for `terraform` in your `~/.terraformrc` file:
+
+```plaintext
+credentials "gitlab.com" {
+ token = "<TOKEN>"
+}
+```
+
+Where `gitlab.com` can be replaced with the hostname of your self-managed GitLab instance.
+
+You can then reference your Terraform Module from a downstream Terraform project:
+
+```plaintext
+module "<module>" {
+ source = "gitlab.com/<namespace>/<module_name>/<module_system>"
+}
+```
+
+## Publish a Terraform module by using CI/CD
+
+To work with Terraform modules in [GitLab CI/CD](../../../ci/README.md), you can use
+`CI_JOB_TOKEN` in place of the personal access token in your commands.
+
+For example:
+
+```yaml
+image: curlimages/curl:latest
+
+stages:
+ - upload
+
+upload:
+ stage: upload
+ script:
+ - 'curl --header "JOB-TOKEN: $CI_JOB_TOKEN" --upload-file path/to/file.tgz "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/terraform/modules/my-module/my-system/0.0.1/file"'
+```
diff --git a/lib/api/helpers/services_helpers.rb b/lib/api/helpers/services_helpers.rb
index 784c12a89fc..2efe6663f3f 100644
--- a/lib/api/helpers/services_helpers.rb
+++ b/lib/api/helpers/services_helpers.rb
@@ -798,14 +798,14 @@ module API
::Integrations::Packagist,
::Integrations::PipelinesEmail,
::Integrations::Pivotaltracker,
+ ::Integrations::Pushover,
::Integrations::Redmine,
::Integrations::Slack,
::Integrations::Teamcity,
::Integrations::Youtrack,
::MattermostSlashCommandsService,
::SlackSlashCommandsService,
- ::PrometheusService,
- ::PushoverService
+ ::PrometheusService
]
end
diff --git a/lib/csv_builder.rb b/lib/csv_builder.rb
index 43ceed9519b..f270f7984da 100644
--- a/lib/csv_builder.rb
+++ b/lib/csv_builder.rb
@@ -16,7 +16,7 @@
class CsvBuilder
DEFAULT_ORDER_BY = 'id'
DEFAULT_BATCH_SIZE = 1000
- PREFIX_REGEX = /^[=\+\-@;]/.freeze
+ PREFIX_REGEX = /\A[=\+\-@;]/.freeze
attr_reader :rows_written
diff --git a/lib/gitlab/ci/templates/Security/License-Management.gitlab-ci.yml b/lib/gitlab/ci/templates/Security/License-Management.gitlab-ci.yml
deleted file mode 100644
index 87f78d0c887..00000000000
--- a/lib/gitlab/ci/templates/Security/License-Management.gitlab-ci.yml
+++ /dev/null
@@ -1,13 +0,0 @@
-# Deprecated: https://gitlab.com/gitlab-org/gitlab/issues/14624
-# Please, use License-Scanning.gitlab-ci.yml template instead
-
-include:
- - template: License-Scanning.gitlab-ci.yml
-
-license_scanning:
- before_script:
- - |
- echo "As of GitLab 12.8, we deprecated the License-Management.gitlab.ci.yml template.
- Please replace it with the License-Scanning.gitlab-ci.yml template instead.
- For more details visit
- https://docs.gitlab.com/ee/user/compliance/license_compliance/#migration-from-license_management-to-license_scanning"
diff --git a/lib/gitlab/integrations/sti_type.rb b/lib/gitlab/integrations/sti_type.rb
index c5f38372777..c0913f30f7e 100644
--- a/lib/gitlab/integrations/sti_type.rb
+++ b/lib/gitlab/integrations/sti_type.rb
@@ -7,7 +7,7 @@ module Gitlab
Asana Assembla Bamboo Bugzilla Buildkite Campfire Confluence CustomIssueTracker Datadog
Discord DroneCi EmailsOnPush Ewm ExternalWiki Flowdock HangoutsChat IssueTracker Irker
Jenkins Jira Mattermost MicrosoftTeams MockCi Packagist PipelinesEmail Pivotaltracker
- Redmine Slack Teamcity UnifyCircuit Youtrack WebexTeams
+ Pushover Redmine Slack Teamcity UnifyCircuit Youtrack WebexTeams
)).freeze
def cast(value)
diff --git a/lib/gitlab/sidekiq_middleware/duplicate_jobs/duplicate_job.rb b/lib/gitlab/sidekiq_middleware/duplicate_jobs/duplicate_job.rb
index 79ac853ea0c..b456dcdb666 100644
--- a/lib/gitlab/sidekiq_middleware/duplicate_jobs/duplicate_job.rb
+++ b/lib/gitlab/sidekiq_middleware/duplicate_jobs/duplicate_job.rb
@@ -51,6 +51,8 @@ module Gitlab
end
end
+ job['idempotency_key'] = idempotency_key
+
self.existing_jid = read_jid.value
end
@@ -117,7 +119,7 @@ module Gitlab
end
def idempotency_key
- @idempotency_key ||= "#{namespace}:#{idempotency_hash}"
+ @idempotency_key ||= job['idempotency_key'] || "#{namespace}:#{idempotency_hash}"
end
def idempotency_hash
@@ -129,6 +131,10 @@ module Gitlab
end
def idempotency_string
+ # TODO: dump the argument's JSON using `Sidekiq.dump_json` instead
+ # this should be done in the next release so all jobs are written
+ # with their idempotency key.
+ # see https://gitlab.com/gitlab-com/gl-infra/scalability/-/issues/1090
"#{worker_class_name}:#{arguments.join('-')}"
end
end
diff --git a/locale/gitlab.pot b/locale/gitlab.pot
index 3b6411f8db4..6045eed56dd 100644
--- a/locale/gitlab.pot
+++ b/locale/gitlab.pot
@@ -16129,6 +16129,9 @@ msgstr ""
msgid "GroupSettings|remove the share with group lock from %{ancestor_group_name}"
msgstr ""
+msgid "GroupTemplate|The selected group's repositories and databases are copied into the projects created in this group. %{link_start}What should I add to my template group?%{link_end} "
+msgstr ""
+
msgid "Groups"
msgstr ""
@@ -29384,6 +29387,9 @@ msgstr ""
msgid "Select a shared template repository for all projects on this instance."
msgstr ""
+msgid "Select a subgroup to use as a template when creating new projects in the group."
+msgstr ""
+
msgid "Select a template repository"
msgstr ""
@@ -29486,9 +29492,6 @@ msgstr ""
msgid "Select target branch"
msgstr ""
-msgid "Select the custom project template source group."
-msgstr ""
-
msgid "Select timezone"
msgstr ""
diff --git a/package.json b/package.json
index 5837da6c3a1..d3e35d14fcc 100644
--- a/package.json
+++ b/package.json
@@ -55,7 +55,7 @@
"@gitlab/favicon-overlay": "2.0.0",
"@gitlab/svgs": "1.199.0",
"@gitlab/tributejs": "1.0.0",
- "@gitlab/ui": "29.31.0",
+ "@gitlab/ui": "29.32.0",
"@gitlab/visual-review-tools": "1.6.1",
"@rails/actioncable": "6.1.3-2",
"@rails/ujs": "6.1.3-2",
diff --git a/qa/qa/specs/features/browser_ui/3_create/design_management/modify_design_content_spec.rb b/qa/qa/specs/features/browser_ui/3_create/design_management/modify_design_content_spec.rb
index dfdc9b7c9b4..59d34612ca7 100644
--- a/qa/qa/specs/features/browser_ui/3_create/design_management/modify_design_content_spec.rb
+++ b/qa/qa/specs/features/browser_ui/3_create/design_management/modify_design_content_spec.rb
@@ -1,7 +1,7 @@
# frozen_string_literal: true
module QA
- RSpec.describe 'Create' do
+ RSpec.describe 'Create', quarantine: { issue: 'https://gitlab.com/gitlab-org/gitlab/-/issues/331978', type: :bug } do
context 'Design Management' do
let(:design) do
Resource::Design.fabricate! do |design|
diff --git a/scripts/debug-rubocop b/scripts/debug-rubocop
new file mode 100755
index 00000000000..dd1f8df1d11
--- /dev/null
+++ b/scripts/debug-rubocop
@@ -0,0 +1,36 @@
+#!/usr/bin/env ruby
+# frozen_string_literal: true
+
+require 'rubocop'
+
+file = ARGV[0]
+
+unless file
+ warn('Error: missing file, please supply one')
+ abort
+end
+
+# Taken from https://github.com/rubocop/rubocop/blob/v0.93.1/lib/rubocop/result_cache.rb#L159-L171
+def file_checksum(file, config_store)
+ digester = Digest::SHA1.new
+ mode = File.stat(file).mode
+
+ puts "mode of #{file} is #{mode}"
+ puts "signature of #{file} is #{config_store.for_file(file).signature}"
+ puts "config is:"
+ puts config_store.for_file(file).to_h
+
+ digester.update(
+ "#{file}#{mode}#{config_store.for_file(file).signature}"
+ )
+ digester.file(file)
+ digester.hexdigest
+rescue Errno::ENOENT
+ # Spurious files that come and go should not cause a crash, at least not
+ # here.
+ '_'
+end
+
+config_store = RuboCop::ConfigStore.new
+checksum = file_checksum(file, config_store)
+puts "File checksum for #{file} is #{checksum}"
diff --git a/scripts/static-analysis b/scripts/static-analysis
index f004d2246ec..7aa2fbf1594 100755
--- a/scripts/static-analysis
+++ b/scripts/static-analysis
@@ -20,25 +20,25 @@ class StaticAnalysis
# contain values that a FOSS installation won't find. To work
# around this we will only enable this task on EE installations.
TASKS_BY_DURATIONS_SECONDS_DESC = {
- %w[bin/rake lint:haml] => 338,
- (Gitlab.ee? ? %w[bin/rake gettext:updated_check] : nil) => 308,
+ %w[bin/rake lint:haml] => 488,
+ (Gitlab.ee? ? %w[bin/rake gettext:updated_check] : nil) => 410,
# Most of the time, RuboCop finishes in 30 seconds, but sometimes it can take around 1200 seconds so we set a
# duration of 300 to lower the likelihood that it will run in the same job as another long task...
%w[bundle exec rubocop --parallel] => 300,
- %w[yarn run lint:eslint:all] => 197,
- %w[yarn run lint:prettier] => 124,
- %w[bin/rake gettext:lint] => 96,
+ %w[yarn run lint:eslint:all] => 264,
+ %w[yarn run lint:prettier] => 134,
+ %w[bin/rake gettext:lint] => 81,
%w[bundle exec license_finder] => 49,
- %w[bin/rake lint:static_verification] => 22,
- %w[bin/rake gitlab:sidekiq:all_queues_yml:check] => 13,
- (Gitlab.ee? ? %w[bin/rake gitlab:sidekiq:sidekiq_queues_yml:check] : nil) => 13,
+ %w[bin/rake lint:static_verification] => 24,
+ %w[bin/rake gitlab:sidekiq:all_queues_yml:check] => 12,
+ (Gitlab.ee? ? %w[bin/rake gitlab:sidekiq:sidekiq_queues_yml:check] : nil) => 11,
%w[bin/rake config_lint] => 11,
- %w[yarn run internal:stylelint] => 9,
- %w[scripts/lint-conflicts.sh] => 0.59,
- %w[yarn run block-dependencies] => 0.35,
- %w[scripts/lint-rugged] => 0.23,
- %w[scripts/gemfile_lock_changed.sh] => 0.02,
- %w[scripts/frontend/check_no_partial_karma_jest.sh] => 0.01
+ %w[yarn run internal:stylelint] => 8,
+ %w[scripts/lint-conflicts.sh] => 1,
+ %w[yarn run block-dependencies] => 1,
+ %w[scripts/lint-rugged] => 1,
+ %w[scripts/gemfile_lock_changed.sh] => 1,
+ %w[scripts/frontend/check_no_partial_karma_jest.sh] => 1
}.reject { |k| k.nil? }.sort_by { |a| -a[1] }.to_h.keys.freeze
def run_tasks!
diff --git a/spec/frontend/boards/boards_util_spec.js b/spec/frontend/boards/boards_util_spec.js
index 0feb1411003..289905a1948 100644
--- a/spec/frontend/boards/boards_util_spec.js
+++ b/spec/frontend/boards/boards_util_spec.js
@@ -1,17 +1,103 @@
-import { transformNotFilters } from '~/boards/boards_util';
+import { filterVariables } from '~/boards/boards_util';
-describe('transformNotFilters', () => {
- const filters = {
- 'not[labelName]': ['label'],
- 'not[assigneeUsername]': 'assignee',
- };
-
- it('formats not filters, transforms epicId to fullEpicId', () => {
- const result = transformNotFilters(filters);
-
- expect(result).toEqual({
- labelName: ['label'],
- assigneeUsername: 'assignee',
+describe('filterVariables', () => {
+ it.each([
+ [
+ 'correctly processes array filter values',
+ {
+ filters: {
+ 'not[filterA]': ['val1', 'val2'],
+ },
+ expected: {
+ not: {
+ filterA: ['val1', 'val2'],
+ },
+ },
+ },
+ ],
+ [
+ "renames a filter if 'remap' method is available",
+ {
+ filters: {
+ filterD: 'some value',
+ },
+ expected: {
+ filterA: 'some value',
+ not: {},
+ },
+ },
+ ],
+ [
+ 'correctly processes a negated filter that supports negation',
+ {
+ filters: {
+ 'not[filterA]': 'some value 1',
+ 'not[filterB]': 'some value 2',
+ },
+ expected: {
+ not: {
+ filterA: 'some value 1',
+ },
+ },
+ },
+ ],
+ [
+ 'correctly removes an unsupported filter depending on issuableType',
+ {
+ issuableType: 'epic',
+ filters: {
+ filterA: 'some value 1',
+ filterE: 'some value 2',
+ },
+ expected: {
+ filterE: 'some value 2',
+ not: {},
+ },
+ },
+ ],
+ [
+ 'applies a transform when the filter value needs to be modified',
+ {
+ filters: {
+ filterC: 'abc',
+ 'not[filterC]': 'def',
+ },
+ expected: {
+ filterC: 'ABC',
+ not: {
+ filterC: 'DEF',
+ },
+ },
+ },
+ ],
+ ])('%s', (_, { filters, issuableType = 'issue', expected }) => {
+ const result = filterVariables({
+ filters,
+ issuableType,
+ filterInfo: {
+ filterA: {
+ negatedSupport: true,
+ },
+ filterB: {
+ negatedSupport: false,
+ },
+ filterC: {
+ negatedSupport: true,
+ transform: (val) => val.toUpperCase(),
+ },
+ filterD: {
+ remap: () => 'filterA',
+ },
+ filterE: {
+ negatedSupport: true,
+ },
+ },
+ filterFields: {
+ issue: ['filterA', 'filterB', 'filterC', 'filterD'],
+ epic: ['filterE'],
+ },
});
+
+ expect(result).toEqual(expected);
});
});
diff --git a/spec/frontend/boards/components/board_filtered_search_spec.js b/spec/frontend/boards/components/board_filtered_search_spec.js
index e27badca9de..6ac5d16e5a3 100644
--- a/spec/frontend/boards/components/board_filtered_search_spec.js
+++ b/spec/frontend/boards/components/board_filtered_search_spec.js
@@ -105,9 +105,9 @@ describe('BoardFilteredSearch', () => {
beforeEach(() => {
store = createStore();
- jest.spyOn(store, 'dispatch');
-
createComponent();
+
+ jest.spyOn(wrapper.vm, 'performSearch').mockImplementation();
});
it('sets the url params to the correct results', async () => {
diff --git a/spec/frontend/boards/stores/actions_spec.js b/spec/frontend/boards/stores/actions_spec.js
index 5c55eb3c0a4..e7859d48303 100644
--- a/spec/frontend/boards/stores/actions_spec.js
+++ b/spec/frontend/boards/stores/actions_spec.js
@@ -70,27 +70,28 @@ describe('setFilters', () => {
[
'with correct filters as payload',
{
- filters: { labelName: 'label' },
- updatedFilters: { labelName: 'label', not: {} },
+ filters: { labelName: 'label', foobar: 'not-a-filter', search: 'quick brown fox' },
+ filterVariables: { labelName: 'label', search: 'quick brown fox', not: {} },
},
],
[
- 'and updates assigneeWildcardId',
+ "and use 'assigneeWildcardId' as filter variable for 'assigneId' param",
{
filters: { assigneeId: 'None' },
- updatedFilters: { assigneeWildcardId: 'NONE', not: {} },
+ filterVariables: { assigneeWildcardId: 'NONE', not: {} },
},
],
- ])('should commit mutation SET_FILTERS %s', (_, { filters, updatedFilters }) => {
+ ])('should commit mutation SET_FILTERS %s', (_, { filters, filterVariables }) => {
const state = {
filters: {},
+ issuableType: issuableTypes.issue,
};
testAction(
actions.setFilters,
filters,
state,
- [{ type: types.SET_FILTERS, payload: updatedFilters }],
+ [{ type: types.SET_FILTERS, payload: filterVariables }],
[],
);
});
diff --git a/spec/frontend/grafana_integration/components/__snapshots__/grafana_integration_spec.js.snap b/spec/frontend/grafana_integration/components/__snapshots__/grafana_integration_spec.js.snap
index 7082d652706..33e2c0db5e5 100644
--- a/spec/frontend/grafana_integration/components/__snapshots__/grafana_integration_spec.js.snap
+++ b/spec/frontend/grafana_integration/components/__snapshots__/grafana_integration_spec.js.snap
@@ -46,6 +46,7 @@ exports[`grafana integration component default state to match the default snapsh
<gl-form-group-stub
label="Enable authentication"
label-for="grafana-integration-enabled"
+ labeldescription=""
>
<gl-form-checkbox-stub
id="grafana-integration-enabled"
@@ -60,6 +61,7 @@ exports[`grafana integration component default state to match the default snapsh
description="Enter the base URL of the Grafana instance."
label="Grafana URL"
label-for="grafana-url"
+ labeldescription=""
>
<gl-form-input-stub
id="grafana-url"
@@ -71,6 +73,7 @@ exports[`grafana integration component default state to match the default snapsh
<gl-form-group-stub
label="API token"
label-for="grafana-token"
+ labeldescription=""
>
<gl-form-input-stub
id="grafana-token"
diff --git a/spec/frontend/incidents_settings/components/__snapshots__/alerts_form_spec.js.snap b/spec/frontend/incidents_settings/components/__snapshots__/alerts_form_spec.js.snap
index 3d32585a211..505f061703a 100644
--- a/spec/frontend/incidents_settings/components/__snapshots__/alerts_form_spec.js.snap
+++ b/spec/frontend/incidents_settings/components/__snapshots__/alerts_form_spec.js.snap
@@ -11,6 +11,7 @@ exports[`Alert integration settings form default state should match the default
<form>
<gl-form-group-stub
class="gl-pl-0"
+ labeldescription=""
>
<gl-form-checkbox-stub
checked="true"
@@ -26,6 +27,7 @@ exports[`Alert integration settings form default state should match the default
class="col-8 col-md-9 gl-px-6"
label-for="alert-integration-settings-issue-template"
label-size="sm"
+ labeldescription=""
>
<label
class="gl-display-inline-flex"
@@ -75,6 +77,7 @@ exports[`Alert integration settings form default state should match the default
<gl-form-group-stub
class="gl-pl-0 gl-mb-5"
+ labeldescription=""
>
<gl-form-checkbox-stub>
<span>
@@ -85,6 +88,7 @@ exports[`Alert integration settings form default state should match the default
<gl-form-group-stub
class="gl-pl-0 gl-mb-5"
+ labeldescription=""
>
<gl-form-checkbox-stub
checked="true"
diff --git a/spec/frontend/incidents_settings/components/__snapshots__/pagerduty_form_spec.js.snap b/spec/frontend/incidents_settings/components/__snapshots__/pagerduty_form_spec.js.snap
index a374ac7e4f2..2a976c04319 100644
--- a/spec/frontend/incidents_settings/components/__snapshots__/pagerduty_form_spec.js.snap
+++ b/spec/frontend/incidents_settings/components/__snapshots__/pagerduty_form_spec.js.snap
@@ -13,6 +13,7 @@ exports[`Alert integration settings form should match the default snapshot 1`] =
<form>
<gl-form-group-stub
class="col-8 col-md-9 gl-p-0"
+ labeldescription=""
>
<gl-toggle-stub
id="active"
@@ -26,6 +27,7 @@ exports[`Alert integration settings form should match the default snapshot 1`] =
class="col-8 col-md-9 gl-p-0"
label="Webhook URL"
label-for="url"
+ labeldescription=""
>
<gl-form-input-group-stub
data-testid="webhook-url"
diff --git a/spec/frontend/self_monitor/components/__snapshots__/self_monitor_form_spec.js.snap b/spec/frontend/self_monitor/components/__snapshots__/self_monitor_form_spec.js.snap
index 226e580a8e8..523f4e88985 100644
--- a/spec/frontend/self_monitor/components/__snapshots__/self_monitor_form_spec.js.snap
+++ b/spec/frontend/self_monitor/components/__snapshots__/self_monitor_form_spec.js.snap
@@ -45,7 +45,9 @@ exports[`self monitor component When the self monitor project has not been creat
Enabling this feature creates a project that can be used to monitor the health of your instance.
</p>
- <gl-form-group-stub>
+ <gl-form-group-stub
+ labeldescription=""
+ >
<gl-toggle-stub
label="Create Project"
labelposition="top"
diff --git a/spec/frontend/snippets/components/__snapshots__/snippet_visibility_edit_spec.js.snap b/spec/frontend/snippets/components/__snapshots__/snippet_visibility_edit_spec.js.snap
index 95da67c2bbf..5df69ffb5f8 100644
--- a/spec/frontend/snippets/components/__snapshots__/snippet_visibility_edit_spec.js.snap
+++ b/spec/frontend/snippets/components/__snapshots__/snippet_visibility_edit_spec.js.snap
@@ -22,6 +22,7 @@ exports[`Snippet Visibility Edit component rendering matches the snapshot 1`] =
<gl-form-group-stub
class="gl-mb-0"
id="visibility-level-setting"
+ labeldescription=""
>
<gl-form-radio-group-stub
checked="private"
diff --git a/spec/frontend/tracking_spec.js b/spec/frontend/tracking_spec.js
index ac1bb57d7da..d8dae2b2dc0 100644
--- a/spec/frontend/tracking_spec.js
+++ b/spec/frontend/tracking_spec.js
@@ -231,9 +231,9 @@ describe('Tracking', () => {
eventSpy = jest.spyOn(Tracking, 'event');
Tracking.bindDocument('_category_'); // only happens once
setHTMLFixture(`
- <input data-track-${term}="click_input1" data-track-label="_label_" value="_value_"/>
- <input data-track-${term}="click_input2" data-track-value="_value_override_" value=0/>
- <input type="checkbox" data-track-${term}="toggle_checkbox" value="_value_" checked/>
+ <input data-track-${term}="click_input1" data-track-label="_label_" value=0 />
+ <input data-track-${term}="click_input2" data-track-value=0 value=0/>
+ <input type="checkbox" data-track-${term}="toggle_checkbox" value=1 checked/>
<input class="dropdown" data-track-${term}="toggle_dropdown"/>
<div data-track-${term}="nested_event"><span class="nested"></span></div>
<input data-track-bogus="click_bogusinput" data-track-label="_label_" value="_value_"/>
@@ -248,7 +248,7 @@ describe('Tracking', () => {
expect(eventSpy).toHaveBeenCalledWith('_category_', 'click_input1', {
label: '_label_',
- value: '_value_',
+ value: '0',
});
});
@@ -262,7 +262,7 @@ describe('Tracking', () => {
document.querySelector(`[data-track-${term}="click_input2"]`).click();
expect(eventSpy).toHaveBeenCalledWith('_category_', 'click_input2', {
- value: '_value_override_',
+ value: '0',
});
});
@@ -278,7 +278,7 @@ describe('Tracking', () => {
checkbox.click(); // checking
expect(eventSpy).toHaveBeenCalledWith('_category_', 'toggle_checkbox', {
- value: '_value_',
+ value: '1',
});
});
@@ -341,8 +341,8 @@ describe('Tracking', () => {
beforeEach(() => {
eventSpy = jest.spyOn(Tracking, 'event');
setHTMLFixture(`
- <input data-track-${term}="render" data-track-label="label1" value="_value_" data-track-property="_property_"/>
- <span data-track-${term}="render" data-track-label="label2" data-track-value="_value_">
+ <input data-track-${term}="render" data-track-label="label1" value=1 data-track-property="_property_"/>
+ <span data-track-${term}="render" data-track-label="label2" data-track-value=1>
Something
</span>
<input data-track-${term}="_render_bogus_" data-track-label="label3" value="_value_" data-track-property="_property_"/>
@@ -357,7 +357,7 @@ describe('Tracking', () => {
'render',
{
label: 'label1',
- value: '_value_',
+ value: '1',
property: '_property_',
},
],
@@ -366,7 +366,7 @@ describe('Tracking', () => {
'render',
{
label: 'label2',
- value: '_value_',
+ value: '1',
},
],
]);
diff --git a/spec/frontend/vue_shared/components/form/__snapshots__/title_spec.js.snap b/spec/frontend/vue_shared/components/form/__snapshots__/title_spec.js.snap
index e5035614196..ff1dad2de68 100644
--- a/spec/frontend/vue_shared/components/form/__snapshots__/title_spec.js.snap
+++ b/spec/frontend/vue_shared/components/form/__snapshots__/title_spec.js.snap
@@ -4,6 +4,7 @@ exports[`Title edit field matches the snapshot 1`] = `
<gl-form-group-stub
label="Title"
label-for="title-field-edit"
+ labeldescription=""
>
<gl-form-input-stub />
</gl-form-group-stub>
diff --git a/spec/graphql/types/merge_request_type_spec.rb b/spec/graphql/types/merge_request_type_spec.rb
index fa33b32c6c8..8c5daa1cdd3 100644
--- a/spec/graphql/types/merge_request_type_spec.rb
+++ b/spec/graphql/types/merge_request_type_spec.rb
@@ -3,6 +3,8 @@
require 'spec_helper'
RSpec.describe GitlabSchema.types['MergeRequest'] do
+ include GraphqlHelpers
+
specify { expect(described_class).to expose_permissions_using(Types::PermissionTypes::MergeRequest) }
specify { expect(described_class).to require_graphql_authorizations(:read_merge_request) }
@@ -19,7 +21,9 @@ RSpec.describe GitlabSchema.types['MergeRequest'] do
target_branch work_in_progress draft merge_when_pipeline_succeeds diff_head_sha
merge_commit_sha user_notes_count user_discussions_count should_remove_source_branch
diff_refs diff_stats diff_stats_summary
- force_remove_source_branch merge_status in_progress_merge_commit_sha
+ force_remove_source_branch
+ merge_status merge_status_enum
+ in_progress_merge_commit_sha
merge_error allow_collaboration should_be_rebased rebase_commit_sha
rebase_in_progress default_merge_commit_message
merge_ongoing mergeable_discussions_state web_url
@@ -106,4 +110,27 @@ RSpec.describe GitlabSchema.types['MergeRequest'] do
execute_query
end
end
+
+ describe 'merge_status_enum' do
+ let(:type) { GitlabSchema.types['MergeStatus'] }
+
+ it 'has the type MergeStatus' do
+ expect(described_class.fields['mergeStatusEnum']).to have_graphql_type(type)
+ end
+
+ let_it_be(:project) { create(:project, :public) }
+
+ %i[preparing unchecked cannot_be_merged_recheck checking cannot_be_merged_rechecking can_be_merged cannot_be_merged].each do |state|
+ context "when the the DB value is #{state}" do
+ let(:merge_request) { create(:merge_request, :unique_branches, source_project: project, merge_status: state.to_s) }
+
+ it 'serializes correctly' do
+ value = resolve_field(:merge_status_enum, merge_request)
+ value = type.coerce_isolated_result(value)
+
+ expect(value).to eq(merge_request.public_merge_status.upcase)
+ end
+ end
+ end
+ end
end
diff --git a/spec/lib/csv_builder_spec.rb b/spec/lib/csv_builder_spec.rb
index 546be3ba6f7..ec065ee6f7d 100644
--- a/spec/lib/csv_builder_spec.rb
+++ b/spec/lib/csv_builder_spec.rb
@@ -105,5 +105,17 @@ RSpec.describe CsvBuilder do
expect(csv_data).not_to include "'*safe_desc"
expect(csv_data).not_to include "'*safe_title"
end
+
+ context 'when dangerous characters are after a line break' do
+ it 'does not append single quote to description' do
+ fake_object = double(title: "Safe title", description: "With task list\n-[x] todo 1")
+ fake_relation = FakeRelation.new([fake_object])
+ builder = described_class.new(fake_relation, 'Title' => 'title', 'Description' => 'description')
+
+ csv_data = builder.render
+
+ expect(csv_data).to eq("Title,Description\nSafe title,\"With task list\n-[x] todo 1\"\n")
+ end
+ end
end
end
diff --git a/spec/lib/gitlab/sidekiq_middleware/duplicate_jobs/duplicate_job_spec.rb b/spec/lib/gitlab/sidekiq_middleware/duplicate_jobs/duplicate_job_spec.rb
index 0285467ecab..c2479d20949 100644
--- a/spec/lib/gitlab/sidekiq_middleware/duplicate_jobs/duplicate_job_spec.rb
+++ b/spec/lib/gitlab/sidekiq_middleware/duplicate_jobs/duplicate_job_spec.rb
@@ -51,6 +51,10 @@ RSpec.describe Gitlab::SidekiqMiddleware::DuplicateJobs::DuplicateJob, :clean_gi
.from([nil, -2])
.to(['123', be_within(1).of(described_class::DUPLICATE_KEY_TTL)])
end
+
+ it "adds the idempotency key to the jobs payload" do
+ expect { duplicate_job.check! }.to change { job['idempotency_key'] }.from(nil).to(idempotency_key)
+ end
end
context 'when there was already a job with same arguments in the same queue' do
@@ -81,14 +85,39 @@ RSpec.describe Gitlab::SidekiqMiddleware::DuplicateJobs::DuplicateJob, :clean_gi
context 'when the key exists in redis' do
before do
- set_idempotency_key(idempotency_key, 'existing-key')
+ set_idempotency_key(idempotency_key, 'existing-jid')
end
- it 'removes the key from redis' do
- expect { duplicate_job.delete! }
- .to change { read_idempotency_key_with_ttl(idempotency_key) }
- .from(['existing-key', -1])
- .to([nil, -2])
+ shared_examples 'deleting the duplicate job' do
+ it 'removes the key from redis' do
+ expect { duplicate_job.delete! }
+ .to change { read_idempotency_key_with_ttl(idempotency_key) }
+ .from(['existing-jid', -1])
+ .to([nil, -2])
+ end
+ end
+
+ context 'when the idempotency key is not part of the job' do
+ it_behaves_like 'deleting the duplicate job'
+
+ it 'recalculates the idempotency hash' do
+ expect(duplicate_job).to receive(:idempotency_hash).and_call_original
+
+ duplicate_job.delete!
+ end
+ end
+
+ context 'when the idempotency key is part of the job' do
+ let(:idempotency_key) { 'not the same as what we calculate' }
+ let(:job) { super().merge('idempotency_key' => idempotency_key) }
+
+ it_behaves_like 'deleting the duplicate job'
+
+ it 'does not recalculate the idempotency hash' do
+ expect(duplicate_job).not_to receive(:idempotency_hash)
+
+ duplicate_job.delete!
+ end
end
end
end
diff --git a/spec/mailers/emails/profile_spec.rb b/spec/mailers/emails/profile_spec.rb
index 1dfa676ead1..9b5633a9f90 100644
--- a/spec/mailers/emails/profile_spec.rb
+++ b/spec/mailers/emails/profile_spec.rb
@@ -337,7 +337,7 @@ RSpec.describe Emails::Profile do
end
it 'mentioned the time' do
- is_expected.to have_body_text current_time.strftime('%Y-%m-%d %k:%M:%S %Z')
+ is_expected.to have_body_text current_time.strftime('%Y-%m-%d %H:%M:%S %Z')
end
it 'includes a link to the change password documentation' do
diff --git a/spec/models/integration_spec.rb b/spec/models/integration_spec.rb
index 7233f6093b7..d6dc2aa931a 100644
--- a/spec/models/integration_spec.rb
+++ b/spec/models/integration_spec.rb
@@ -446,7 +446,7 @@ RSpec.describe Integration do
describe "for pushover service" do
let!(:service_template) do
- PushoverService.create!(
+ Integrations::Pushover.create!(
template: true,
properties: {
device: 'MyDevice',
@@ -672,7 +672,7 @@ RSpec.describe Integration do
expect(described_class.service_name_to_model('asana')).to eq(Integrations::Asana)
# TODO We can remove this test when all models have been namespaced:
# https://gitlab.com/gitlab-org/gitlab/-/merge_requests/60968#note_570994955
- expect(described_class.service_name_to_model('pushover')).to eq(PushoverService)
+ expect(described_class.service_name_to_model('prometheus')).to eq(PrometheusService)
end
it 'raises an error if service name is invalid' do
diff --git a/spec/models/project_services/pushover_service_spec.rb b/spec/models/integrations/pushover_spec.rb
index b7d3b8987b8..be8dc5634a0 100644
--- a/spec/models/project_services/pushover_service_spec.rb
+++ b/spec/models/integrations/pushover_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe PushoverService do
+RSpec.describe Integrations::Pushover do
include StubRequests
describe 'Associations' do
diff --git a/spec/services/admin/propagate_service_template_spec.rb b/spec/services/admin/propagate_service_template_spec.rb
index 406da790a66..1bcf9af78ce 100644
--- a/spec/services/admin/propagate_service_template_spec.rb
+++ b/spec/services/admin/propagate_service_template_spec.rb
@@ -6,7 +6,7 @@ RSpec.describe Admin::PropagateServiceTemplate do
describe '.propagate' do
let_it_be(:project) { create(:project) }
let!(:service_template) do
- PushoverService.create!(
+ Integrations::Pushover.create!(
template: true,
active: true,
push_events: false,
diff --git a/spec/services/users/activity_service_spec.rb b/spec/services/users/activity_service_spec.rb
index 4bbf6a2bcb8..cfafa9eff45 100644
--- a/spec/services/users/activity_service_spec.rb
+++ b/spec/services/users/activity_service_spec.rb
@@ -84,4 +84,51 @@ RSpec.describe Users::ActivityService do
end
end
end
+
+ context 'with DB Load Balancing', :request_store, :redis, :clean_gitlab_redis_shared_state do
+ include_context 'clear DB Load Balancing configuration'
+
+ let(:user) { create(:user, last_activity_on: last_activity_on) }
+
+ context 'when last activity is in the past' do
+ let(:user) { create(:user, last_activity_on: Date.today - 1.week) }
+
+ context 'database load balancing is configured' do
+ before do
+ # Do not pollute AR for other tests, but rather simulate effect of configure_proxy.
+ allow(ActiveRecord::Base.singleton_class).to receive(:prepend)
+ ::Gitlab::Database::LoadBalancing.configure_proxy
+ allow(ActiveRecord::Base).to receive(:connection).and_return(::Gitlab::Database::LoadBalancing.proxy)
+ end
+
+ let(:service) do
+ service = described_class.new(user)
+
+ ::Gitlab::Database::LoadBalancing::Session.clear_session
+
+ service
+ end
+
+ it 'does not stick to primary' do
+ expect(::Gitlab::Database::LoadBalancing::Session.current).not_to be_performed_write
+
+ service.execute
+
+ expect(user.last_activity_on).to eq(Date.today)
+ expect(::Gitlab::Database::LoadBalancing::Session.current).to be_performed_write
+ expect(::Gitlab::Database::LoadBalancing::Session.current).not_to be_using_primary
+ end
+ end
+
+ context 'database load balancing is not configured' do
+ let(:service) { described_class.new(user) }
+
+ it 'updates user without error' do
+ service.execute
+
+ expect(user.last_activity_on).to eq(Date.today)
+ end
+ end
+ end
+ end
end
diff --git a/spec/tooling/danger/changelog_spec.rb b/spec/tooling/danger/changelog_spec.rb
index a47086f11f6..5777186cc28 100644
--- a/spec/tooling/danger/changelog_spec.rb
+++ b/spec/tooling/danger/changelog_spec.rb
@@ -53,6 +53,12 @@ RSpec.describe Tooling::Danger::Changelog do
it { is_expected.to have_attributes(errors: ["Commit #{commit.sha} uses an invalid changelog category: foo"]) }
end
+ context 'when a commit uses the wrong casing for a trailer' do
+ let(:commit) { double('commit', message: "Hello world\n\nchangelog: foo", sha: "abc123") }
+
+ it { is_expected.to have_attributes(errors: ["The changelog trailer for commit #{commit.sha} must be `Changelog` (starting with a capital C), not `changelog`"]) }
+ end
+
described_class::CATEGORIES.each do |category|
context "when commit include a changelog trailer with category set to '#{category}'" do
let(:commit) { double('commit', message: "Hello world\n\nChangelog: #{category}", sha: "abc123") }
diff --git a/spec/workers/propagate_integration_worker_spec.rb b/spec/workers/propagate_integration_worker_spec.rb
index 69b335bcbc7..2461b30a2ed 100644
--- a/spec/workers/propagate_integration_worker_spec.rb
+++ b/spec/workers/propagate_integration_worker_spec.rb
@@ -5,7 +5,7 @@ require 'spec_helper'
RSpec.describe PropagateIntegrationWorker do
describe '#perform' do
let(:integration) do
- PushoverService.create!(
+ Integrations::Pushover.create!(
template: true,
active: true,
device: 'MyDevice',
diff --git a/spec/workers/propagate_service_template_worker_spec.rb b/spec/workers/propagate_service_template_worker_spec.rb
index 793f0b9b08c..b692ce3d72b 100644
--- a/spec/workers/propagate_service_template_worker_spec.rb
+++ b/spec/workers/propagate_service_template_worker_spec.rb
@@ -7,7 +7,7 @@ RSpec.describe PropagateServiceTemplateWorker do
describe '#perform' do
it 'calls the propagate service with the template' do
- template = PushoverService.create!(
+ template = Integrations::Pushover.create!(
template: true,
active: true,
properties: {
diff --git a/tooling/danger/changelog.rb b/tooling/danger/changelog.rb
index 98035b5a41b..c053d366199 100644
--- a/tooling/danger/changelog.rb
+++ b/tooling/danger/changelog.rb
@@ -13,7 +13,7 @@ module Tooling
'meta'
].freeze
NO_CHANGELOG_CATEGORIES = %i[docs none].freeze
- CHANGELOG_TRAILER_REGEX = /^Changelog:\s*(?<category>.+)$/.freeze
+ CHANGELOG_TRAILER_REGEX = /^(?<name>Changelog):\s*(?<category>.+)$/i.freeze
CHANGELOG_EE_TRAILER_REGEX = /^EE: true$/.freeze
CHANGELOG_MODIFIED_URL_TEXT = "**CHANGELOG.md was edited.** Please remove the additions and follow the [changelog guidelines](https://docs.gitlab.com/ee/development/changelog.html).\n\n"
CHANGELOG_MISSING_URL_TEXT = "**[CHANGELOG missing](https://docs.gitlab.com/ee/development/changelog.html)**:\n\n"
@@ -124,8 +124,13 @@ module Tooling
def check_changelog_trailer(commit)
trailer = commit.message.match(CHANGELOG_TRAILER_REGEX)
+ name = trailer[:name]
category = trailer[:category]
+ unless name == 'Changelog'
+ return ChangelogCheckResult.error("The changelog trailer for commit #{commit.sha} must be `Changelog` (starting with a capital C), not `#{name}`")
+ end
+
return ChangelogCheckResult.empty if CATEGORIES.include?(category)
ChangelogCheckResult.error("Commit #{commit.sha} uses an invalid changelog category: #{category}")
diff --git a/yarn.lock b/yarn.lock
index f64dd9c13fb..608fa1179dd 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -908,10 +908,10 @@
resolved "https://registry.yarnpkg.com/@gitlab/tributejs/-/tributejs-1.0.0.tgz#672befa222aeffc83e7d799b0500a7a4418e59b8"
integrity sha512-nmKw1+hB6MHvlmPz63yPwVs1qQkycHwsKgxpEbzmky16Y6mL4EJMk3w1b8QlOAF/AIAzjCERPhe/R4MJiohbZw==
-"@gitlab/ui@29.31.0":
- version "29.31.0"
- resolved "https://registry.yarnpkg.com/@gitlab/ui/-/ui-29.31.0.tgz#4c07a20ef4de0585b241e19995e50e05b3ba3557"
- integrity sha512-pZEWKxH5yrAogfutST/hJoTqLtBkubQHVAgADlcyysl2Yc9trgd+OQBv3tBUn8FLItcGpgJsanAq8VOwGYkFaw==
+"@gitlab/ui@29.32.0":
+ version "29.32.0"
+ resolved "https://registry.yarnpkg.com/@gitlab/ui/-/ui-29.32.0.tgz#efcb078f68c65991ab33f43cdf21984467c012d6"
+ integrity sha512-epWZSbopeDjrkbF+obWk7nUx7HMfK8VKBk36xMV46fWmJVJSwhvg3kX9MzPlburaEURMNS1ucxCvH5bnGef6og==
dependencies:
"@babel/standalone" "^7.0.0"
"@gitlab/vue-toasted" "^1.3.0"