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-04-23 18:09:37 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2021-04-23 18:09:37 +0300
commit7e1e45d40a2312e20893ccfc6e7e5dfad6cf7b1c (patch)
tree7e0754c6a37ed9f3c13d15747cf8a5a5bce13387
parentecf1ffc19875a94c9de675b0559adc408b202515 (diff)
Add latest changes from gitlab-org/gitlab@master
-rw-r--r--.rubocop.yml3
-rw-r--r--app/assets/javascripts/pipelines/components/graph/graph_component_wrapper.vue2
-rw-r--r--app/helpers/groups_helper.rb7
-rw-r--r--app/services/users/destroy_service.rb2
-rw-r--r--app/uploaders/object_storage.rb1
-rw-r--r--app/validators/branch_filter_validator.rb4
-rw-r--r--app/validators/same_project_association_validator.rb2
-rw-r--r--changelogs/unreleased/321791-create-code-reivew-metrics-definitions.yml5
-rw-r--r--changelogs/unreleased/323106-experiment-cleanup-invite_your_teammates_banner_a.yml5
-rw-r--r--changelogs/unreleased/sh-remove-workhorse-extract-filename-base-ff.yml5
-rw-r--r--config/feature_flags/development/invite_your_teammates_banner_a.yml8
-rw-r--r--config/feature_flags/development/workhorse_extract_filename_base.yml8
-rw-r--r--config/initializers/puma_client_tempfile_patch.rb146
-rw-r--r--config/metrics/counts_28d/20210216175055_merge_requests.yml8
-rw-r--r--config/metrics/counts_28d/20210216175057_projects_with_disable_overriding_approvers_per_merge_request.yml9
-rw-r--r--config/metrics/counts_28d/20210216175059_projects_without_disable_overriding_approvers_per_merge_request.yml9
-rw-r--r--config/metrics/counts_28d/20210216175101_merge_requests_users.yml8
-rw-r--r--config/metrics/counts_28d/20210216175109_suggestions.yml8
-rw-r--r--config/metrics/counts_28d/20210216175113_merge_request_action_monthly.yml10
-rw-r--r--config/metrics/counts_28d/20210216175117_i_source_code_code_intelligence_monthly.yml12
-rw-r--r--config/metrics/counts_28d/20210216175120_i_code_review_mr_diffs_monthly.yml8
-rw-r--r--config/metrics/counts_28d/20210216175124_i_code_review_user_single_file_diffs_monthly.yml8
-rw-r--r--config/metrics/counts_28d/20210216175128_i_code_review_mr_single_file_diffs_monthly.yml8
-rw-r--r--config/metrics/counts_28d/20210216175132_i_code_review_user_create_mr_monthly.yml8
-rw-r--r--config/metrics/counts_28d/20210216175136_i_code_review_user_close_mr_monthly.yml8
-rw-r--r--config/metrics/counts_28d/20210216175140_i_code_review_user_reopen_mr_monthly.yml8
-rw-r--r--config/metrics/counts_28d/20210216175144_i_code_review_user_merge_mr_monthly.yml8
-rw-r--r--config/metrics/counts_28d/20210216175148_i_code_review_user_create_mr_comment_monthly.yml8
-rw-r--r--config/metrics/counts_28d/20210216175152_i_code_review_user_edit_mr_comment_monthly.yml8
-rw-r--r--config/metrics/counts_28d/20210216175156_i_code_review_user_remove_mr_comment_monthly.yml8
-rw-r--r--config/metrics/counts_28d/20210216175159_i_code_review_user_add_suggestion_monthly.yml6
-rw-r--r--config/metrics/counts_28d/20210216175203_i_code_review_user_apply_suggestion_monthly.yml4
-rw-r--r--config/metrics/counts_28d/20210216180956_clusters.yml12
-rw-r--r--config/metrics/counts_28d/20210216180958_clusters_applications_prometheus.yml12
-rw-r--r--config/metrics/counts_28d/20210216181000_operations_dashboard_default_dashboard.yml12
-rw-r--r--config/metrics/counts_28d/20210216181006_operations_dashboard_users_with_projects_added.yml12
-rw-r--r--config/metrics/counts_28d/20210216184312_i_code_review_user_toggled_task_item_status_monthly.yml15
-rw-r--r--config/metrics/counts_28d/20210216184322_i_code_review_user_approve_mr_monthly.yml15
-rw-r--r--config/metrics/counts_28d/20210216184326_i_code_review_user_unapprove_mr_monthly.yml15
-rw-r--r--config/metrics/counts_28d/20210216184330_i_code_review_user_resolve_thread_monthly.yml15
-rw-r--r--config/metrics/counts_28d/20210216184334_i_code_review_user_unresolve_thread_monthly.yml15
-rw-r--r--config/metrics/counts_28d/20210216184338_i_code_review_edit_mr_title_monthly.yml15
-rw-r--r--config/metrics/counts_28d/20210216184342_i_code_review_edit_mr_desc_monthly.yml15
-rw-r--r--config/metrics/counts_28d/20210216184353_i_code_review_user_create_review_note_monthly.yml15
-rw-r--r--config/metrics/counts_28d/20210216184357_i_code_review_user_publish_review_monthly.yml15
-rw-r--r--config/metrics/counts_28d/20210216184401_i_code_review_user_create_multiline_mr_comment_monthly.yml15
-rw-r--r--config/metrics/counts_28d/20210216184405_i_code_review_user_edit_multiline_mr_comment_monthly.yml15
-rw-r--r--config/metrics/counts_28d/20210216184409_i_code_review_user_remove_multiline_mr_comment_monthly.yml15
-rw-r--r--config/metrics/counts_28d/20210216184418_i_code_review_user_assigned_monthly.yml15
-rw-r--r--config/metrics/counts_28d/20210216184422_i_code_review_user_marked_as_draft_monthly.yml15
-rw-r--r--config/metrics/counts_28d/20210216184426_i_code_review_user_unmarked_as_draft_monthly.yml15
-rw-r--r--config/metrics/counts_28d/20210216184430_i_code_review_user_review_requested_monthly.yml15
-rw-r--r--config/metrics/counts_28d/20210216184434_i_code_review_user_approval_rule_added_monthly.yml15
-rw-r--r--config/metrics/counts_28d/20210216184438_i_code_review_user_approval_rule_deleted_monthly.yml15
-rw-r--r--config/metrics/counts_28d/20210216184442_i_code_review_user_approval_rule_edited_monthly.yml15
-rw-r--r--config/metrics/counts_28d/20210216184446_i_code_review_user_vs_code_api_request_monthly.yml15
-rw-r--r--config/metrics/counts_28d/20210216184450_i_code_review_user_create_mr_from_issue_monthly.yml15
-rw-r--r--config/metrics/counts_28d/20210216184454_code_review_total_unique_counts_monthly.yml15
-rw-r--r--config/metrics/counts_7d/20210216175111_merge_request_action_weekly.yml18
-rw-r--r--config/metrics/counts_7d/20210216175114_i_source_code_code_intelligence_weekly.yml18
-rw-r--r--config/metrics/counts_7d/20210216175118_i_code_review_mr_diffs_weekly.yml18
-rw-r--r--config/metrics/counts_7d/20210216175122_i_code_review_user_single_file_diffs_weekly.yml18
-rw-r--r--config/metrics/counts_7d/20210216175126_i_code_review_mr_single_file_diffs_weekly.yml19
-rw-r--r--config/metrics/counts_7d/20210216175130_i_code_review_user_create_mr_weekly.yml18
-rw-r--r--config/metrics/counts_7d/20210216175134_i_code_review_user_close_mr_weekly.yml18
-rw-r--r--config/metrics/counts_7d/20210216175138_i_code_review_user_reopen_mr_weekly.yml18
-rw-r--r--config/metrics/counts_7d/20210216175142_i_code_review_user_merge_mr_weekly.yml18
-rw-r--r--config/metrics/counts_7d/20210216175146_i_code_review_user_create_mr_comment_weekly.yml18
-rw-r--r--config/metrics/counts_7d/20210216175150_i_code_review_user_edit_mr_comment_weekly.yml18
-rw-r--r--config/metrics/counts_7d/20210216175154_i_code_review_user_remove_mr_comment_weekly.yml18
-rw-r--r--config/metrics/counts_7d/20210216175158_i_code_review_user_add_suggestion_weekly.yml18
-rw-r--r--config/metrics/counts_7d/20210216175201_i_code_review_user_apply_suggestion_weekly.yml18
-rw-r--r--config/metrics/counts_7d/20210216184310_i_code_review_user_toggled_task_item_status_weekly.yml17
-rw-r--r--config/metrics/counts_7d/20210216184320_i_code_review_user_approve_mr_weekly.yml17
-rw-r--r--config/metrics/counts_7d/20210216184324_i_code_review_user_unapprove_mr_weekly.yml17
-rw-r--r--config/metrics/counts_7d/20210216184328_i_code_review_user_resolve_thread_weekly.yml17
-rw-r--r--config/metrics/counts_7d/20210216184332_i_code_review_user_unresolve_thread_weekly.yml17
-rw-r--r--config/metrics/counts_7d/20210216184336_i_code_review_edit_mr_title_weekly.yml17
-rw-r--r--config/metrics/counts_7d/20210216184340_i_code_review_edit_mr_desc_weekly.yml17
-rw-r--r--config/metrics/counts_7d/20210216184351_i_code_review_user_create_review_note_weekly.yml17
-rw-r--r--config/metrics/counts_7d/20210216184355_i_code_review_user_publish_review_weekly.yml17
-rw-r--r--config/metrics/counts_7d/20210216184359_i_code_review_user_create_multiline_mr_comment_weekly.yml17
-rw-r--r--config/metrics/counts_7d/20210216184403_i_code_review_user_edit_multiline_mr_comment_weekly.yml17
-rw-r--r--config/metrics/counts_7d/20210216184407_i_code_review_user_remove_multiline_mr_comment_weekly.yml17
-rw-r--r--config/metrics/counts_7d/20210216184416_i_code_review_user_assigned_weekly.yml17
-rw-r--r--config/metrics/counts_7d/20210216184420_i_code_review_user_marked_as_draft_weekly.yml17
-rw-r--r--config/metrics/counts_7d/20210216184424_i_code_review_user_unmarked_as_draft_weekly.yml17
-rw-r--r--config/metrics/counts_7d/20210216184428_i_code_review_user_review_requested_weekly.yml17
-rw-r--r--config/metrics/counts_7d/20210216184432_i_code_review_user_approval_rule_added_weekly.yml17
-rw-r--r--config/metrics/counts_7d/20210216184436_i_code_review_user_approval_rule_deleted_weekly.yml17
-rw-r--r--config/metrics/counts_7d/20210216184440_i_code_review_user_approval_rule_edited_weekly.yml17
-rw-r--r--config/metrics/counts_7d/20210216184444_i_code_review_user_vs_code_api_request_weekly.yml17
-rw-r--r--config/metrics/counts_7d/20210216184448_i_code_review_user_create_mr_from_issue_weekly.yml17
-rw-r--r--config/metrics/counts_7d/20210216184452_code_review_total_unique_counts_weekly.yml17
-rw-r--r--config/metrics/counts_all/20210216175037_suggestions.yml8
-rw-r--r--config/metrics/counts_all/20210216175039_merge_requests.yml6
-rw-r--r--config/metrics/counts_all/20210216175041_merge_request_comment.yml8
-rw-r--r--config/metrics/counts_all/20210216175043_merge_request_create.yml8
-rw-r--r--config/metrics/counts_all/20210216175045_merge_requests.yml8
-rw-r--r--config/metrics/counts_all/20210216175053_suggestions.yml8
-rw-r--r--config/metrics/counts_all/20210216180942_operations_dashboard_default_dashboard.yml10
-rw-r--r--config/metrics/counts_all/20210216180944_operations_dashboard_users_with_projects_added.yml10
-rw-r--r--config/metrics/counts_all/20210216180945_clusters.yml12
-rw-r--r--config/metrics/counts_all/20210216180947_clusters_applications_prometheus.yml12
-rw-r--r--config/metrics/counts_all/20210216180949_operations_dashboard_default_dashboard.yml11
-rw-r--r--config/metrics/counts_all/20210216180953_operations_dashboard_users_with_projects_added.yml12
-rw-r--r--danger/changelog/Dangerfile63
-rw-r--r--doc/api/README.md4
-rw-r--r--doc/api/admin_sidekiq_queues.md4
-rw-r--r--doc/api/api_resources.md4
-rw-r--r--doc/api/applications.md4
-rw-r--r--doc/api/avatar.md4
-rw-r--r--doc/api/broadcast_messages.md4
-rw-r--r--doc/api/custom_attributes.md4
-rw-r--r--doc/api/dependencies.md4
-rw-r--r--doc/api/events.md6
-rw-r--r--doc/api/graphql/audit_report.md4
-rw-r--r--doc/api/graphql/getting_started.md4
-rw-r--r--doc/api/graphql/index.md4
-rw-r--r--doc/api/graphql/sample_issue_boards.md4
-rw-r--r--doc/api/graphql/users_example.md4
-rw-r--r--doc/api/group_badges.md4
-rw-r--r--doc/api/group_level_variables.md4
-rw-r--r--doc/api/import.md4
-rw-r--r--doc/api/issue_links.md6
-rw-r--r--doc/api/issues_statistics.md4
-rw-r--r--doc/api/license.md4
-rw-r--r--doc/api/managed_licenses.md4
-rw-r--r--doc/api/namespaces.md4
-rw-r--r--doc/api/notification_settings.md4
-rw-r--r--doc/api/openapi/openapi_interactive.md4
-rw-r--r--doc/api/resource_label_events.md4
-rw-r--r--doc/api/settings.md4
-rw-r--r--doc/api/sidekiq_metrics.md4
-rw-r--r--doc/api/statistics.md4
-rw-r--r--doc/api/system_hooks.md4
-rw-r--r--doc/api/templates/gitignores.md4
-rw-r--r--doc/api/templates/licenses.md4
-rw-r--r--doc/api/v3_to_v4.md4
-rw-r--r--doc/api/version.md4
-rw-r--r--doc/development/usage_ping/dictionary.md548
-rw-r--r--doc/integration/saml.md2
-rw-r--r--doc/security/two_factor_authentication.md4
-rw-r--r--doc/subscriptions/bronze_starter.md2
-rw-r--r--doc/user/admin_area/broadcast_messages.md4
-rw-r--r--doc/user/project/issue_board.md3
-rw-r--r--lib/feature/active_support_cache_store_adapter.rb5
-rw-r--r--lib/gitlab/ci/templates/Security/API-Fuzzing.latest.gitlab-ci.yml179
-rw-r--r--lib/gitlab/middleware/rack_multipart_tempfile_factory.rb4
-rw-r--r--locale/gitlab.pot3
-rw-r--r--rubocop/cop/active_model_errors_direct_manipulation.rb60
-rw-r--r--spec/helpers/groups_helper_spec.rb15
-rw-r--r--spec/lib/gitlab/middleware/rack_multipart_tempfile_factory_spec.rb42
-rw-r--r--spec/requests/api/projects_spec.rb1
-rw-r--r--spec/rubocop/cop/active_model_errors_direct_manipulation_spec.rb62
-rw-r--r--spec/uploaders/object_storage_spec.rb19
-rw-r--r--workhorse/internal/api/api.go2
-rw-r--r--workhorse/internal/filestore/save_file_opts.go23
-rw-r--r--workhorse/internal/filestore/save_file_opts_test.go14
-rw-r--r--workhorse/internal/upload/rewrite.go6
-rw-r--r--workhorse/internal/upload/uploads_test.go24
161 files changed, 1661 insertions, 1030 deletions
diff --git a/.rubocop.yml b/.rubocop.yml
index a19cba5eb46..229067167af 100644
--- a/.rubocop.yml
+++ b/.rubocop.yml
@@ -307,6 +307,9 @@ Cop/ActiveRecordAssociationReload:
- 'spec/**/*'
- 'ee/spec/**/*'
+Cop/ActiveModelErrorsDirectManipulation:
+ Enabled: true
+
Gitlab/AvoidFeatureGet:
Enabled: true
diff --git a/app/assets/javascripts/pipelines/components/graph/graph_component_wrapper.vue b/app/assets/javascripts/pipelines/components/graph/graph_component_wrapper.vue
index 0355e510f73..5c6c8b40af5 100644
--- a/app/assets/javascripts/pipelines/components/graph/graph_component_wrapper.vue
+++ b/app/assets/javascripts/pipelines/components/graph/graph_component_wrapper.vue
@@ -69,7 +69,7 @@ export default {
callouts: {
query: getUserCallouts,
update(data) {
- return data?.currentUser?.callouts?.nodes.map((callout) => callout.featureName);
+ return data?.currentUser?.callouts?.nodes.map((callout) => callout.featureName) || [];
},
error(err) {
reportToSentry(
diff --git a/app/helpers/groups_helper.rb b/app/helpers/groups_helper.rb
index 5ce23baa226..1f21da6f4c6 100644
--- a/app/helpers/groups_helper.rb
+++ b/app/helpers/groups_helper.rb
@@ -206,10 +206,9 @@ module GroupsHelper
end
def show_invite_banner?(group)
- Feature.enabled?(:invite_your_teammates_banner_a, group) &&
- can?(current_user, :admin_group, group) &&
- !just_created? &&
- !multiple_members?(group)
+ can?(current_user, :admin_group, group) &&
+ !just_created? &&
+ !multiple_members?(group)
end
def render_setting_to_allow_project_access_token_creation?(group)
diff --git a/app/services/users/destroy_service.rb b/app/services/users/destroy_service.rb
index 613d2e4ad82..63a02ebede5 100644
--- a/app/services/users/destroy_service.rb
+++ b/app/services/users/destroy_service.rb
@@ -31,7 +31,7 @@ module Users
end
if !delete_solo_owned_groups && user.solo_owned_groups.present?
- user.errors[:base] << 'You must transfer ownership or delete groups before you can remove user'
+ user.errors.add(:base, 'You must transfer ownership or delete groups before you can remove user')
return user
end
diff --git a/app/uploaders/object_storage.rb b/app/uploaders/object_storage.rb
index ea71930062c..d4c74ce277f 100644
--- a/app/uploaders/object_storage.rb
+++ b/app/uploaders/object_storage.rb
@@ -187,7 +187,6 @@ module ObjectStorage
hash[:TempPath] = workhorse_local_upload_path
end
- hash[:FeatureFlagExtractBase] = Feature.enabled?(:workhorse_extract_filename_base, default_enabled: :yaml)
hash[:MaximumSize] = maximum_size if maximum_size.present?
end
end
diff --git a/app/validators/branch_filter_validator.rb b/app/validators/branch_filter_validator.rb
index 6a0899be850..89d6343a9a4 100644
--- a/app/validators/branch_filter_validator.rb
+++ b/app/validators/branch_filter_validator.rb
@@ -20,11 +20,11 @@ class BranchFilterValidator < ActiveModel::EachValidator
value_without_wildcards = value.tr('*', 'x')
unless Gitlab::GitRefValidator.validate(value_without_wildcards)
- record.errors[attribute] << "is not a valid branch name"
+ record.errors.add(attribute, "is not a valid branch name")
end
unless value.length <= 4000
- record.errors[attribute] << "is longer than the allowed length of 4000 characters."
+ record.errors.add(attribute, "is longer than the allowed length of 4000 characters.")
end
end
end
diff --git a/app/validators/same_project_association_validator.rb b/app/validators/same_project_association_validator.rb
index 2af2a21fa9a..2fcc369b6ef 100644
--- a/app/validators/same_project_association_validator.rb
+++ b/app/validators/same_project_association_validator.rb
@@ -16,6 +16,6 @@ class SameProjectAssociationValidator < ActiveModel::EachValidator
def validate_each(record, attribute, value)
return if record.project == value&.project
- record.errors[attribute] << 'must associate the same project'
+ record.errors.add(attribute, 'must associate the same project')
end
end
diff --git a/changelogs/unreleased/321791-create-code-reivew-metrics-definitions.yml b/changelogs/unreleased/321791-create-code-reivew-metrics-definitions.yml
new file mode 100644
index 00000000000..1dd231db312
--- /dev/null
+++ b/changelogs/unreleased/321791-create-code-reivew-metrics-definitions.yml
@@ -0,0 +1,5 @@
+---
+title: Update Create:Code Review metrics definitions
+merge_request: 59816
+author:
+type: other
diff --git a/changelogs/unreleased/323106-experiment-cleanup-invite_your_teammates_banner_a.yml b/changelogs/unreleased/323106-experiment-cleanup-invite_your_teammates_banner_a.yml
new file mode 100644
index 00000000000..8913d6ee25b
--- /dev/null
+++ b/changelogs/unreleased/323106-experiment-cleanup-invite_your_teammates_banner_a.yml
@@ -0,0 +1,5 @@
+---
+title: Remove feature flag from invite members banner
+merge_request: 59203
+author:
+type: added
diff --git a/changelogs/unreleased/sh-remove-workhorse-extract-filename-base-ff.yml b/changelogs/unreleased/sh-remove-workhorse-extract-filename-base-ff.yml
new file mode 100644
index 00000000000..f4b1b342d28
--- /dev/null
+++ b/changelogs/unreleased/sh-remove-workhorse-extract-filename-base-ff.yml
@@ -0,0 +1,5 @@
+---
+title: Remove workhorse_extract_filename_base feature flag
+merge_request: 60070
+author:
+type: changed
diff --git a/config/feature_flags/development/invite_your_teammates_banner_a.yml b/config/feature_flags/development/invite_your_teammates_banner_a.yml
deleted file mode 100644
index c7b16357c68..00000000000
--- a/config/feature_flags/development/invite_your_teammates_banner_a.yml
+++ /dev/null
@@ -1,8 +0,0 @@
----
-name: invite_your_teammates_banner_a
-introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/37658
-rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/231275
-milestone: '13.4'
-type: development
-group: group::expansion
-default_enabled: false
diff --git a/config/feature_flags/development/workhorse_extract_filename_base.yml b/config/feature_flags/development/workhorse_extract_filename_base.yml
deleted file mode 100644
index a80f6c45f28..00000000000
--- a/config/feature_flags/development/workhorse_extract_filename_base.yml
+++ /dev/null
@@ -1,8 +0,0 @@
----
-name: workhorse_extract_filename_base
-introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/57889
-rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/326379
-milestone: '13.11'
-type: development
-group: group::source code
-default_enabled: true
diff --git a/config/initializers/puma_client_tempfile_patch.rb b/config/initializers/puma_client_tempfile_patch.rb
index e1faa21804f..33e7085944c 100644
--- a/config/initializers/puma_client_tempfile_patch.rb
+++ b/config/initializers/puma_client_tempfile_patch.rb
@@ -3,99 +3,97 @@
if Gitlab::Runtime.puma?
raise "Remove this monkey patch: #{__FILE__}" unless Puma::Const::VERSION == '5.1.1'
- if ENV['GITLAB_TEMPFILE_IMMEDIATE_UNLINK'] == '1'
- # This is copied from https://github.com/puma/puma/blob/v5.1.1/lib/puma/client.rb,
- # with two additions: both times we create a temporary file, we immediately
- # call `#unlink`. This means that if the process gets terminated without being
- # able to clean up itself, the temporary file will not linger on the file
- # system. We will try to get this patch accepted upstream if it works for us
- # (we just need to check if the temporary file responds to `#unlink` as that
- # won't work on Windows, for instance).
- module Puma
- class Client
- private
-
- def setup_body
- @body_read_start = Process.clock_gettime(Process::CLOCK_MONOTONIC, :millisecond)
-
- if @env[HTTP_EXPECT] == CONTINUE
- # TODO allow a hook here to check the headers before
- # going forward
- @io << HTTP_11_100
- @io.flush
- end
+ # This is copied from https://github.com/puma/puma/blob/v5.1.1/lib/puma/client.rb,
+ # with two additions: both times we create a temporary file, we immediately
+ # call `#unlink`. This means that if the process gets terminated without being
+ # able to clean up itself, the temporary file will not linger on the file
+ # system. We will try to get this patch accepted upstream if it works for us
+ # (we just need to check if the temporary file responds to `#unlink` as that
+ # won't work on Windows, for instance).
+ module Puma
+ class Client
+ private
+
+ def setup_body
+ @body_read_start = Process.clock_gettime(Process::CLOCK_MONOTONIC, :millisecond)
+
+ if @env[HTTP_EXPECT] == CONTINUE
+ # TODO allow a hook here to check the headers before
+ # going forward
+ @io << HTTP_11_100
+ @io.flush
+ end
- @read_header = false
+ @read_header = false
- body = @parser.body
+ body = @parser.body
- te = @env[TRANSFER_ENCODING2]
+ te = @env[TRANSFER_ENCODING2]
- if te
- if te.include?(",")
- te.split(",").each do |part|
- if CHUNKED.casecmp(part.strip) == 0 # rubocop:disable Metrics/BlockNesting
- return setup_chunked_body(body)
- end
+ if te
+ if te.include?(",")
+ te.split(",").each do |part|
+ if CHUNKED.casecmp(part.strip) == 0 # rubocop:disable Metrics/BlockNesting
+ return setup_chunked_body(body)
end
- elsif CHUNKED.casecmp(te) == 0
- return setup_chunked_body(body)
end
+ elsif CHUNKED.casecmp(te) == 0
+ return setup_chunked_body(body)
end
+ end
- @chunked_body = false
-
- cl = @env[CONTENT_LENGTH]
-
- unless cl
- @buffer = body.empty? ? nil : body
- @body = EmptyBody
- set_ready
- return true
- end
-
- remain = cl.to_i - body.bytesize
+ @chunked_body = false
- if remain <= 0
- @body = StringIO.new(body)
- @buffer = nil
- set_ready
- return true
- end
-
- if remain > MAX_BODY
- @body = Tempfile.new(Const::PUMA_TMP_BASE)
- @body.binmode
- @body.unlink # This is the changed part
- @tempfile = @body
- else
- # The body[0,0] trick is to get an empty string in the same
- # encoding as body.
- @body = StringIO.new body[0,0] # rubocop:disable Layout/SpaceAfterComma
- end
+ cl = @env[CONTENT_LENGTH]
- @body.write body
+ unless cl
+ @buffer = body.empty? ? nil : body
+ @body = EmptyBody
+ set_ready
+ return true
+ end
- @body_remain = remain
+ remain = cl.to_i - body.bytesize
- return false # rubocop:disable Style/RedundantReturn
+ if remain <= 0
+ @body = StringIO.new(body)
+ @buffer = nil
+ set_ready
+ return true
end
- def setup_chunked_body(body)
- @chunked_body = true
- @partial_part_left = 0
- @prev_chunk = ""
-
+ if remain > MAX_BODY
@body = Tempfile.new(Const::PUMA_TMP_BASE)
@body.binmode
@body.unlink # This is the changed part
@tempfile = @body
- @chunked_content_length = 0
+ else
+ # The body[0,0] trick is to get an empty string in the same
+ # encoding as body.
+ @body = StringIO.new body[0,0] # rubocop:disable Layout/SpaceAfterComma
+ end
- if decode_chunk(body)
- @env[CONTENT_LENGTH] = @chunked_content_length
- return true # rubocop:disable Style/RedundantReturn
- end
+ @body.write body
+
+ @body_remain = remain
+
+ return false # rubocop:disable Style/RedundantReturn
+ end
+
+ def setup_chunked_body(body)
+ @chunked_body = true
+ @partial_part_left = 0
+ @prev_chunk = ""
+
+ @body = Tempfile.new(Const::PUMA_TMP_BASE)
+ @body.binmode
+ @body.unlink # This is the changed part
+ @tempfile = @body
+ @chunked_content_length = 0
+
+ if decode_chunk(body)
+ @env[CONTENT_LENGTH] = @chunked_content_length
+ return true # rubocop:disable Style/RedundantReturn
end
end
end
diff --git a/config/metrics/counts_28d/20210216175055_merge_requests.yml b/config/metrics/counts_28d/20210216175055_merge_requests.yml
index 048ea4fd917..bb1f64177a1 100644
--- a/config/metrics/counts_28d/20210216175055_merge_requests.yml
+++ b/config/metrics/counts_28d/20210216175055_merge_requests.yml
@@ -1,6 +1,6 @@
---
key_path: usage_activity_by_stage_monthly.create.merge_requests
-description:
+description: Count of the number of users creating merge requests
product_section: dev
product_stage: create
product_group: group::code review
@@ -8,9 +8,11 @@ product_category: code_review
value_type: number
status: data_available
time_frame: 28d
-data_source:
+data_source: database
distribution:
- ce
+- ee
tier:
- free
-skip_validation: true
+- premium
+- ultimate
diff --git a/config/metrics/counts_28d/20210216175057_projects_with_disable_overriding_approvers_per_merge_request.yml b/config/metrics/counts_28d/20210216175057_projects_with_disable_overriding_approvers_per_merge_request.yml
index 7e9186a3a82..2db67a4028c 100644
--- a/config/metrics/counts_28d/20210216175057_projects_with_disable_overriding_approvers_per_merge_request.yml
+++ b/config/metrics/counts_28d/20210216175057_projects_with_disable_overriding_approvers_per_merge_request.yml
@@ -1,17 +1,18 @@
---
key_path: usage_activity_by_stage_monthly.create.projects_with_disable_overriding_approvers_per_merge_request
-description:
+description: Count of the number of projects with setting to disable overriding approvers per merge request
product_section: dev
product_stage: create
-product_group: group::code review
+product_group: group::source code
product_category: source_code_management
value_type: number
status: data_available
time_frame: 28d
-data_source:
+data_source: database
distribution:
- ce
- ee
tier:
- free
-skip_validation: true
+- premium
+- ultimate
diff --git a/config/metrics/counts_28d/20210216175059_projects_without_disable_overriding_approvers_per_merge_request.yml b/config/metrics/counts_28d/20210216175059_projects_without_disable_overriding_approvers_per_merge_request.yml
index 56107e921f2..152c248802a 100644
--- a/config/metrics/counts_28d/20210216175059_projects_without_disable_overriding_approvers_per_merge_request.yml
+++ b/config/metrics/counts_28d/20210216175059_projects_without_disable_overriding_approvers_per_merge_request.yml
@@ -1,17 +1,18 @@
---
key_path: usage_activity_by_stage_monthly.create.projects_without_disable_overriding_approvers_per_merge_request
-description:
+description: Count of the number of projects without setting to disable overriding approvers per merge request
product_section: dev
product_stage: create
-product_group: group::code review
+product_group: group::source code
product_category: source_code_management
value_type: number
status: data_available
time_frame: 28d
-data_source:
+data_source: database
distribution:
- ce
- ee
tier:
- free
-skip_validation: true
+- premium
+- ultimate
diff --git a/config/metrics/counts_28d/20210216175101_merge_requests_users.yml b/config/metrics/counts_28d/20210216175101_merge_requests_users.yml
index 563a56c2a0f..3df6f0f080a 100644
--- a/config/metrics/counts_28d/20210216175101_merge_requests_users.yml
+++ b/config/metrics/counts_28d/20210216175101_merge_requests_users.yml
@@ -1,6 +1,6 @@
---
key_path: usage_activity_by_stage_monthly.create.merge_requests_users
-description:
+description: Monthly count of the number of merge request users
product_section: dev
product_stage: create
product_group: group::code review
@@ -8,9 +8,11 @@ product_category: code_review
value_type: number
status: data_available
time_frame: 28d
-data_source:
+data_source: redis_hll
distribution:
- ce
+- ee
tier:
- free
-skip_validation: true
+- premium
+- ultimate
diff --git a/config/metrics/counts_28d/20210216175109_suggestions.yml b/config/metrics/counts_28d/20210216175109_suggestions.yml
index 74e388fd07d..b3f019c59bc 100644
--- a/config/metrics/counts_28d/20210216175109_suggestions.yml
+++ b/config/metrics/counts_28d/20210216175109_suggestions.yml
@@ -1,6 +1,6 @@
---
key_path: usage_activity_by_stage_monthly.create.suggestions
-description:
+description: Count of unique users per month who create suggestions in merge request comments
product_section: dev
product_stage: create
product_group: group::code review
@@ -8,9 +8,11 @@ product_category: code_review
value_type: number
status: data_available
time_frame: 28d
-data_source:
+data_source: database
distribution:
- ce
+- ee
tier:
- free
-skip_validation: true
+- premium
+- ultimate
diff --git a/config/metrics/counts_28d/20210216175113_merge_request_action_monthly.yml b/config/metrics/counts_28d/20210216175113_merge_request_action_monthly.yml
index de3049f76fa..212b59a0dd6 100644
--- a/config/metrics/counts_28d/20210216175113_merge_request_action_monthly.yml
+++ b/config/metrics/counts_28d/20210216175113_merge_request_action_monthly.yml
@@ -1,16 +1,18 @@
---
key_path: redis_hll_counters.source_code.merge_request_action_monthly
-description:
+description: Count of unique users who perform an action on a merge request
product_section: dev
product_stage: create
product_group: group::code review
-product_category:
+product_category: code_review
value_type: number
status: data_available
time_frame: 28d
data_source: redis_hll
distribution:
- ce
+- ee
tier:
-- free
-skip_validation: true
+ - free
+ - premium
+ - ultimate
diff --git a/config/metrics/counts_28d/20210216175117_i_source_code_code_intelligence_monthly.yml b/config/metrics/counts_28d/20210216175117_i_source_code_code_intelligence_monthly.yml
index 4f409dbf8c5..c8d0d7eb575 100644
--- a/config/metrics/counts_28d/20210216175117_i_source_code_code_intelligence_monthly.yml
+++ b/config/metrics/counts_28d/20210216175117_i_source_code_code_intelligence_monthly.yml
@@ -1,16 +1,18 @@
---
key_path: redis_hll_counters.source_code.i_source_code_code_intelligence_monthly
-description:
+description: Count of unique users who use code intelligence
product_section: dev
product_stage: create
-product_group: group::code review
-product_category:
+product_group: group::source code
+product_category: source_code_management
value_type: number
status: data_available
time_frame: 28d
data_source: redis_hll
distribution:
- ce
+- ee
tier:
-- free
-skip_validation: true
+ - free
+ - premium
+ - ultimate
diff --git a/config/metrics/counts_28d/20210216175120_i_code_review_mr_diffs_monthly.yml b/config/metrics/counts_28d/20210216175120_i_code_review_mr_diffs_monthly.yml
index a23aed69c72..1c4b558288a 100644
--- a/config/metrics/counts_28d/20210216175120_i_code_review_mr_diffs_monthly.yml
+++ b/config/metrics/counts_28d/20210216175120_i_code_review_mr_diffs_monthly.yml
@@ -1,6 +1,6 @@
---
key_path: redis_hll_counters.code_review.i_code_review_mr_diffs_monthly
-description: Count of unique merge requests per week|month with diffs viewed
+description: Count of unique merge requests per month with diffs viewed
product_section: dev
product_stage: create
product_group: group::code review
@@ -11,6 +11,8 @@ time_frame: 28d
data_source: redis_hll
distribution:
- ce
+- ee
tier:
-- free
-skip_validation: true
+ - free
+ - premium
+ - ultimate
diff --git a/config/metrics/counts_28d/20210216175124_i_code_review_user_single_file_diffs_monthly.yml b/config/metrics/counts_28d/20210216175124_i_code_review_user_single_file_diffs_monthly.yml
index dd315b5634d..d5fded16ee2 100644
--- a/config/metrics/counts_28d/20210216175124_i_code_review_user_single_file_diffs_monthly.yml
+++ b/config/metrics/counts_28d/20210216175124_i_code_review_user_single_file_diffs_monthly.yml
@@ -1,6 +1,6 @@
---
key_path: redis_hll_counters.code_review.i_code_review_user_single_file_diffs_monthly
-description: Count of unique users per week|month with diffs viewed file by file
+description: Count of unique users per month with diffs viewed file by file
product_section: dev
product_stage: create
product_group: group::code review
@@ -11,6 +11,8 @@ time_frame: 28d
data_source: redis_hll
distribution:
- ce
+- ee
tier:
-- free
-skip_validation: true
+ - free
+ - premium
+ - ultimate
diff --git a/config/metrics/counts_28d/20210216175128_i_code_review_mr_single_file_diffs_monthly.yml b/config/metrics/counts_28d/20210216175128_i_code_review_mr_single_file_diffs_monthly.yml
index 82d1c86d146..eb566473b3a 100644
--- a/config/metrics/counts_28d/20210216175128_i_code_review_mr_single_file_diffs_monthly.yml
+++ b/config/metrics/counts_28d/20210216175128_i_code_review_mr_single_file_diffs_monthly.yml
@@ -1,6 +1,6 @@
---
key_path: redis_hll_counters.code_review.i_code_review_mr_single_file_diffs_monthly
-description: Count of unique merge requests per week|month with diffs viewed file
+description: Count of unique merge requests per month with diffs viewed file
by file
product_section: dev
product_stage: create
@@ -12,6 +12,8 @@ time_frame: 28d
data_source: redis_hll
distribution:
- ce
+- ee
tier:
-- free
-skip_validation: true
+ - free
+ - premium
+ - ultimate
diff --git a/config/metrics/counts_28d/20210216175132_i_code_review_user_create_mr_monthly.yml b/config/metrics/counts_28d/20210216175132_i_code_review_user_create_mr_monthly.yml
index 28d4477c037..eb95ff294d8 100644
--- a/config/metrics/counts_28d/20210216175132_i_code_review_user_create_mr_monthly.yml
+++ b/config/metrics/counts_28d/20210216175132_i_code_review_user_create_mr_monthly.yml
@@ -1,6 +1,6 @@
---
key_path: redis_hll_counters.code_review.i_code_review_user_create_mr_monthly
-description: Count of unique users per week|month who created a MR
+description: Count of unique users per month who created a MR
product_section: dev
product_stage: create
product_group: group::code review
@@ -11,6 +11,8 @@ time_frame: 28d
data_source: redis_hll
distribution:
- ce
+- ee
tier:
-- free
-skip_validation: true
+ - free
+ - premium
+ - ultimate
diff --git a/config/metrics/counts_28d/20210216175136_i_code_review_user_close_mr_monthly.yml b/config/metrics/counts_28d/20210216175136_i_code_review_user_close_mr_monthly.yml
index c73a5da2585..de9d81070e8 100644
--- a/config/metrics/counts_28d/20210216175136_i_code_review_user_close_mr_monthly.yml
+++ b/config/metrics/counts_28d/20210216175136_i_code_review_user_close_mr_monthly.yml
@@ -1,6 +1,6 @@
---
key_path: redis_hll_counters.code_review.i_code_review_user_close_mr_monthly
-description: Count of unique users per week|month who closed a MR
+description: Count of unique users per month who closed a MR
product_section: dev
product_stage: create
product_group: group::code review
@@ -11,6 +11,8 @@ time_frame: 28d
data_source: redis_hll
distribution:
- ce
+- ee
tier:
-- free
-skip_validation: true
+ - free
+ - premium
+ - ultimate
diff --git a/config/metrics/counts_28d/20210216175140_i_code_review_user_reopen_mr_monthly.yml b/config/metrics/counts_28d/20210216175140_i_code_review_user_reopen_mr_monthly.yml
index 173ff6a995e..0d954358bbe 100644
--- a/config/metrics/counts_28d/20210216175140_i_code_review_user_reopen_mr_monthly.yml
+++ b/config/metrics/counts_28d/20210216175140_i_code_review_user_reopen_mr_monthly.yml
@@ -1,6 +1,6 @@
---
key_path: redis_hll_counters.code_review.i_code_review_user_reopen_mr_monthly
-description: Count of unique users per week|month who reopened a MR
+description: Count of unique users per month who reopened a MR
product_section: dev
product_stage: create
product_group: group::code review
@@ -11,6 +11,8 @@ time_frame: 28d
data_source: redis_hll
distribution:
- ce
+- ee
tier:
-- free
-skip_validation: true
+ - free
+ - premium
+ - ultimate
diff --git a/config/metrics/counts_28d/20210216175144_i_code_review_user_merge_mr_monthly.yml b/config/metrics/counts_28d/20210216175144_i_code_review_user_merge_mr_monthly.yml
index 0c126afeb64..bdbd0346dbd 100644
--- a/config/metrics/counts_28d/20210216175144_i_code_review_user_merge_mr_monthly.yml
+++ b/config/metrics/counts_28d/20210216175144_i_code_review_user_merge_mr_monthly.yml
@@ -1,6 +1,6 @@
---
key_path: redis_hll_counters.code_review.i_code_review_user_merge_mr_monthly
-description: Count of unique users per week|month who merged a MR
+description: Count of unique users per month who merged a MR
product_section: dev
product_stage: create
product_group: group::code review
@@ -11,6 +11,8 @@ time_frame: 28d
data_source: redis_hll
distribution:
- ce
+- ee
tier:
-- free
-skip_validation: true
+ - free
+ - premium
+ - ultimate
diff --git a/config/metrics/counts_28d/20210216175148_i_code_review_user_create_mr_comment_monthly.yml b/config/metrics/counts_28d/20210216175148_i_code_review_user_create_mr_comment_monthly.yml
index 1c3801e77bc..bf58a8632b8 100644
--- a/config/metrics/counts_28d/20210216175148_i_code_review_user_create_mr_comment_monthly.yml
+++ b/config/metrics/counts_28d/20210216175148_i_code_review_user_create_mr_comment_monthly.yml
@@ -1,6 +1,6 @@
---
key_path: redis_hll_counters.code_review.i_code_review_user_create_mr_comment_monthly
-description: Count of unique users per week|month who commented on a MR
+description: Count of unique users per month who commented on a MR
product_section: dev
product_stage: create
product_group: group::code review
@@ -11,6 +11,8 @@ time_frame: 28d
data_source: redis_hll
distribution:
- ce
+- ee
tier:
-- free
-skip_validation: true
+ - free
+ - premium
+ - ultimate
diff --git a/config/metrics/counts_28d/20210216175152_i_code_review_user_edit_mr_comment_monthly.yml b/config/metrics/counts_28d/20210216175152_i_code_review_user_edit_mr_comment_monthly.yml
index 5a0bf9346a0..045dbba58b7 100644
--- a/config/metrics/counts_28d/20210216175152_i_code_review_user_edit_mr_comment_monthly.yml
+++ b/config/metrics/counts_28d/20210216175152_i_code_review_user_edit_mr_comment_monthly.yml
@@ -1,6 +1,6 @@
---
key_path: redis_hll_counters.code_review.i_code_review_user_edit_mr_comment_monthly
-description: Count of unique users per week|month who edited a comment on a MR
+description: Count of unique users per month who edited a comment on a MR
product_section: dev
product_stage: create
product_group: group::code review
@@ -11,6 +11,8 @@ time_frame: 28d
data_source: redis_hll
distribution:
- ce
+- ee
tier:
-- free
-skip_validation: true
+ - free
+ - premium
+ - ultimate
diff --git a/config/metrics/counts_28d/20210216175156_i_code_review_user_remove_mr_comment_monthly.yml b/config/metrics/counts_28d/20210216175156_i_code_review_user_remove_mr_comment_monthly.yml
index 9e8f191d7e5..5cd5e005262 100644
--- a/config/metrics/counts_28d/20210216175156_i_code_review_user_remove_mr_comment_monthly.yml
+++ b/config/metrics/counts_28d/20210216175156_i_code_review_user_remove_mr_comment_monthly.yml
@@ -1,6 +1,6 @@
---
key_path: redis_hll_counters.code_review.i_code_review_user_remove_mr_comment_monthly
-description: Count of unique users per week|month who removed a comment on a MR
+description: Count of unique users per month who removed a comment on a MR
product_section: dev
product_stage: create
product_group: group::code review
@@ -11,6 +11,8 @@ time_frame: 28d
data_source: redis_hll
distribution:
- ce
+- ee
tier:
-- free
-skip_validation: true
+ - free
+ - premium
+ - ultimate
diff --git a/config/metrics/counts_28d/20210216175159_i_code_review_user_add_suggestion_monthly.yml b/config/metrics/counts_28d/20210216175159_i_code_review_user_add_suggestion_monthly.yml
index 9b3c359b6f0..7ebf2072406 100644
--- a/config/metrics/counts_28d/20210216175159_i_code_review_user_add_suggestion_monthly.yml
+++ b/config/metrics/counts_28d/20210216175159_i_code_review_user_add_suggestion_monthly.yml
@@ -11,6 +11,8 @@ time_frame: 28d
data_source: redis_hll
distribution:
- ce
+- ee
tier:
-- free
-skip_validation: true
+ - free
+ - premium
+ - ultimate
diff --git a/config/metrics/counts_28d/20210216175203_i_code_review_user_apply_suggestion_monthly.yml b/config/metrics/counts_28d/20210216175203_i_code_review_user_apply_suggestion_monthly.yml
index be38418982d..548dddda36f 100644
--- a/config/metrics/counts_28d/20210216175203_i_code_review_user_apply_suggestion_monthly.yml
+++ b/config/metrics/counts_28d/20210216175203_i_code_review_user_apply_suggestion_monthly.yml
@@ -11,6 +11,8 @@ time_frame: 28d
data_source: redis_hll
distribution:
- ce
+- ee
tier:
- free
-skip_validation: true
+- premium
+- ultimate
diff --git a/config/metrics/counts_28d/20210216180956_clusters.yml b/config/metrics/counts_28d/20210216180956_clusters.yml
index eb5d60f8a61..c33a588fed8 100644
--- a/config/metrics/counts_28d/20210216180956_clusters.yml
+++ b/config/metrics/counts_28d/20210216180956_clusters.yml
@@ -1,6 +1,6 @@
---
key_path: usage_activity_by_stage_monthly.monitor.clusters
-description: Total GitLab Managed clusters both enabled and disabled
+description: Count users creating clusters in last 28 days.
product_section: ops
product_stage:
product_group: group::monitor
@@ -8,9 +8,11 @@ product_category: metrics
value_type: number
status: data_available
time_frame: 28d
-data_source:
+data_source: database
distribution:
-- ce
+ - ce
+ - ee
tier:
-- free
-skip_validation: true
+ - free
+ - premium
+ - ultimate
diff --git a/config/metrics/counts_28d/20210216180958_clusters_applications_prometheus.yml b/config/metrics/counts_28d/20210216180958_clusters_applications_prometheus.yml
index 97fb359c657..5f2a94cc3ea 100644
--- a/config/metrics/counts_28d/20210216180958_clusters_applications_prometheus.yml
+++ b/config/metrics/counts_28d/20210216180958_clusters_applications_prometheus.yml
@@ -1,6 +1,6 @@
---
key_path: usage_activity_by_stage_monthly.monitor.clusters_applications_prometheus
-description: Total GitLab Managed clusters with Prometheus enabled
+description: Users creating clusters with Prometheus enabled in last 28 days.
product_section: ops
product_stage:
product_group: group::monitor
@@ -8,9 +8,11 @@ product_category: metrics
value_type: number
status: data_available
time_frame: 28d
-data_source:
+data_source: database
distribution:
-- ce
+ - ce
+ - ee
tier:
-- free
-skip_validation: true
+ - free
+ - premium
+ - ultimate
diff --git a/config/metrics/counts_28d/20210216181000_operations_dashboard_default_dashboard.yml b/config/metrics/counts_28d/20210216181000_operations_dashboard_default_dashboard.yml
index 96d737d9d14..28391dfb558 100644
--- a/config/metrics/counts_28d/20210216181000_operations_dashboard_default_dashboard.yml
+++ b/config/metrics/counts_28d/20210216181000_operations_dashboard_default_dashboard.yml
@@ -4,13 +4,15 @@ description: Active users with enabled operations dashboard
product_section: ops
product_stage:
product_group: group::monitor
-product_category:
+product_category: metrics
value_type: number
status: data_available
time_frame: 28d
-data_source:
+data_source: database
distribution:
-- ce
+ - ce
+ - ee
tier:
-- free
-skip_validation: true
+ - free
+ - premium
+ - ultimate
diff --git a/config/metrics/counts_28d/20210216181006_operations_dashboard_users_with_projects_added.yml b/config/metrics/counts_28d/20210216181006_operations_dashboard_users_with_projects_added.yml
index 2533117f03b..4ef89c2b47d 100644
--- a/config/metrics/counts_28d/20210216181006_operations_dashboard_users_with_projects_added.yml
+++ b/config/metrics/counts_28d/20210216181006_operations_dashboard_users_with_projects_added.yml
@@ -4,13 +4,15 @@ description: Active users with projects on operations dashboard
product_section: ops
product_stage:
product_group: group::monitor
-product_category:
+product_category: metrics
value_type: number
status: data_available
time_frame: 28d
-data_source:
+data_source: database
distribution:
-- ce
+ - ce
+ - ee
tier:
-- free
-skip_validation: true
+ - free
+ - premium
+ - ultimate
diff --git a/config/metrics/counts_28d/20210216184312_i_code_review_user_toggled_task_item_status_monthly.yml b/config/metrics/counts_28d/20210216184312_i_code_review_user_toggled_task_item_status_monthly.yml
index 12d7e8ab749..b562a0c63d5 100644
--- a/config/metrics/counts_28d/20210216184312_i_code_review_user_toggled_task_item_status_monthly.yml
+++ b/config/metrics/counts_28d/20210216184312_i_code_review_user_toggled_task_item_status_monthly.yml
@@ -1,16 +1,17 @@
---
key_path: redis_hll_counters.code_review.i_code_review_user_toggled_task_item_status_monthly
-description: ''
-product_section: ''
-product_stage: ''
-product_group: ''
-product_category: ''
+description: Count of unique users per month who toggled a task item in a merge request
+product_stage: create
+product_group: group::code review
+product_category: code_review
value_type: number
status: data_available
time_frame: 28d
data_source: redis_hll
distribution:
- ce
+- ee
tier:
-- free
-skip_validation: true
+ - free
+ - premium
+ - ultimate
diff --git a/config/metrics/counts_28d/20210216184322_i_code_review_user_approve_mr_monthly.yml b/config/metrics/counts_28d/20210216184322_i_code_review_user_approve_mr_monthly.yml
index 1df3325b027..cb0062c55a3 100644
--- a/config/metrics/counts_28d/20210216184322_i_code_review_user_approve_mr_monthly.yml
+++ b/config/metrics/counts_28d/20210216184322_i_code_review_user_approve_mr_monthly.yml
@@ -1,16 +1,17 @@
---
key_path: redis_hll_counters.code_review.i_code_review_user_approve_mr_monthly
-description: ''
-product_section: ''
-product_stage: ''
-product_group: ''
-product_category: ''
+description: Count of unique users per month who approve a merge request
+product_stage: create
+product_group: group::code review
+product_category: code_review
value_type: number
status: data_available
time_frame: 28d
data_source: redis_hll
distribution:
- ce
+- ee
tier:
-- free
-skip_validation: true
+ - free
+ - premium
+ - ultimate
diff --git a/config/metrics/counts_28d/20210216184326_i_code_review_user_unapprove_mr_monthly.yml b/config/metrics/counts_28d/20210216184326_i_code_review_user_unapprove_mr_monthly.yml
index 527105a58fe..ce32c3ac89b 100644
--- a/config/metrics/counts_28d/20210216184326_i_code_review_user_unapprove_mr_monthly.yml
+++ b/config/metrics/counts_28d/20210216184326_i_code_review_user_unapprove_mr_monthly.yml
@@ -1,16 +1,17 @@
---
key_path: redis_hll_counters.code_review.i_code_review_user_unapprove_mr_monthly
-description: ''
-product_section: ''
-product_stage: ''
-product_group: ''
-product_category: ''
+description: Count of unique users per month who unapprove a merge request
+product_stage: create
+product_group: group::code review
+product_category: code_review
value_type: number
status: data_available
time_frame: 28d
data_source: redis_hll
distribution:
- ce
+- ee
tier:
-- free
-skip_validation: true
+ - free
+ - premium
+ - ultimate
diff --git a/config/metrics/counts_28d/20210216184330_i_code_review_user_resolve_thread_monthly.yml b/config/metrics/counts_28d/20210216184330_i_code_review_user_resolve_thread_monthly.yml
index cdf2d1135aa..b1c33edd117 100644
--- a/config/metrics/counts_28d/20210216184330_i_code_review_user_resolve_thread_monthly.yml
+++ b/config/metrics/counts_28d/20210216184330_i_code_review_user_resolve_thread_monthly.yml
@@ -1,16 +1,17 @@
---
key_path: redis_hll_counters.code_review.i_code_review_user_resolve_thread_monthly
-description: ''
-product_section: ''
-product_stage: ''
-product_group: ''
-product_category: ''
+description: Count of unique users per month who resolve a thread in a merge request
+product_stage: create
+product_group: group::code review
+product_category: code_review
value_type: number
status: data_available
time_frame: 28d
data_source: redis_hll
distribution:
- ce
+- ee
tier:
-- free
-skip_validation: true
+ - free
+ - premium
+ - ultimate
diff --git a/config/metrics/counts_28d/20210216184334_i_code_review_user_unresolve_thread_monthly.yml b/config/metrics/counts_28d/20210216184334_i_code_review_user_unresolve_thread_monthly.yml
index d4a27feb8f3..4200abff4fc 100644
--- a/config/metrics/counts_28d/20210216184334_i_code_review_user_unresolve_thread_monthly.yml
+++ b/config/metrics/counts_28d/20210216184334_i_code_review_user_unresolve_thread_monthly.yml
@@ -1,16 +1,17 @@
---
key_path: redis_hll_counters.code_review.i_code_review_user_unresolve_thread_monthly
-description: ''
-product_section: ''
-product_stage: ''
-product_group: ''
-product_category: ''
+description: Count of unique users per month who unresolve a thread in a merge request
+product_stage: create
+product_group: group::code review
+product_category: code_review
value_type: number
status: data_available
time_frame: 28d
data_source: redis_hll
distribution:
- ce
+- ee
tier:
-- free
-skip_validation: true
+ - free
+ - premium
+ - ultimate
diff --git a/config/metrics/counts_28d/20210216184338_i_code_review_edit_mr_title_monthly.yml b/config/metrics/counts_28d/20210216184338_i_code_review_edit_mr_title_monthly.yml
index 27899299abb..8cca5731801 100644
--- a/config/metrics/counts_28d/20210216184338_i_code_review_edit_mr_title_monthly.yml
+++ b/config/metrics/counts_28d/20210216184338_i_code_review_edit_mr_title_monthly.yml
@@ -1,16 +1,17 @@
---
key_path: redis_hll_counters.code_review.i_code_review_edit_mr_title_monthly
-description: ''
-product_section: ''
-product_stage: ''
-product_group: ''
-product_category: ''
+description: Count of unique users per month who edit the title of a merge request
+product_stage: create
+product_group: group::code review
+product_category: code_review
value_type: number
status: data_available
time_frame: 28d
data_source: redis_hll
distribution:
- ce
+- ee
tier:
-- free
-skip_validation: true
+ - free
+ - premium
+ - ultimate
diff --git a/config/metrics/counts_28d/20210216184342_i_code_review_edit_mr_desc_monthly.yml b/config/metrics/counts_28d/20210216184342_i_code_review_edit_mr_desc_monthly.yml
index ad564e57ab7..6fcc94e5337 100644
--- a/config/metrics/counts_28d/20210216184342_i_code_review_edit_mr_desc_monthly.yml
+++ b/config/metrics/counts_28d/20210216184342_i_code_review_edit_mr_desc_monthly.yml
@@ -1,16 +1,17 @@
---
key_path: redis_hll_counters.code_review.i_code_review_edit_mr_desc_monthly
-description: ''
-product_section: ''
-product_stage: ''
-product_group: ''
-product_category: ''
+description: Count of unique users per month who edit the description of a merge request
+product_stage: create
+product_group: group::code review
+product_category: code_review
value_type: number
status: data_available
time_frame: 28d
data_source: redis_hll
distribution:
- ce
+- ee
tier:
-- free
-skip_validation: true
+ - free
+ - premium
+ - ultimate
diff --git a/config/metrics/counts_28d/20210216184353_i_code_review_user_create_review_note_monthly.yml b/config/metrics/counts_28d/20210216184353_i_code_review_user_create_review_note_monthly.yml
index 10c13e8796f..5a11b327699 100644
--- a/config/metrics/counts_28d/20210216184353_i_code_review_user_create_review_note_monthly.yml
+++ b/config/metrics/counts_28d/20210216184353_i_code_review_user_create_review_note_monthly.yml
@@ -1,16 +1,17 @@
---
key_path: redis_hll_counters.code_review.i_code_review_user_create_review_note_monthly
-description: ''
-product_section: ''
-product_stage: ''
-product_group: ''
-product_category: ''
+description: Count of unique users per month who create a note as part of a merge request review
+product_stage: create
+product_group: group::code review
+product_category: code_review
value_type: number
status: data_available
time_frame: 28d
data_source: redis_hll
distribution:
- ce
+- ee
tier:
-- free
-skip_validation: true
+ - free
+ - premium
+ - ultimate
diff --git a/config/metrics/counts_28d/20210216184357_i_code_review_user_publish_review_monthly.yml b/config/metrics/counts_28d/20210216184357_i_code_review_user_publish_review_monthly.yml
index a6bac39ace0..3b8df2a615b 100644
--- a/config/metrics/counts_28d/20210216184357_i_code_review_user_publish_review_monthly.yml
+++ b/config/metrics/counts_28d/20210216184357_i_code_review_user_publish_review_monthly.yml
@@ -1,16 +1,17 @@
---
key_path: redis_hll_counters.code_review.i_code_review_user_publish_review_monthly
-description: ''
-product_section: ''
-product_stage: ''
-product_group: ''
-product_category: ''
+description: Count of unique users per month who publish their review as part of a merge request review
+product_stage: create
+product_group: group::code review
+product_category: code_review
value_type: number
status: data_available
time_frame: 28d
data_source: redis_hll
distribution:
- ce
+- ee
tier:
-- free
-skip_validation: true
+ - free
+ - premium
+ - ultimate
diff --git a/config/metrics/counts_28d/20210216184401_i_code_review_user_create_multiline_mr_comment_monthly.yml b/config/metrics/counts_28d/20210216184401_i_code_review_user_create_multiline_mr_comment_monthly.yml
index 937e17e3daf..717476547a8 100644
--- a/config/metrics/counts_28d/20210216184401_i_code_review_user_create_multiline_mr_comment_monthly.yml
+++ b/config/metrics/counts_28d/20210216184401_i_code_review_user_create_multiline_mr_comment_monthly.yml
@@ -1,16 +1,17 @@
---
key_path: redis_hll_counters.code_review.i_code_review_user_create_multiline_mr_comment_monthly
-description: ''
-product_section: ''
-product_stage: ''
-product_group: ''
-product_category: ''
+description: Count of unique users per month who create a multiline comment in a merge request
+product_stage: create
+product_group: group::code review
+product_category: code_review
value_type: number
status: data_available
time_frame: 28d
data_source: redis_hll
distribution:
- ce
+- ee
tier:
-- free
-skip_validation: true
+ - free
+ - premium
+ - ultimate
diff --git a/config/metrics/counts_28d/20210216184405_i_code_review_user_edit_multiline_mr_comment_monthly.yml b/config/metrics/counts_28d/20210216184405_i_code_review_user_edit_multiline_mr_comment_monthly.yml
index c88078ffa2b..8d797856907 100644
--- a/config/metrics/counts_28d/20210216184405_i_code_review_user_edit_multiline_mr_comment_monthly.yml
+++ b/config/metrics/counts_28d/20210216184405_i_code_review_user_edit_multiline_mr_comment_monthly.yml
@@ -1,16 +1,17 @@
---
key_path: redis_hll_counters.code_review.i_code_review_user_edit_multiline_mr_comment_monthly
-description: ''
-product_section: ''
-product_stage: ''
-product_group: ''
-product_category: ''
+description: Count of unique users per week who edit a multiline comment in a merge request
+product_stage: create
+product_group: group::code review
+product_category: code_review
value_type: number
status: data_available
time_frame: 28d
data_source: redis_hll
distribution:
- ce
+- ee
tier:
-- free
-skip_validation: true
+ - free
+ - premium
+ - ultimate
diff --git a/config/metrics/counts_28d/20210216184409_i_code_review_user_remove_multiline_mr_comment_monthly.yml b/config/metrics/counts_28d/20210216184409_i_code_review_user_remove_multiline_mr_comment_monthly.yml
index 1bd3172b9f6..867e6333c10 100644
--- a/config/metrics/counts_28d/20210216184409_i_code_review_user_remove_multiline_mr_comment_monthly.yml
+++ b/config/metrics/counts_28d/20210216184409_i_code_review_user_remove_multiline_mr_comment_monthly.yml
@@ -1,16 +1,17 @@
---
key_path: redis_hll_counters.code_review.i_code_review_user_remove_multiline_mr_comment_monthly
-description: ''
-product_section: ''
-product_stage: ''
-product_group: ''
-product_category: ''
+description: Count of unique users per month who remove a multiline comment in a merge request
+product_stage: create
+product_group: group::code review
+product_category: code_review
value_type: number
status: data_available
time_frame: 28d
data_source: redis_hll
distribution:
- ce
+- ee
tier:
-- free
-skip_validation: true
+ - free
+ - premium
+ - ultimate
diff --git a/config/metrics/counts_28d/20210216184418_i_code_review_user_assigned_monthly.yml b/config/metrics/counts_28d/20210216184418_i_code_review_user_assigned_monthly.yml
index 594393e33d6..7c2545bd383 100644
--- a/config/metrics/counts_28d/20210216184418_i_code_review_user_assigned_monthly.yml
+++ b/config/metrics/counts_28d/20210216184418_i_code_review_user_assigned_monthly.yml
@@ -1,16 +1,17 @@
---
key_path: redis_hll_counters.code_review.i_code_review_user_assigned_monthly
-description: ''
-product_section: ''
-product_stage: ''
-product_group: ''
-product_category: ''
+description: Count of unique users per month who are assigned to a merge request
+product_stage: create
+product_group: group::code review
+product_category: code_review
value_type: number
status: data_available
time_frame: 28d
data_source: redis_hll
distribution:
- ce
+- ee
tier:
-- free
-skip_validation: true
+ - free
+ - premium
+ - ultimate
diff --git a/config/metrics/counts_28d/20210216184422_i_code_review_user_marked_as_draft_monthly.yml b/config/metrics/counts_28d/20210216184422_i_code_review_user_marked_as_draft_monthly.yml
index 8bbaa0dc420..dd79d196318 100644
--- a/config/metrics/counts_28d/20210216184422_i_code_review_user_marked_as_draft_monthly.yml
+++ b/config/metrics/counts_28d/20210216184422_i_code_review_user_marked_as_draft_monthly.yml
@@ -1,16 +1,17 @@
---
key_path: redis_hll_counters.code_review.i_code_review_user_marked_as_draft_monthly
-description: ''
-product_section: ''
-product_stage: ''
-product_group: ''
-product_category: ''
+description: Count of unique users per month who mark a merge request as a draft
+product_stage: create
+product_group: group::code review
+product_category: code_review
value_type: number
status: data_available
time_frame: 28d
data_source: redis_hll
distribution:
- ce
+- ee
tier:
-- free
-skip_validation: true
+ - free
+ - premium
+ - ultimate
diff --git a/config/metrics/counts_28d/20210216184426_i_code_review_user_unmarked_as_draft_monthly.yml b/config/metrics/counts_28d/20210216184426_i_code_review_user_unmarked_as_draft_monthly.yml
index f294f887c99..42285f42ac4 100644
--- a/config/metrics/counts_28d/20210216184426_i_code_review_user_unmarked_as_draft_monthly.yml
+++ b/config/metrics/counts_28d/20210216184426_i_code_review_user_unmarked_as_draft_monthly.yml
@@ -1,16 +1,17 @@
---
key_path: redis_hll_counters.code_review.i_code_review_user_unmarked_as_draft_monthly
-description: ''
-product_section: ''
-product_stage: ''
-product_group: ''
-product_category: ''
+description: Count of unique users per month who unmark a merge request as a draft
+product_stage: create
+product_group: group::code review
+product_category: code_review
value_type: number
status: data_available
time_frame: 28d
data_source: redis_hll
distribution:
- ce
+- ee
tier:
-- free
-skip_validation: true
+ - free
+ - premium
+ - ultimate
diff --git a/config/metrics/counts_28d/20210216184430_i_code_review_user_review_requested_monthly.yml b/config/metrics/counts_28d/20210216184430_i_code_review_user_review_requested_monthly.yml
index d3c4647abbb..664dfb2c36d 100644
--- a/config/metrics/counts_28d/20210216184430_i_code_review_user_review_requested_monthly.yml
+++ b/config/metrics/counts_28d/20210216184430_i_code_review_user_review_requested_monthly.yml
@@ -1,16 +1,17 @@
---
key_path: redis_hll_counters.code_review.i_code_review_user_review_requested_monthly
-description: ''
-product_section: ''
-product_stage: ''
-product_group: ''
-product_category: ''
+description: Count of unique users per month who request a review of a merge request
+product_stage: create
+product_group: group::code review
+product_category: code_review
value_type: number
status: data_available
time_frame: 28d
data_source: redis_hll
distribution:
- ce
+- ee
tier:
-- free
-skip_validation: true
+ - free
+ - premium
+ - ultimate
diff --git a/config/metrics/counts_28d/20210216184434_i_code_review_user_approval_rule_added_monthly.yml b/config/metrics/counts_28d/20210216184434_i_code_review_user_approval_rule_added_monthly.yml
index afbf5e0f3f5..735f3f23d67 100644
--- a/config/metrics/counts_28d/20210216184434_i_code_review_user_approval_rule_added_monthly.yml
+++ b/config/metrics/counts_28d/20210216184434_i_code_review_user_approval_rule_added_monthly.yml
@@ -1,16 +1,17 @@
---
key_path: redis_hll_counters.code_review.i_code_review_user_approval_rule_added_monthly
-description: ''
-product_section: ''
-product_stage: ''
-product_group: ''
-product_category: ''
+description: Count of unique users per month who add an approval rule to a merge request
+product_stage: create
+product_group: group::code review
+product_category: code_review
value_type: number
status: data_available
time_frame: 28d
data_source: redis_hll
distribution:
- ce
+- ee
tier:
-- free
-skip_validation: true
+ - free
+ - premium
+ - ultimate
diff --git a/config/metrics/counts_28d/20210216184438_i_code_review_user_approval_rule_deleted_monthly.yml b/config/metrics/counts_28d/20210216184438_i_code_review_user_approval_rule_deleted_monthly.yml
index 565e1346a62..e32c033f22f 100644
--- a/config/metrics/counts_28d/20210216184438_i_code_review_user_approval_rule_deleted_monthly.yml
+++ b/config/metrics/counts_28d/20210216184438_i_code_review_user_approval_rule_deleted_monthly.yml
@@ -1,16 +1,17 @@
---
key_path: redis_hll_counters.code_review.i_code_review_user_approval_rule_deleted_monthly
-description: ''
-product_section: ''
-product_stage: ''
-product_group: ''
-product_category: ''
+description: Count of unique users per month who delete an approval rule to a merge request
+product_stage: create
+product_group: group::code review
+product_category: code_review
value_type: number
status: data_available
time_frame: 28d
data_source: redis_hll
distribution:
- ce
+- ee
tier:
-- free
-skip_validation: true
+ - free
+ - premium
+ - ultimate
diff --git a/config/metrics/counts_28d/20210216184442_i_code_review_user_approval_rule_edited_monthly.yml b/config/metrics/counts_28d/20210216184442_i_code_review_user_approval_rule_edited_monthly.yml
index c21e94ab4ab..ca8baf5a5a4 100644
--- a/config/metrics/counts_28d/20210216184442_i_code_review_user_approval_rule_edited_monthly.yml
+++ b/config/metrics/counts_28d/20210216184442_i_code_review_user_approval_rule_edited_monthly.yml
@@ -1,16 +1,17 @@
---
key_path: redis_hll_counters.code_review.i_code_review_user_approval_rule_edited_monthly
-description: ''
-product_section: ''
-product_stage: ''
-product_group: ''
-product_category: ''
+description: Count of unique users per month who delete an approval rule to a merge request
+product_stage: create
+product_group: group::code review
+product_category: code_review
value_type: number
status: data_available
time_frame: 28d
data_source: redis_hll
distribution:
- ce
+- ee
tier:
-- free
-skip_validation: true
+ - free
+ - premium
+ - ultimate
diff --git a/config/metrics/counts_28d/20210216184446_i_code_review_user_vs_code_api_request_monthly.yml b/config/metrics/counts_28d/20210216184446_i_code_review_user_vs_code_api_request_monthly.yml
index c1f06831606..d5cf11af2a5 100644
--- a/config/metrics/counts_28d/20210216184446_i_code_review_user_vs_code_api_request_monthly.yml
+++ b/config/metrics/counts_28d/20210216184446_i_code_review_user_vs_code_api_request_monthly.yml
@@ -1,16 +1,17 @@
---
key_path: redis_hll_counters.code_review.i_code_review_user_vs_code_api_request_monthly
-description: ''
-product_section: ''
-product_stage: ''
-product_group: ''
-product_category: ''
+description: Count of unique users per month who use GitLab Workflow for VS Code
+product_stage: create
+product_group: group::code review
+product_category: editor_extension
value_type: number
status: data_available
time_frame: 28d
data_source: redis_hll
distribution:
- ce
+- ee
tier:
-- free
-skip_validation: true
+ - free
+ - premium
+ - ultimate
diff --git a/config/metrics/counts_28d/20210216184450_i_code_review_user_create_mr_from_issue_monthly.yml b/config/metrics/counts_28d/20210216184450_i_code_review_user_create_mr_from_issue_monthly.yml
index a985393fa6b..b8ed6e7b1cd 100644
--- a/config/metrics/counts_28d/20210216184450_i_code_review_user_create_mr_from_issue_monthly.yml
+++ b/config/metrics/counts_28d/20210216184450_i_code_review_user_create_mr_from_issue_monthly.yml
@@ -1,16 +1,17 @@
---
key_path: redis_hll_counters.code_review.i_code_review_user_create_mr_from_issue_monthly
-description: ''
-product_section: ''
-product_stage: ''
-product_group: ''
-product_category: ''
+description: Count of unique users per month who create a merge request from an issue
+product_stage: create
+product_group: group::code review
+product_category: code_review
value_type: number
status: data_available
time_frame: 28d
data_source: redis_hll
distribution:
- ce
+- ee
tier:
-- free
-skip_validation: true
+ - free
+ - premium
+ - ultimate
diff --git a/config/metrics/counts_28d/20210216184454_code_review_total_unique_counts_monthly.yml b/config/metrics/counts_28d/20210216184454_code_review_total_unique_counts_monthly.yml
index 72590d59bd1..8881a5a7508 100644
--- a/config/metrics/counts_28d/20210216184454_code_review_total_unique_counts_monthly.yml
+++ b/config/metrics/counts_28d/20210216184454_code_review_total_unique_counts_monthly.yml
@@ -1,16 +1,17 @@
---
key_path: redis_hll_counters.code_review.code_review_total_unique_counts_monthly
-description: ''
-product_section: ''
-product_stage: ''
-product_group: ''
-product_category: ''
+description: Count of unique users per month who interact with a merge request
+product_stage: create
+product_group: group::code review
+product_category: code_review
value_type: number
status: data_available
time_frame: 28d
data_source: redis_hll
distribution:
- ce
+- ee
tier:
-- free
-skip_validation: true
+ - free
+ - premium
+ - ultimate
diff --git a/config/metrics/counts_7d/20210216175111_merge_request_action_weekly.yml b/config/metrics/counts_7d/20210216175111_merge_request_action_weekly.yml
new file mode 100644
index 00000000000..aaf56f066f9
--- /dev/null
+++ b/config/metrics/counts_7d/20210216175111_merge_request_action_weekly.yml
@@ -0,0 +1,18 @@
+---
+key_path: redis_hll_counters.source_code.merge_request_action_weekly
+description: Count of unique users who perform an action on a merge request
+product_section: dev
+product_stage: create
+product_group: group::code review
+product_category: code_review
+value_type: number
+status: data_available
+time_frame: 7d
+data_source: redis_hll
+distribution:
+- ce
+- ee
+tier:
+ - free
+ - premium
+ - ultimate
diff --git a/config/metrics/counts_7d/20210216175114_i_source_code_code_intelligence_weekly.yml b/config/metrics/counts_7d/20210216175114_i_source_code_code_intelligence_weekly.yml
new file mode 100644
index 00000000000..726936cb49a
--- /dev/null
+++ b/config/metrics/counts_7d/20210216175114_i_source_code_code_intelligence_weekly.yml
@@ -0,0 +1,18 @@
+---
+key_path: redis_hll_counters.source_code.i_source_code_code_intelligence_weekly
+description: Count of unique users who use code intelligence
+product_section: dev
+product_stage: create
+product_group: group::source code
+product_category: source_code_management
+value_type: number
+status: data_available
+time_frame: 7d
+data_source: redis_hll
+distribution:
+- ce
+- ee
+tier:
+ - free
+ - premium
+ - ultimate
diff --git a/config/metrics/counts_7d/20210216175118_i_code_review_mr_diffs_weekly.yml b/config/metrics/counts_7d/20210216175118_i_code_review_mr_diffs_weekly.yml
new file mode 100644
index 00000000000..928dd409445
--- /dev/null
+++ b/config/metrics/counts_7d/20210216175118_i_code_review_mr_diffs_weekly.yml
@@ -0,0 +1,18 @@
+---
+key_path: redis_hll_counters.code_review.i_code_review_mr_diffs_weekly
+description: Count of unique merge requests per week with diffs viewed
+product_section: dev
+product_stage: create
+product_group: group::code review
+product_category: code_review
+value_type: number
+status: data_available
+time_frame: 7d
+data_source: redis_hll
+distribution:
+- ce
+- ee
+tier:
+ - free
+ - premium
+ - ultimate
diff --git a/config/metrics/counts_7d/20210216175122_i_code_review_user_single_file_diffs_weekly.yml b/config/metrics/counts_7d/20210216175122_i_code_review_user_single_file_diffs_weekly.yml
new file mode 100644
index 00000000000..9e1b3ae8dde
--- /dev/null
+++ b/config/metrics/counts_7d/20210216175122_i_code_review_user_single_file_diffs_weekly.yml
@@ -0,0 +1,18 @@
+---
+key_path: redis_hll_counters.code_review.i_code_review_user_single_file_diffs_weekly
+description: Count of unique users per week with diffs viewed file by file
+product_section: dev
+product_stage: create
+product_group: group::code review
+product_category: code_review
+value_type: number
+status: data_available
+time_frame: 7d
+data_source: redis_hll
+distribution:
+- ce
+- ee
+tier:
+ - free
+ - premium
+ - ultimate
diff --git a/config/metrics/counts_7d/20210216175126_i_code_review_mr_single_file_diffs_weekly.yml b/config/metrics/counts_7d/20210216175126_i_code_review_mr_single_file_diffs_weekly.yml
new file mode 100644
index 00000000000..a81b1f82c3d
--- /dev/null
+++ b/config/metrics/counts_7d/20210216175126_i_code_review_mr_single_file_diffs_weekly.yml
@@ -0,0 +1,19 @@
+---
+key_path: redis_hll_counters.code_review.i_code_review_mr_single_file_diffs_weekly
+description: Count of unique merge requests per week with diffs viewed file
+ by file
+product_section: dev
+product_stage: create
+product_group: group::code review
+product_category: code_review
+value_type: number
+status: data_available
+time_frame: 7d
+data_source: redis_hll
+distribution:
+- ce
+- ee
+tier:
+ - free
+ - premium
+ - ultimate
diff --git a/config/metrics/counts_7d/20210216175130_i_code_review_user_create_mr_weekly.yml b/config/metrics/counts_7d/20210216175130_i_code_review_user_create_mr_weekly.yml
new file mode 100644
index 00000000000..4349c4111a8
--- /dev/null
+++ b/config/metrics/counts_7d/20210216175130_i_code_review_user_create_mr_weekly.yml
@@ -0,0 +1,18 @@
+---
+key_path: redis_hll_counters.code_review.i_code_review_user_create_mr_weekly
+description: Count of unique users per week who created a MR
+product_section: dev
+product_stage: create
+product_group: group::code review
+product_category: code_review
+value_type: number
+status: data_available
+time_frame: 7d
+data_source: redis_hll
+distribution:
+- ce
+- ee
+tier:
+ - free
+ - premium
+ - ultimate
diff --git a/config/metrics/counts_7d/20210216175134_i_code_review_user_close_mr_weekly.yml b/config/metrics/counts_7d/20210216175134_i_code_review_user_close_mr_weekly.yml
new file mode 100644
index 00000000000..30c2b4fb2e5
--- /dev/null
+++ b/config/metrics/counts_7d/20210216175134_i_code_review_user_close_mr_weekly.yml
@@ -0,0 +1,18 @@
+---
+key_path: redis_hll_counters.code_review.i_code_review_user_close_mr_weekly
+description: Count of unique users per week who closed a MR
+product_section: dev
+product_stage: create
+product_group: group::code review
+product_category: code_review
+value_type: number
+status: data_available
+time_frame: 7d
+data_source: redis_hll
+distribution:
+- ce
+- ee
+tier:
+ - free
+ - premium
+ - ultimate
diff --git a/config/metrics/counts_7d/20210216175138_i_code_review_user_reopen_mr_weekly.yml b/config/metrics/counts_7d/20210216175138_i_code_review_user_reopen_mr_weekly.yml
new file mode 100644
index 00000000000..5867d24ad1a
--- /dev/null
+++ b/config/metrics/counts_7d/20210216175138_i_code_review_user_reopen_mr_weekly.yml
@@ -0,0 +1,18 @@
+---
+key_path: redis_hll_counters.code_review.i_code_review_user_reopen_mr_weekly
+description: Count of unique users per week who reopened a MR
+product_section: dev
+product_stage: create
+product_group: group::code review
+product_category: code_review
+value_type: number
+status: data_available
+time_frame: 7d
+data_source: redis_hll
+distribution:
+- ce
+- ee
+tier:
+ - free
+ - premium
+ - ultimate
diff --git a/config/metrics/counts_7d/20210216175142_i_code_review_user_merge_mr_weekly.yml b/config/metrics/counts_7d/20210216175142_i_code_review_user_merge_mr_weekly.yml
new file mode 100644
index 00000000000..b659ed72265
--- /dev/null
+++ b/config/metrics/counts_7d/20210216175142_i_code_review_user_merge_mr_weekly.yml
@@ -0,0 +1,18 @@
+---
+key_path: redis_hll_counters.code_review.i_code_review_user_merge_mr_weekly
+description: Count of unique users per week who merged a MR
+product_section: dev
+product_stage: create
+product_group: group::code review
+product_category: code_review
+value_type: number
+status: data_available
+time_frame: 7d
+data_source: redis_hll
+distribution:
+- ce
+- ee
+tier:
+ - free
+ - premium
+ - ultimate
diff --git a/config/metrics/counts_7d/20210216175146_i_code_review_user_create_mr_comment_weekly.yml b/config/metrics/counts_7d/20210216175146_i_code_review_user_create_mr_comment_weekly.yml
new file mode 100644
index 00000000000..7d9bdb2fe05
--- /dev/null
+++ b/config/metrics/counts_7d/20210216175146_i_code_review_user_create_mr_comment_weekly.yml
@@ -0,0 +1,18 @@
+---
+key_path: redis_hll_counters.code_review.i_code_review_user_create_mr_comment_weekly
+description: Count of unique users per week who commented on a MR
+product_section: dev
+product_stage: create
+product_group: group::code review
+product_category: code_review
+value_type: number
+status: data_available
+time_frame: 7d
+data_source: redis_hll
+distribution:
+- ce
+- ee
+tier:
+ - free
+ - premium
+ - ultimate
diff --git a/config/metrics/counts_7d/20210216175150_i_code_review_user_edit_mr_comment_weekly.yml b/config/metrics/counts_7d/20210216175150_i_code_review_user_edit_mr_comment_weekly.yml
new file mode 100644
index 00000000000..c00c652a27b
--- /dev/null
+++ b/config/metrics/counts_7d/20210216175150_i_code_review_user_edit_mr_comment_weekly.yml
@@ -0,0 +1,18 @@
+---
+key_path: redis_hll_counters.code_review.i_code_review_user_edit_mr_comment_weekly
+description: Count of unique users per week who edited a comment on a MR
+product_section: dev
+product_stage: create
+product_group: group::code review
+product_category: code_review
+value_type: number
+status: data_available
+time_frame: 7d
+data_source: redis_hll
+distribution:
+- ce
+- ee
+tier:
+ - free
+ - premium
+ - ultimate
diff --git a/config/metrics/counts_7d/20210216175154_i_code_review_user_remove_mr_comment_weekly.yml b/config/metrics/counts_7d/20210216175154_i_code_review_user_remove_mr_comment_weekly.yml
new file mode 100644
index 00000000000..675ddb66f56
--- /dev/null
+++ b/config/metrics/counts_7d/20210216175154_i_code_review_user_remove_mr_comment_weekly.yml
@@ -0,0 +1,18 @@
+---
+key_path: redis_hll_counters.code_review.i_code_review_user_remove_mr_comment_weekly
+description: Count of unique users per month who removed a comment on a MR
+product_section: dev
+product_stage: create
+product_group: group::code review
+product_category: code_review
+value_type: number
+status: data_available
+time_frame: 7d
+data_source: redis_hll
+distribution:
+- ce
+- ee
+tier:
+ - free
+ - premium
+ - ultimate
diff --git a/config/metrics/counts_7d/20210216175158_i_code_review_user_add_suggestion_weekly.yml b/config/metrics/counts_7d/20210216175158_i_code_review_user_add_suggestion_weekly.yml
new file mode 100644
index 00000000000..857a2cf17e9
--- /dev/null
+++ b/config/metrics/counts_7d/20210216175158_i_code_review_user_add_suggestion_weekly.yml
@@ -0,0 +1,18 @@
+---
+key_path: redis_hll_counters.code_review.i_code_review_user_add_suggestion_weekly
+description: Count of unique users per week who added a suggestion
+product_section: dev
+product_stage: create
+product_group: group::code review
+product_category: code_review
+value_type: number
+status: data_available
+time_frame: 7d
+data_source: redis_hll
+distribution:
+- ce
+- ee
+tier:
+ - free
+ - premium
+ - ultimate
diff --git a/config/metrics/counts_7d/20210216175201_i_code_review_user_apply_suggestion_weekly.yml b/config/metrics/counts_7d/20210216175201_i_code_review_user_apply_suggestion_weekly.yml
new file mode 100644
index 00000000000..3c3cd7b6171
--- /dev/null
+++ b/config/metrics/counts_7d/20210216175201_i_code_review_user_apply_suggestion_weekly.yml
@@ -0,0 +1,18 @@
+---
+key_path: redis_hll_counters.code_review.i_code_review_user_apply_suggestion_weekly
+description: Count of unique users per week who applied a suggestion
+product_section: dev
+product_stage: create
+product_group: group::code review
+product_category: code_review
+value_type: number
+status: data_available
+time_frame: 7d
+data_source: redis_hll
+distribution:
+- ce
+- ee
+tier:
+ - free
+ - premium
+ - ultimate
diff --git a/config/metrics/counts_7d/20210216184310_i_code_review_user_toggled_task_item_status_weekly.yml b/config/metrics/counts_7d/20210216184310_i_code_review_user_toggled_task_item_status_weekly.yml
new file mode 100644
index 00000000000..f97747932a5
--- /dev/null
+++ b/config/metrics/counts_7d/20210216184310_i_code_review_user_toggled_task_item_status_weekly.yml
@@ -0,0 +1,17 @@
+---
+key_path: redis_hll_counters.code_review.i_code_review_user_toggled_task_item_status_weekly
+description: Count of unique users per week who toggled a task item in a merge request
+product_stage: create
+product_group: group::code review
+product_category: code_review
+value_type: number
+status: data_available
+time_frame: 7d
+data_source: redis_hll
+distribution:
+- ce
+- ee
+tier:
+ - free
+ - premium
+ - ultimate
diff --git a/config/metrics/counts_7d/20210216184320_i_code_review_user_approve_mr_weekly.yml b/config/metrics/counts_7d/20210216184320_i_code_review_user_approve_mr_weekly.yml
new file mode 100644
index 00000000000..e220ecfb3fa
--- /dev/null
+++ b/config/metrics/counts_7d/20210216184320_i_code_review_user_approve_mr_weekly.yml
@@ -0,0 +1,17 @@
+---
+key_path: redis_hll_counters.code_review.i_code_review_user_approve_mr_weekly
+description: Count of unique users per week who approve a merge request
+product_stage: create
+product_group: group::code review
+product_category: code_review
+value_type: number
+status: data_available
+time_frame: 7d
+data_source: redis_hll
+distribution:
+- ce
+- ee
+tier:
+ - free
+ - premium
+ - ultimate
diff --git a/config/metrics/counts_7d/20210216184324_i_code_review_user_unapprove_mr_weekly.yml b/config/metrics/counts_7d/20210216184324_i_code_review_user_unapprove_mr_weekly.yml
new file mode 100644
index 00000000000..07db3a24ab9
--- /dev/null
+++ b/config/metrics/counts_7d/20210216184324_i_code_review_user_unapprove_mr_weekly.yml
@@ -0,0 +1,17 @@
+---
+key_path: redis_hll_counters.code_review.i_code_review_user_unapprove_mr_weekly
+description: Count of unique users per week who unapprove a merge request
+product_stage: create
+product_group: group::code review
+product_category: code_review
+value_type: number
+status: data_available
+time_frame: 7d
+data_source: redis_hll
+distribution:
+- ce
+- ee
+tier:
+ - free
+ - premium
+ - ultimate
diff --git a/config/metrics/counts_7d/20210216184328_i_code_review_user_resolve_thread_weekly.yml b/config/metrics/counts_7d/20210216184328_i_code_review_user_resolve_thread_weekly.yml
new file mode 100644
index 00000000000..faef58e57b7
--- /dev/null
+++ b/config/metrics/counts_7d/20210216184328_i_code_review_user_resolve_thread_weekly.yml
@@ -0,0 +1,17 @@
+---
+key_path: redis_hll_counters.code_review.i_code_review_user_resolve_thread_weekly
+description: Count of unique users per week who resolve a thread in a merge request
+product_stage: create
+product_group: group::code review
+product_category: code_review
+value_type: number
+status: data_available
+time_frame: 7d
+data_source: redis_hll
+distribution:
+- ce
+- ee
+tier:
+ - free
+ - premium
+ - ultimate
diff --git a/config/metrics/counts_7d/20210216184332_i_code_review_user_unresolve_thread_weekly.yml b/config/metrics/counts_7d/20210216184332_i_code_review_user_unresolve_thread_weekly.yml
new file mode 100644
index 00000000000..83962fbbb76
--- /dev/null
+++ b/config/metrics/counts_7d/20210216184332_i_code_review_user_unresolve_thread_weekly.yml
@@ -0,0 +1,17 @@
+---
+key_path: redis_hll_counters.code_review.i_code_review_user_unresolve_thread_weekly
+description: Count of unique users per week who unresolve a thread in a merge request
+product_stage: create
+product_group: group::code review
+product_category: code_review
+value_type: number
+status: data_available
+time_frame: 7d
+data_source: redis_hll
+distribution:
+- ce
+- ee
+tier:
+ - free
+ - premium
+ - ultimate
diff --git a/config/metrics/counts_7d/20210216184336_i_code_review_edit_mr_title_weekly.yml b/config/metrics/counts_7d/20210216184336_i_code_review_edit_mr_title_weekly.yml
new file mode 100644
index 00000000000..2269498bea0
--- /dev/null
+++ b/config/metrics/counts_7d/20210216184336_i_code_review_edit_mr_title_weekly.yml
@@ -0,0 +1,17 @@
+---
+key_path: redis_hll_counters.code_review.i_code_review_edit_mr_title_weekly
+description: Count of unique users per week who edit the title of a merge request
+product_stage: create
+product_group: group::code review
+product_category: code_review
+value_type: number
+status: data_available
+time_frame: 7d
+data_source: redis_hll
+distribution:
+- ce
+- ee
+tier:
+ - free
+ - premium
+ - ultimate
diff --git a/config/metrics/counts_7d/20210216184340_i_code_review_edit_mr_desc_weekly.yml b/config/metrics/counts_7d/20210216184340_i_code_review_edit_mr_desc_weekly.yml
new file mode 100644
index 00000000000..618fed87951
--- /dev/null
+++ b/config/metrics/counts_7d/20210216184340_i_code_review_edit_mr_desc_weekly.yml
@@ -0,0 +1,17 @@
+---
+key_path: redis_hll_counters.code_review.i_code_review_edit_mr_desc_weekly
+description: Count of unique users per week who edit the description of a merge request
+product_stage: create
+product_group: group::code review
+product_category: code_review
+value_type: number
+status: data_available
+time_frame: 7d
+data_source: redis_hll
+distribution:
+- ce
+- ee
+tier:
+ - free
+ - premium
+ - ultimate
diff --git a/config/metrics/counts_7d/20210216184351_i_code_review_user_create_review_note_weekly.yml b/config/metrics/counts_7d/20210216184351_i_code_review_user_create_review_note_weekly.yml
new file mode 100644
index 00000000000..5c2e8f2a66c
--- /dev/null
+++ b/config/metrics/counts_7d/20210216184351_i_code_review_user_create_review_note_weekly.yml
@@ -0,0 +1,17 @@
+---
+key_path: redis_hll_counters.code_review.i_code_review_user_create_review_note_weekly
+description: Count of unique users per week who create a note as part of a merge request review
+product_stage: create
+product_group: group::code review
+product_category: code_review
+value_type: number
+status: data_available
+time_frame: 7d
+data_source: redis_hll
+distribution:
+- ce
+- ee
+tier:
+ - free
+ - premium
+ - ultimate
diff --git a/config/metrics/counts_7d/20210216184355_i_code_review_user_publish_review_weekly.yml b/config/metrics/counts_7d/20210216184355_i_code_review_user_publish_review_weekly.yml
new file mode 100644
index 00000000000..4d686094bad
--- /dev/null
+++ b/config/metrics/counts_7d/20210216184355_i_code_review_user_publish_review_weekly.yml
@@ -0,0 +1,17 @@
+---
+key_path: redis_hll_counters.code_review.i_code_review_user_publish_review_weekly
+description: Count of unique users per week who publish their review as part of a merge request review
+product_stage: create
+product_group: group::code review
+product_category: code_review
+value_type: number
+status: data_available
+time_frame: 7d
+data_source: redis_hll
+distribution:
+- ce
+- ee
+tier:
+ - free
+ - premium
+ - ultimate
diff --git a/config/metrics/counts_7d/20210216184359_i_code_review_user_create_multiline_mr_comment_weekly.yml b/config/metrics/counts_7d/20210216184359_i_code_review_user_create_multiline_mr_comment_weekly.yml
new file mode 100644
index 00000000000..bf7f7549958
--- /dev/null
+++ b/config/metrics/counts_7d/20210216184359_i_code_review_user_create_multiline_mr_comment_weekly.yml
@@ -0,0 +1,17 @@
+---
+key_path: redis_hll_counters.code_review.i_code_review_user_create_multiline_mr_comment_weekly
+description: Count of unique users per week who create a multiline comment in a merge request
+product_stage: create
+product_group: group::code review
+product_category: code_review
+value_type: number
+status: data_available
+time_frame: 7d
+data_source: redis_hll
+distribution:
+- ce
+- ee
+tier:
+ - free
+ - premium
+ - ultimate
diff --git a/config/metrics/counts_7d/20210216184403_i_code_review_user_edit_multiline_mr_comment_weekly.yml b/config/metrics/counts_7d/20210216184403_i_code_review_user_edit_multiline_mr_comment_weekly.yml
new file mode 100644
index 00000000000..9fb4d36abc7
--- /dev/null
+++ b/config/metrics/counts_7d/20210216184403_i_code_review_user_edit_multiline_mr_comment_weekly.yml
@@ -0,0 +1,17 @@
+---
+key_path: redis_hll_counters.code_review.i_code_review_user_edit_multiline_mr_comment_weekly
+description: Count of unique users per week who edit a multiline comment in a merge request
+product_stage: create
+product_group: group::code review
+product_category: code_review
+value_type: number
+status: data_available
+time_frame: 7d
+data_source: redis_hll
+distribution:
+- ce
+- ee
+tier:
+ - free
+ - premium
+ - ultimate
diff --git a/config/metrics/counts_7d/20210216184407_i_code_review_user_remove_multiline_mr_comment_weekly.yml b/config/metrics/counts_7d/20210216184407_i_code_review_user_remove_multiline_mr_comment_weekly.yml
new file mode 100644
index 00000000000..a149c7cc7a5
--- /dev/null
+++ b/config/metrics/counts_7d/20210216184407_i_code_review_user_remove_multiline_mr_comment_weekly.yml
@@ -0,0 +1,17 @@
+---
+key_path: redis_hll_counters.code_review.i_code_review_user_remove_multiline_mr_comment_weekly
+description: Count of unique users per week who remove a multiline comment in a merge request
+product_stage: create
+product_group: group::code review
+product_category: code_review
+value_type: number
+status: data_available
+time_frame: 7d
+data_source: redis_hll
+distribution:
+- ce
+- ee
+tier:
+ - free
+ - premium
+ - ultimate
diff --git a/config/metrics/counts_7d/20210216184416_i_code_review_user_assigned_weekly.yml b/config/metrics/counts_7d/20210216184416_i_code_review_user_assigned_weekly.yml
new file mode 100644
index 00000000000..d376ac6501e
--- /dev/null
+++ b/config/metrics/counts_7d/20210216184416_i_code_review_user_assigned_weekly.yml
@@ -0,0 +1,17 @@
+---
+key_path: redis_hll_counters.code_review.i_code_review_user_assigned_weekly
+description: Count of unique users per week who are assigned to a merge request
+product_stage: create
+product_group: group::code review
+product_category: code_review
+value_type: number
+status: data_available
+time_frame: 7d
+data_source: redis_hll
+distribution:
+- ce
+- ee
+tier:
+ - free
+ - premium
+ - ultimate
diff --git a/config/metrics/counts_7d/20210216184420_i_code_review_user_marked_as_draft_weekly.yml b/config/metrics/counts_7d/20210216184420_i_code_review_user_marked_as_draft_weekly.yml
new file mode 100644
index 00000000000..af747413f41
--- /dev/null
+++ b/config/metrics/counts_7d/20210216184420_i_code_review_user_marked_as_draft_weekly.yml
@@ -0,0 +1,17 @@
+---
+key_path: redis_hll_counters.code_review.i_code_review_user_marked_as_draft_weekly
+description: Count of unique users per week who mark a merge request as a draft
+product_stage: create
+product_group: group::code review
+product_category: code_review
+value_type: number
+status: data_available
+time_frame: 7d
+data_source: redis_hll
+distribution:
+- ce
+- ee
+tier:
+ - free
+ - premium
+ - ultimate
diff --git a/config/metrics/counts_7d/20210216184424_i_code_review_user_unmarked_as_draft_weekly.yml b/config/metrics/counts_7d/20210216184424_i_code_review_user_unmarked_as_draft_weekly.yml
new file mode 100644
index 00000000000..5a99e741a7d
--- /dev/null
+++ b/config/metrics/counts_7d/20210216184424_i_code_review_user_unmarked_as_draft_weekly.yml
@@ -0,0 +1,17 @@
+---
+key_path: redis_hll_counters.code_review.i_code_review_user_unmarked_as_draft_weekly
+description: Count of unique users per week who unmark a merge request as a draft
+product_stage: create
+product_group: group::code review
+product_category: code_review
+value_type: number
+status: data_available
+time_frame: 7d
+data_source: redis_hll
+distribution:
+- ce
+- ee
+tier:
+ - free
+ - premium
+ - ultimate
diff --git a/config/metrics/counts_7d/20210216184428_i_code_review_user_review_requested_weekly.yml b/config/metrics/counts_7d/20210216184428_i_code_review_user_review_requested_weekly.yml
new file mode 100644
index 00000000000..8c946ccb418
--- /dev/null
+++ b/config/metrics/counts_7d/20210216184428_i_code_review_user_review_requested_weekly.yml
@@ -0,0 +1,17 @@
+---
+key_path: redis_hll_counters.code_review.i_code_review_user_review_requested_weekly
+description: Count of unique users per week who request a review of a merge request
+product_stage: create
+product_group: group::code review
+product_category: code_review
+value_type: number
+status: data_available
+time_frame: 7d
+data_source: redis_hll
+distribution:
+- ce
+- ee
+tier:
+ - free
+ - premium
+ - ultimate
diff --git a/config/metrics/counts_7d/20210216184432_i_code_review_user_approval_rule_added_weekly.yml b/config/metrics/counts_7d/20210216184432_i_code_review_user_approval_rule_added_weekly.yml
new file mode 100644
index 00000000000..0716e3b702a
--- /dev/null
+++ b/config/metrics/counts_7d/20210216184432_i_code_review_user_approval_rule_added_weekly.yml
@@ -0,0 +1,17 @@
+---
+key_path: redis_hll_counters.code_review.i_code_review_user_approval_rule_added_weekly
+description: Count of unique users per week who add an approval rule to a merge request
+product_stage: create
+product_group: group::code review
+product_category: code_review
+value_type: number
+status: data_available
+time_frame: 7d
+data_source: redis_hll
+distribution:
+- ce
+- ee
+tier:
+ - free
+ - premium
+ - ultimate
diff --git a/config/metrics/counts_7d/20210216184436_i_code_review_user_approval_rule_deleted_weekly.yml b/config/metrics/counts_7d/20210216184436_i_code_review_user_approval_rule_deleted_weekly.yml
new file mode 100644
index 00000000000..f0a45edae21
--- /dev/null
+++ b/config/metrics/counts_7d/20210216184436_i_code_review_user_approval_rule_deleted_weekly.yml
@@ -0,0 +1,17 @@
+---
+key_path: redis_hll_counters.code_review.i_code_review_user_approval_rule_deleted_weekly
+description: Count of unique users per week who delete an approval rule to a merge request
+product_stage: create
+product_group: group::code review
+product_category: code_review
+value_type: number
+status: data_available
+time_frame: 7d
+data_source: redis_hll
+distribution:
+- ce
+- ee
+tier:
+ - free
+ - premium
+ - ultimate
diff --git a/config/metrics/counts_7d/20210216184440_i_code_review_user_approval_rule_edited_weekly.yml b/config/metrics/counts_7d/20210216184440_i_code_review_user_approval_rule_edited_weekly.yml
new file mode 100644
index 00000000000..f1abdb24875
--- /dev/null
+++ b/config/metrics/counts_7d/20210216184440_i_code_review_user_approval_rule_edited_weekly.yml
@@ -0,0 +1,17 @@
+---
+key_path: redis_hll_counters.code_review.i_code_review_user_approval_rule_edited_weekly
+description: Count of unique users per week who edit an approval rule to a merge request
+product_stage: create
+product_group: group::code review
+product_category: code_review
+value_type: number
+status: data_available
+time_frame: 7d
+data_source: redis_hll
+distribution:
+- ce
+- ee
+tier:
+ - free
+ - premium
+ - ultimate
diff --git a/config/metrics/counts_7d/20210216184444_i_code_review_user_vs_code_api_request_weekly.yml b/config/metrics/counts_7d/20210216184444_i_code_review_user_vs_code_api_request_weekly.yml
new file mode 100644
index 00000000000..76ab0f54c34
--- /dev/null
+++ b/config/metrics/counts_7d/20210216184444_i_code_review_user_vs_code_api_request_weekly.yml
@@ -0,0 +1,17 @@
+---
+key_path: redis_hll_counters.code_review.i_code_review_user_vs_code_api_request_weekly
+description: Count of unique users per week who use GitLab Workflow for VS Code
+product_stage: create
+product_group: group::code review
+product_category: editor_extension
+value_type: number
+status: data_available
+time_frame: 7d
+data_source: redis_hll
+distribution:
+- ce
+- ee
+tier:
+ - free
+ - premium
+ - ultimate
diff --git a/config/metrics/counts_7d/20210216184448_i_code_review_user_create_mr_from_issue_weekly.yml b/config/metrics/counts_7d/20210216184448_i_code_review_user_create_mr_from_issue_weekly.yml
new file mode 100644
index 00000000000..4e2a71a4593
--- /dev/null
+++ b/config/metrics/counts_7d/20210216184448_i_code_review_user_create_mr_from_issue_weekly.yml
@@ -0,0 +1,17 @@
+---
+key_path: redis_hll_counters.code_review.i_code_review_user_create_mr_from_issue_weekly
+description: Count of unique users per week who create a merge request from an issue
+product_stage: create
+product_group: group::code review
+product_category: code_review
+value_type: number
+status: data_available
+time_frame: 7d
+data_source: redis_hll
+distribution:
+- ce
+- ee
+tier:
+ - free
+ - premium
+ - ultimate
diff --git a/config/metrics/counts_7d/20210216184452_code_review_total_unique_counts_weekly.yml b/config/metrics/counts_7d/20210216184452_code_review_total_unique_counts_weekly.yml
new file mode 100644
index 00000000000..9b4c6cb0318
--- /dev/null
+++ b/config/metrics/counts_7d/20210216184452_code_review_total_unique_counts_weekly.yml
@@ -0,0 +1,17 @@
+---
+key_path: redis_hll_counters.code_review.code_review_total_unique_counts_weekly
+description: Count of unique users per week who interact with a merge request
+product_stage: create
+product_group: group::code review
+product_category: code_review
+value_type: number
+status: data_available
+time_frame: 7d
+data_source: redis_hll
+distribution:
+- ce
+- ee
+tier:
+ - free
+ - premium
+ - ultimate
diff --git a/config/metrics/counts_all/20210216175037_suggestions.yml b/config/metrics/counts_all/20210216175037_suggestions.yml
index 98ec2bd6d7c..cfe0b3e361e 100644
--- a/config/metrics/counts_all/20210216175037_suggestions.yml
+++ b/config/metrics/counts_all/20210216175037_suggestions.yml
@@ -1,6 +1,6 @@
---
key_path: counts.suggestions
-description:
+description: Count of all comments that contain suggested changes
product_section: dev
product_stage: create
product_group: group::code review
@@ -11,6 +11,8 @@ time_frame: all
data_source: database
distribution:
- ce
+- ee
tier:
-- free
-skip_validation: true
+ - free
+ - premium
+ - ultimate
diff --git a/config/metrics/counts_all/20210216175039_merge_requests.yml b/config/metrics/counts_all/20210216175039_merge_requests.yml
index 3c17daf2622..b3514e64df8 100644
--- a/config/metrics/counts_all/20210216175039_merge_requests.yml
+++ b/config/metrics/counts_all/20210216175039_merge_requests.yml
@@ -1,6 +1,6 @@
---
key_path: counts.merge_requests
-description:
+description: Count of the number of merge requests
product_section: dev
product_stage: create
product_group: group::code review
@@ -11,6 +11,8 @@ time_frame: all
data_source: database
distribution:
- ce
+- ee
tier:
- free
-skip_validation: true
+- premium
+- ultimate
diff --git a/config/metrics/counts_all/20210216175041_merge_request_comment.yml b/config/metrics/counts_all/20210216175041_merge_request_comment.yml
index 382110c11db..b53fbb14ffc 100644
--- a/config/metrics/counts_all/20210216175041_merge_request_comment.yml
+++ b/config/metrics/counts_all/20210216175041_merge_request_comment.yml
@@ -1,6 +1,6 @@
---
key_path: counts.merge_request_comment
-description:
+description: Count of the number of merge request comments
product_section: dev
product_stage: create
product_group: group::code review
@@ -8,9 +8,11 @@ product_category: code_review
value_type: number
status: data_available
time_frame: all
-data_source: database
+data_source: redis
distribution:
- ce
+- ee
tier:
- free
-skip_validation: true
+- premium
+- ultimate
diff --git a/config/metrics/counts_all/20210216175043_merge_request_create.yml b/config/metrics/counts_all/20210216175043_merge_request_create.yml
index 39ce0ef072a..38d1d72339b 100644
--- a/config/metrics/counts_all/20210216175043_merge_request_create.yml
+++ b/config/metrics/counts_all/20210216175043_merge_request_create.yml
@@ -1,6 +1,6 @@
---
key_path: counts.merge_request_create
-description:
+description: Count of the number of merge requests created
product_section: dev
product_stage: create
product_group: group::code review
@@ -8,9 +8,11 @@ product_category: code_review
value_type: number
status: data_available
time_frame: all
-data_source: database
+data_source: redis
distribution:
- ce
+- ee
tier:
- free
-skip_validation: true
+- premium
+- ultimate
diff --git a/config/metrics/counts_all/20210216175045_merge_requests.yml b/config/metrics/counts_all/20210216175045_merge_requests.yml
index 47966f197e4..51715e14584 100644
--- a/config/metrics/counts_all/20210216175045_merge_requests.yml
+++ b/config/metrics/counts_all/20210216175045_merge_requests.yml
@@ -1,6 +1,6 @@
---
key_path: usage_activity_by_stage.create.merge_requests
-description:
+description: Count of the number of users creating merge requests
product_section: dev
product_stage: create
product_group: group::code review
@@ -8,9 +8,11 @@ product_category: code_review
value_type: number
status: data_available
time_frame: all
-data_source:
+data_source: database
distribution:
- ce
+- ee
tier:
- free
-skip_validation: true
+- premium
+- ultimate
diff --git a/config/metrics/counts_all/20210216175053_suggestions.yml b/config/metrics/counts_all/20210216175053_suggestions.yml
index 15a846c49d8..507200a0ac8 100644
--- a/config/metrics/counts_all/20210216175053_suggestions.yml
+++ b/config/metrics/counts_all/20210216175053_suggestions.yml
@@ -1,6 +1,6 @@
---
key_path: usage_activity_by_stage.create.suggestions
-description:
+description: Count of unique users who create suggestions in merge request comments
product_section: dev
product_stage: create
product_group: group::code review
@@ -8,9 +8,11 @@ product_category: code_review
value_type: number
status: data_available
time_frame: all
-data_source:
+data_source: database
distribution:
- ce
+- ee
tier:
- free
-skip_validation: true
+- premium
+- ultimate
diff --git a/config/metrics/counts_all/20210216180942_operations_dashboard_default_dashboard.yml b/config/metrics/counts_all/20210216180942_operations_dashboard_default_dashboard.yml
index 0460ddd1ca4..039d4dcb7cb 100644
--- a/config/metrics/counts_all/20210216180942_operations_dashboard_default_dashboard.yml
+++ b/config/metrics/counts_all/20210216180942_operations_dashboard_default_dashboard.yml
@@ -4,13 +4,15 @@ description: Active users with enabled operations dashboard
product_section: ops
product_stage:
product_group: group::monitor
-product_category:
+product_category: metrics
value_type: number
status: data_available
time_frame: all
data_source: database
distribution:
-- ce
+ - ce
+ - ee
tier:
-- free
-skip_validation: true
+ - free
+ - premium
+ - ultimate
diff --git a/config/metrics/counts_all/20210216180944_operations_dashboard_users_with_projects_added.yml b/config/metrics/counts_all/20210216180944_operations_dashboard_users_with_projects_added.yml
index 3c1bb134c17..71988b43ed8 100644
--- a/config/metrics/counts_all/20210216180944_operations_dashboard_users_with_projects_added.yml
+++ b/config/metrics/counts_all/20210216180944_operations_dashboard_users_with_projects_added.yml
@@ -4,13 +4,15 @@ description: Active users with projects on operations dashboard
product_section: ops
product_stage:
product_group: group::monitor
-product_category:
+product_category: metrics
value_type: number
status: data_available
time_frame: all
data_source: database
distribution:
-- ce
+ - ce
+ - ee
tier:
-- free
-skip_validation: true
+ - free
+ - premium
+ - ultimate
diff --git a/config/metrics/counts_all/20210216180945_clusters.yml b/config/metrics/counts_all/20210216180945_clusters.yml
index 25a52cf9ffa..1af33097b7f 100644
--- a/config/metrics/counts_all/20210216180945_clusters.yml
+++ b/config/metrics/counts_all/20210216180945_clusters.yml
@@ -1,6 +1,6 @@
---
key_path: usage_activity_by_stage.monitor.clusters
-description: Total GitLab Managed clusters both enabled and disabled
+description: Users creating clusters.
product_section: ops
product_stage:
product_group: group::monitor
@@ -8,9 +8,11 @@ product_category: metrics
value_type: number
status: data_available
time_frame: all
-data_source:
+data_source: database
distribution:
-- ce
+ - ce
+ - ee
tier:
-- free
-skip_validation: true
+ - free
+ - premium
+ - ultimate
diff --git a/config/metrics/counts_all/20210216180947_clusters_applications_prometheus.yml b/config/metrics/counts_all/20210216180947_clusters_applications_prometheus.yml
index cc15b3563b5..c59ea4b8a85 100644
--- a/config/metrics/counts_all/20210216180947_clusters_applications_prometheus.yml
+++ b/config/metrics/counts_all/20210216180947_clusters_applications_prometheus.yml
@@ -1,6 +1,6 @@
---
key_path: usage_activity_by_stage.monitor.clusters_applications_prometheus
-description: Total GitLab Managed clusters with Prometheus enabled
+description: Users creating clusters with Prometheus enabled.
product_section: ops
product_stage:
product_group: group::monitor
@@ -8,9 +8,11 @@ product_category: metrics
value_type: number
status: data_available
time_frame: all
-data_source:
+data_source: database
distribution:
-- ce
+ - ce
+ - ee
tier:
-- free
-skip_validation: true
+ - free
+ - premium
+ - ultimate
diff --git a/config/metrics/counts_all/20210216180949_operations_dashboard_default_dashboard.yml b/config/metrics/counts_all/20210216180949_operations_dashboard_default_dashboard.yml
index f037d7ea5c2..4881fce06a3 100644
--- a/config/metrics/counts_all/20210216180949_operations_dashboard_default_dashboard.yml
+++ b/config/metrics/counts_all/20210216180949_operations_dashboard_default_dashboard.yml
@@ -4,13 +4,14 @@ description: Active users with enabled operations dashboard
product_section: ops
product_stage:
product_group: group::monitor
-product_category:
+product_category: metrics
value_type: number
status: data_available
time_frame: all
-data_source:
+data_source: database
distribution:
-- ce
+ - ce
+ - ee
tier:
-- free
-skip_validation: true
+ - free
+ - premium
diff --git a/config/metrics/counts_all/20210216180953_operations_dashboard_users_with_projects_added.yml b/config/metrics/counts_all/20210216180953_operations_dashboard_users_with_projects_added.yml
index 6f6f4b00d1a..3e86ba6c54c 100644
--- a/config/metrics/counts_all/20210216180953_operations_dashboard_users_with_projects_added.yml
+++ b/config/metrics/counts_all/20210216180953_operations_dashboard_users_with_projects_added.yml
@@ -4,13 +4,15 @@ description: Active users with projects on operations dashboard
product_section: ops
product_stage:
product_group: group::monitor
-product_category:
+product_category: metrics
value_type: number
status: data_available
time_frame: all
-data_source:
+data_source: database
distribution:
-- ce
+ - ce
+ - ee
tier:
-- free
-skip_validation: true
+ - free
+ - premium
+ - ultimate
diff --git a/danger/changelog/Dangerfile b/danger/changelog/Dangerfile
index 9937f40f013..82ac749b531 100644
--- a/danger/changelog/Dangerfile
+++ b/danger/changelog/Dangerfile
@@ -13,6 +13,28 @@ merge_request: %<mr_iid>s
#{SEE_DOC}
SUGGEST_COMMENT
+CATEGORIES = YAML
+ .load_file(File.expand_path('../../.gitlab/changelog_config.yml', __dir__))
+ .fetch('categories')
+ .keys
+ .freeze
+
+def check_changelog_trailer(commit)
+ trailer = commit.message.match(/^Changelog:\s*(?<category>\w+)/)
+
+ return :missing if trailer.nil? || trailer[:category].nil?
+
+ category = trailer[:category]
+
+ return :valid if CATEGORIES.include?(category)
+
+ self.fail(
+ "Commit #{commit.sha} uses an invalid changelog category: #{category}"
+ )
+
+ :invalid
+end
+
def check_changelog_yaml(path)
raw_file = File.read(path)
yaml = YAML.safe_load(raw_file)
@@ -75,25 +97,38 @@ elsif changelog.optional?
message changelog.optional_text
end
-message <<~MSG
- We are in the process of rolling out a new workflow for adding changelog entries. This new workflow uses Git commit subjects and Git trailers to generate changelogs. This new approach will soon replace the current YAML based approach.
+if changelog.required? || changelog.optional?
+ checked = 0
+
+ git.commits.each do |commit|
+ case check_changelog_trailer(commit)
+ when :valid, :invalid
+ checked += 1
+ end
+ end
- To ease the transition process, we recommend you start using both the old and new approach in parallel. This is not required at this time, but will make it easier to transition to the new approach in the future. To do so, pick the commit that should go in the changelog and add a `Changelog` trailer to it. For example:
+ if checked == 0
+ message <<~MSG
+ We are in the process of rolling out a new workflow for adding changelog entries. This new workflow uses Git commit subjects and Git trailers to generate changelogs. This new approach will soon replace the current YAML based approach.
- ```
- This is my commit's subject line
+ To ease the transition process, we recommend you start using both the old and new approach in parallel. This is not required at this time, but will make it easier to transition to the new approach in the future. To do so, pick the commit that should go in the changelog and add a `Changelog` trailer to it. For example:
- This is the optional commit body.
+ ```
+ This is my commit's subject line
- Changelog: added
- ```
+ This is the optional commit body.
- The value of the `Changelog` trailer should be one of the following: added, fixed, changed, deprecated, removed, security, performance, other.
+ Changelog: added
+ ```
- For more information, take a look at the following resources:
+ The value of the `Changelog` trailer should be one of the following: added, fixed, changed, deprecated, removed, security, performance, other.
- - `https://gitlab.com/gitlab-com/gl-infra/delivery/-/issues/1564`
- - https://docs.gitlab.com/ee/api/repositories.html#generate-changelog-data
+ For more information, take a look at the following resources:
- If you'd like to see the new approach in action, take a look at the commits in [the Omnibus repository](https://gitlab.com/gitlab-org/omnibus-gitlab/-/commits/master).
-MSG
+ - `https://gitlab.com/gitlab-com/gl-infra/delivery/-/issues/1564`
+ - https://docs.gitlab.com/ee/api/repositories.html#generate-changelog-data
+
+ If you'd like to see the new approach in action, take a look at the commits in [the Omnibus repository](https://gitlab.com/gitlab-org/omnibus-gitlab/-/commits/master).
+ MSG
+ end
+end
diff --git a/doc/api/README.md b/doc/api/README.md
index eef2d93f162..db0256b096c 100644
--- a/doc/api/README.md
+++ b/doc/api/README.md
@@ -1,6 +1,6 @@
---
-stage: none
-group: unassigned
+stage: Create
+group: Ecosystem
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
---
diff --git a/doc/api/admin_sidekiq_queues.md b/doc/api/admin_sidekiq_queues.md
index 9cbdcb863d6..d0e310ab548 100644
--- a/doc/api/admin_sidekiq_queues.md
+++ b/doc/api/admin_sidekiq_queues.md
@@ -1,6 +1,6 @@
---
-stage: none
-group: unassigned
+stage: Enablement
+group: Distribution
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
---
diff --git a/doc/api/api_resources.md b/doc/api/api_resources.md
index b0d03ebad74..9200d47effe 100644
--- a/doc/api/api_resources.md
+++ b/doc/api/api_resources.md
@@ -1,6 +1,6 @@
---
-stage: none
-group: unassigned
+stage: Create
+group: Ecosystem
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
---
diff --git a/doc/api/applications.md b/doc/api/applications.md
index b3741a3cb30..b3a46b70c9e 100644
--- a/doc/api/applications.md
+++ b/doc/api/applications.md
@@ -1,6 +1,6 @@
---
-stage: none
-group: unassigned
+stage: Manage
+group: Access
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
---
diff --git a/doc/api/avatar.md b/doc/api/avatar.md
index 5d50fac86f0..baa670f3e93 100644
--- a/doc/api/avatar.md
+++ b/doc/api/avatar.md
@@ -1,6 +1,6 @@
---
-stage: none
-group: unassigned
+stage: Manage
+group: Access
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
---
diff --git a/doc/api/broadcast_messages.md b/doc/api/broadcast_messages.md
index 04b2727f575..de56405056a 100644
--- a/doc/api/broadcast_messages.md
+++ b/doc/api/broadcast_messages.md
@@ -1,6 +1,6 @@
---
-stage: none
-group: unassigned
+stage: Growth
+group: Activation
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
---
diff --git a/doc/api/custom_attributes.md b/doc/api/custom_attributes.md
index 68d27b77998..a17b3b78b18 100644
--- a/doc/api/custom_attributes.md
+++ b/doc/api/custom_attributes.md
@@ -1,6 +1,6 @@
---
-stage: none
-group: unassigned
+stage: Create
+group: Ecosystem
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
---
diff --git a/doc/api/dependencies.md b/doc/api/dependencies.md
index 6beb57a6da0..6175c26ed75 100644
--- a/doc/api/dependencies.md
+++ b/doc/api/dependencies.md
@@ -1,6 +1,6 @@
---
-stage: none
-group: unassigned
+stage: Secure
+group: Composition Analysis
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
---
diff --git a/doc/api/events.md b/doc/api/events.md
index 38d2c934061..befc1164432 100644
--- a/doc/api/events.md
+++ b/doc/api/events.md
@@ -1,10 +1,10 @@
---
-stage: none
-group: unassigned
+stage: Manage
+group: Compliance
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
---
-# Events
+# Events API
## Filter parameters
diff --git a/doc/api/graphql/audit_report.md b/doc/api/graphql/audit_report.md
index 74ac8710160..a68af6e8646 100644
--- a/doc/api/graphql/audit_report.md
+++ b/doc/api/graphql/audit_report.md
@@ -1,6 +1,6 @@
---
-stage: none
-group: unassigned
+stage: Create
+group: Ecosystem
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
---
diff --git a/doc/api/graphql/getting_started.md b/doc/api/graphql/getting_started.md
index fe92b17a121..b48ce48f6c3 100644
--- a/doc/api/graphql/getting_started.md
+++ b/doc/api/graphql/getting_started.md
@@ -1,6 +1,6 @@
---
-stage: none
-group: unassigned
+stage: Create
+group: Ecosystem
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
---
diff --git a/doc/api/graphql/index.md b/doc/api/graphql/index.md
index ace41e0e92d..5864e5878b7 100644
--- a/doc/api/graphql/index.md
+++ b/doc/api/graphql/index.md
@@ -1,6 +1,6 @@
---
-stage: none
-group: unassigned
+stage: Create
+group: Ecosystem
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
---
diff --git a/doc/api/graphql/sample_issue_boards.md b/doc/api/graphql/sample_issue_boards.md
index bddf1ea9a7e..86881465ed6 100644
--- a/doc/api/graphql/sample_issue_boards.md
+++ b/doc/api/graphql/sample_issue_boards.md
@@ -1,6 +1,6 @@
---
-stage: none
-group: unassigned
+stage: Plan
+group: Project Management
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
---
diff --git a/doc/api/graphql/users_example.md b/doc/api/graphql/users_example.md
index e4a697d11fd..78703c3ce89 100644
--- a/doc/api/graphql/users_example.md
+++ b/doc/api/graphql/users_example.md
@@ -1,6 +1,6 @@
---
-stage: none
-group: unassigned
+stage: Create
+group: Ecosystem
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
---
diff --git a/doc/api/group_badges.md b/doc/api/group_badges.md
index e3fcaa3db37..881054ef44b 100644
--- a/doc/api/group_badges.md
+++ b/doc/api/group_badges.md
@@ -1,6 +1,6 @@
---
-stage: none
-group: unassigned
+stage: Manage
+group: Access
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
---
diff --git a/doc/api/group_level_variables.md b/doc/api/group_level_variables.md
index 500d5a60c9c..b548372b02d 100644
--- a/doc/api/group_level_variables.md
+++ b/doc/api/group_level_variables.md
@@ -1,6 +1,6 @@
---
-stage: none
-group: unassigned
+stage: Verify
+group: Continuous Integration
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
---
diff --git a/doc/api/import.md b/doc/api/import.md
index 2d978b7b6dd..e1585d02ae3 100644
--- a/doc/api/import.md
+++ b/doc/api/import.md
@@ -1,6 +1,6 @@
---
-stage: none
-group: unassigned
+stage: Manage
+group: Import
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
---
diff --git a/doc/api/issue_links.md b/doc/api/issue_links.md
index db65662c9cf..25d85577c13 100644
--- a/doc/api/issue_links.md
+++ b/doc/api/issue_links.md
@@ -1,6 +1,6 @@
---
-stage: none
-group: unassigned
+stage: Plan
+group: Project Management
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
---
@@ -30,7 +30,7 @@ Parameters:
{
"id" : 84,
"iid" : 14,
- "issue_link_id": 1
+ "issue_link_id": 1,
"project_id" : 4,
"created_at" : "2016-01-07T12:44:33.959Z",
"title" : "Issues with auth",
diff --git a/doc/api/issues_statistics.md b/doc/api/issues_statistics.md
index 20f405774d5..de5f26141f5 100644
--- a/doc/api/issues_statistics.md
+++ b/doc/api/issues_statistics.md
@@ -1,6 +1,6 @@
---
-stage: none
-group: unassigned
+stage: Plan
+group: Project Management
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
---
diff --git a/doc/api/license.md b/doc/api/license.md
index 7aa00335933..ceaa471c25f 100644
--- a/doc/api/license.md
+++ b/doc/api/license.md
@@ -1,6 +1,6 @@
---
-stage: none
-group: unassigned
+stage: Growth
+group: Activation
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
---
diff --git a/doc/api/managed_licenses.md b/doc/api/managed_licenses.md
index d0944aefd64..68a19b9912f 100644
--- a/doc/api/managed_licenses.md
+++ b/doc/api/managed_licenses.md
@@ -1,6 +1,6 @@
---
-stage: none
-group: unassigned
+stage: Growth
+group: Activation
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
---
diff --git a/doc/api/namespaces.md b/doc/api/namespaces.md
index c3e88532430..50b28e67c0a 100644
--- a/doc/api/namespaces.md
+++ b/doc/api/namespaces.md
@@ -1,6 +1,6 @@
---
-stage: none
-group: unassigned
+stage: Manage
+group: Access
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
---
diff --git a/doc/api/notification_settings.md b/doc/api/notification_settings.md
index 57eac61de46..037b9053c3d 100644
--- a/doc/api/notification_settings.md
+++ b/doc/api/notification_settings.md
@@ -1,6 +1,6 @@
---
-stage: none
-group: unassigned
+stage: Plan
+group: Project Management
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
---
diff --git a/doc/api/openapi/openapi_interactive.md b/doc/api/openapi/openapi_interactive.md
index e34b003e32c..05fd7b20b75 100644
--- a/doc/api/openapi/openapi_interactive.md
+++ b/doc/api/openapi/openapi_interactive.md
@@ -1,6 +1,6 @@
---
-stage: none
-group: unassigned
+stage: Create
+group: Ecosystem
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
---
diff --git a/doc/api/resource_label_events.md b/doc/api/resource_label_events.md
index 6b682eac29c..0c1735c0664 100644
--- a/doc/api/resource_label_events.md
+++ b/doc/api/resource_label_events.md
@@ -1,6 +1,6 @@
---
-stage: none
-group: unassigned
+stage: Manage
+group: Compilance
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
---
diff --git a/doc/api/settings.md b/doc/api/settings.md
index bdf47fafb7e..146cd1628ff 100644
--- a/doc/api/settings.md
+++ b/doc/api/settings.md
@@ -1,6 +1,6 @@
---
-stage: none
-group: unassigned
+stage: Manage
+group: Access
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
---
diff --git a/doc/api/sidekiq_metrics.md b/doc/api/sidekiq_metrics.md
index 4791f066cd2..bcb59a6dad3 100644
--- a/doc/api/sidekiq_metrics.md
+++ b/doc/api/sidekiq_metrics.md
@@ -1,6 +1,6 @@
---
-stage: none
-group: unassigned
+stage: Enablement
+group: Distribution
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
---
diff --git a/doc/api/statistics.md b/doc/api/statistics.md
index 3899d5bde76..a57838e6496 100644
--- a/doc/api/statistics.md
+++ b/doc/api/statistics.md
@@ -1,6 +1,6 @@
---
-stage: none
-group: unassigned
+stage: Manage
+group: Access
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
---
diff --git a/doc/api/system_hooks.md b/doc/api/system_hooks.md
index 3348157129d..101769e6323 100644
--- a/doc/api/system_hooks.md
+++ b/doc/api/system_hooks.md
@@ -1,6 +1,6 @@
---
-stage: none
-group: unassigned
+stage: Create
+group: Ecosystem
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
---
diff --git a/doc/api/templates/gitignores.md b/doc/api/templates/gitignores.md
index 6f2e5a83903..f1bf8120574 100644
--- a/doc/api/templates/gitignores.md
+++ b/doc/api/templates/gitignores.md
@@ -1,6 +1,6 @@
---
-stage: none
-group: unassigned
+stage: Create
+group: Source Code
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
type: reference
---
diff --git a/doc/api/templates/licenses.md b/doc/api/templates/licenses.md
index fb76bd81e50..e7eaa6eb3e0 100644
--- a/doc/api/templates/licenses.md
+++ b/doc/api/templates/licenses.md
@@ -1,6 +1,6 @@
---
-stage: none
-group: unassigned
+stage: Secure
+group: Composition Analysis
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
type: reference
---
diff --git a/doc/api/v3_to_v4.md b/doc/api/v3_to_v4.md
index c63a04228a5..38d583cf1d8 100644
--- a/doc/api/v3_to_v4.md
+++ b/doc/api/v3_to_v4.md
@@ -1,6 +1,6 @@
---
-stage: none
-group: unassigned
+stage: Create
+group: Ecosystem
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
---
diff --git a/doc/api/version.md b/doc/api/version.md
index 83b05dff1c8..313ba4da7d4 100644
--- a/doc/api/version.md
+++ b/doc/api/version.md
@@ -1,6 +1,6 @@
---
-stage: none
-group: unassigned
+stage: Create
+group: Ecosystem
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
---
diff --git a/doc/development/usage_ping/dictionary.md b/doc/development/usage_ping/dictionary.md
index 47c475e90a0..99a29a9f2c8 100644
--- a/doc/development/usage_ping/dictionary.md
+++ b/doc/development/usage_ping/dictionary.md
@@ -2890,7 +2890,7 @@ Tiers: `ultimate`
### `counts.merge_request_comment`
-Missing description
+Count of the number of merge request comments
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_all/20210216175041_merge_request_comment.yml)
@@ -2898,11 +2898,11 @@ Group: `group::code review`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `counts.merge_request_create`
-Missing description
+Count of the number of merge requests created
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_all/20210216175043_merge_request_create.yml)
@@ -2910,11 +2910,11 @@ Group: `group::code review`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `counts.merge_requests`
-Missing description
+Count of the number of merge requests
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_all/20210216175039_merge_requests.yml)
@@ -2922,7 +2922,7 @@ Group: `group::code review`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `counts.merged_merge_requests_using_approval_rules`
@@ -3018,7 +3018,7 @@ Group: `group::monitor`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `counts.operations_dashboard_users_with_projects_added`
@@ -3030,7 +3030,7 @@ Group: `group::monitor`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `counts.package_events_i_package_composer_delete_package`
@@ -5398,7 +5398,7 @@ Tiers: `free`
### `counts.suggestions`
-Missing description
+Count of all comments that contain suggested changes
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_all/20210216175037_suggestions.yml)
@@ -5406,7 +5406,7 @@ Group: `group::code review`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `counts.template_repositories`
@@ -8002,79 +8002,79 @@ Tiers:
### `redis_hll_counters.code_review.code_review_total_unique_counts_monthly`
-Missing description
+Count of unique users per month who interact with a merge request
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_28d/20210216184454_code_review_total_unique_counts_monthly.yml)
-Group: ``
+Group: `group::code review`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.code_review.code_review_total_unique_counts_weekly`
-Missing description
+Count of unique users per week who interact with a merge request
-[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_7d/20210216184452_code_review_total_unique_counts_weekly.yml)
+[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_7d/20210216184452_code_review_total_unique_counts_weekly.yml)
-Group: ``
+Group: `group::code review`
Status: `data_available`
-Tiers:
+Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.code_review.i_code_review_edit_mr_desc_monthly`
-Missing description
+Count of unique users per month who edit the description of a merge request
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_28d/20210216184342_i_code_review_edit_mr_desc_monthly.yml)
-Group: ``
+Group: `group::code review`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.code_review.i_code_review_edit_mr_desc_weekly`
-Missing description
+Count of unique users per week who edit the description of a merge request
-[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_7d/20210216184340_i_code_review_edit_mr_desc_weekly.yml)
+[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_7d/20210216184340_i_code_review_edit_mr_desc_weekly.yml)
-Group: ``
+Group: `group::code review`
Status: `data_available`
-Tiers:
+Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.code_review.i_code_review_edit_mr_title_monthly`
-Missing description
+Count of unique users per month who edit the title of a merge request
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_28d/20210216184338_i_code_review_edit_mr_title_monthly.yml)
-Group: ``
+Group: `group::code review`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.code_review.i_code_review_edit_mr_title_weekly`
-Missing description
+Count of unique users per week who edit the title of a merge request
-[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_7d/20210216184336_i_code_review_edit_mr_title_weekly.yml)
+[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_7d/20210216184336_i_code_review_edit_mr_title_weekly.yml)
-Group: ``
+Group: `group::code review`
Status: `data_available`
-Tiers:
+Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.code_review.i_code_review_mr_diffs_monthly`
-Count of unique merge requests per week|month with diffs viewed
+Count of unique merge requests per month with diffs viewed
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_28d/20210216175120_i_code_review_mr_diffs_monthly.yml)
@@ -8082,23 +8082,23 @@ Group: `group::code review`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.code_review.i_code_review_mr_diffs_weekly`
-Count of unique merge requests per week|month with diffs viewed
+Count of unique merge requests per week with diffs viewed
-[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_7d/20210216175118_i_code_review_mr_diffs_weekly.yml)
+[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_7d/20210216175118_i_code_review_mr_diffs_weekly.yml)
Group: `group::code review`
Status: `data_available`
-Tiers:
+Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.code_review.i_code_review_mr_single_file_diffs_monthly`
-Count of unique merge requests per week|month with diffs viewed file by file
+Count of unique merge requests per month with diffs viewed file by file
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_28d/20210216175128_i_code_review_mr_single_file_diffs_monthly.yml)
@@ -8106,19 +8106,19 @@ Group: `group::code review`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.code_review.i_code_review_mr_single_file_diffs_weekly`
-Count of unique merge requests per week|month with diffs viewed file by file
+Count of unique merge requests per week with diffs viewed file by file
-[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_7d/20210216175126_i_code_review_mr_single_file_diffs_weekly.yml)
+[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_7d/20210216175126_i_code_review_mr_single_file_diffs_weekly.yml)
Group: `group::code review`
Status: `data_available`
-Tiers:
+Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.code_review.i_code_review_user_add_suggestion_monthly`
@@ -8130,19 +8130,19 @@ Group: `group::code review`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.code_review.i_code_review_user_add_suggestion_weekly`
Count of unique users per week who added a suggestion
-[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_7d/20210216175158_i_code_review_user_add_suggestion_weekly.yml)
+[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_7d/20210216175158_i_code_review_user_add_suggestion_weekly.yml)
Group: `group::code review`
Status: `data_available`
-Tiers:
+Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.code_review.i_code_review_user_apply_suggestion_monthly`
@@ -8154,139 +8154,139 @@ Group: `group::code review`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.code_review.i_code_review_user_apply_suggestion_weekly`
Count of unique users per week who applied a suggestion
-[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_7d/20210216175201_i_code_review_user_apply_suggestion_weekly.yml)
+[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_7d/20210216175201_i_code_review_user_apply_suggestion_weekly.yml)
Group: `group::code review`
Status: `data_available`
-Tiers:
+Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.code_review.i_code_review_user_approval_rule_added_monthly`
-Missing description
+Count of unique users per month who add an approval rule to a merge request
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_28d/20210216184434_i_code_review_user_approval_rule_added_monthly.yml)
-Group: ``
+Group: `group::code review`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.code_review.i_code_review_user_approval_rule_added_weekly`
-Missing description
+Count of unique users per week who add an approval rule to a merge request
-[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_7d/20210216184432_i_code_review_user_approval_rule_added_weekly.yml)
+[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_7d/20210216184432_i_code_review_user_approval_rule_added_weekly.yml)
-Group: ``
+Group: `group::code review`
Status: `data_available`
-Tiers:
+Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.code_review.i_code_review_user_approval_rule_deleted_monthly`
-Missing description
+Count of unique users per month who delete an approval rule to a merge request
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_28d/20210216184438_i_code_review_user_approval_rule_deleted_monthly.yml)
-Group: ``
+Group: `group::code review`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.code_review.i_code_review_user_approval_rule_deleted_weekly`
-Missing description
+Count of unique users per week who delete an approval rule to a merge request
-[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_7d/20210216184436_i_code_review_user_approval_rule_deleted_weekly.yml)
+[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_7d/20210216184436_i_code_review_user_approval_rule_deleted_weekly.yml)
-Group: ``
+Group: `group::code review`
Status: `data_available`
-Tiers:
+Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.code_review.i_code_review_user_approval_rule_edited_monthly`
-Missing description
+Count of unique users per month who delete an approval rule to a merge request
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_28d/20210216184442_i_code_review_user_approval_rule_edited_monthly.yml)
-Group: ``
+Group: `group::code review`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.code_review.i_code_review_user_approval_rule_edited_weekly`
-Missing description
+Count of unique users per week who edit an approval rule to a merge request
-[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_7d/20210216184440_i_code_review_user_approval_rule_edited_weekly.yml)
+[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_7d/20210216184440_i_code_review_user_approval_rule_edited_weekly.yml)
-Group: ``
+Group: `group::code review`
Status: `data_available`
-Tiers:
+Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.code_review.i_code_review_user_approve_mr_monthly`
-Missing description
+Count of unique users per month who approve a merge request
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_28d/20210216184322_i_code_review_user_approve_mr_monthly.yml)
-Group: ``
+Group: `group::code review`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.code_review.i_code_review_user_approve_mr_weekly`
-Missing description
+Count of unique users per week who approve a merge request
-[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_7d/20210216184320_i_code_review_user_approve_mr_weekly.yml)
+[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_7d/20210216184320_i_code_review_user_approve_mr_weekly.yml)
-Group: ``
+Group: `group::code review`
Status: `data_available`
-Tiers:
+Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.code_review.i_code_review_user_assigned_monthly`
-Missing description
+Count of unique users per month who are assigned to a merge request
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_28d/20210216184418_i_code_review_user_assigned_monthly.yml)
-Group: ``
+Group: `group::code review`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.code_review.i_code_review_user_assigned_weekly`
-Missing description
+Count of unique users per week who are assigned to a merge request
-[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_7d/20210216184416_i_code_review_user_assigned_weekly.yml)
+[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_7d/20210216184416_i_code_review_user_assigned_weekly.yml)
-Group: ``
+Group: `group::code review`
Status: `data_available`
-Tiers:
+Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.code_review.i_code_review_user_assignees_changed_monthly`
@@ -8314,7 +8314,7 @@ Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.code_review.i_code_review_user_close_mr_monthly`
-Count of unique users per week|month who closed a MR
+Count of unique users per month who closed a MR
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_28d/20210216175136_i_code_review_user_close_mr_monthly.yml)
@@ -8322,23 +8322,23 @@ Group: `group::code review`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.code_review.i_code_review_user_close_mr_weekly`
-Count of unique users per week|month who closed a MR
+Count of unique users per week who closed a MR
-[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_7d/20210216175134_i_code_review_user_close_mr_weekly.yml)
+[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_7d/20210216175134_i_code_review_user_close_mr_weekly.yml)
Group: `group::code review`
Status: `data_available`
-Tiers:
+Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.code_review.i_code_review_user_create_mr_comment_monthly`
-Count of unique users per week|month who commented on a MR
+Count of unique users per month who commented on a MR
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_28d/20210216175148_i_code_review_user_create_mr_comment_monthly.yml)
@@ -8346,47 +8346,47 @@ Group: `group::code review`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.code_review.i_code_review_user_create_mr_comment_weekly`
-Count of unique users per week|month who commented on a MR
+Count of unique users per week who commented on a MR
-[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_7d/20210216175146_i_code_review_user_create_mr_comment_weekly.yml)
+[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_7d/20210216175146_i_code_review_user_create_mr_comment_weekly.yml)
Group: `group::code review`
Status: `data_available`
-Tiers:
+Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.code_review.i_code_review_user_create_mr_from_issue_monthly`
-Missing description
+Count of unique users per month who create a merge request from an issue
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_28d/20210216184450_i_code_review_user_create_mr_from_issue_monthly.yml)
-Group: ``
+Group: `group::code review`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.code_review.i_code_review_user_create_mr_from_issue_weekly`
-Missing description
+Count of unique users per week who create a merge request from an issue
-[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_7d/20210216184448_i_code_review_user_create_mr_from_issue_weekly.yml)
+[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_7d/20210216184448_i_code_review_user_create_mr_from_issue_weekly.yml)
-Group: ``
+Group: `group::code review`
Status: `data_available`
-Tiers:
+Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.code_review.i_code_review_user_create_mr_monthly`
-Count of unique users per week|month who created a MR
+Count of unique users per month who created a MR
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_28d/20210216175132_i_code_review_user_create_mr_monthly.yml)
@@ -8394,71 +8394,71 @@ Group: `group::code review`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.code_review.i_code_review_user_create_mr_weekly`
-Count of unique users per week|month who created a MR
+Count of unique users per week who created a MR
-[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_7d/20210216175130_i_code_review_user_create_mr_weekly.yml)
+[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_7d/20210216175130_i_code_review_user_create_mr_weekly.yml)
Group: `group::code review`
Status: `data_available`
-Tiers:
+Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.code_review.i_code_review_user_create_multiline_mr_comment_monthly`
-Missing description
+Count of unique users per month who create a multiline comment in a merge request
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_28d/20210216184401_i_code_review_user_create_multiline_mr_comment_monthly.yml)
-Group: ``
+Group: `group::code review`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.code_review.i_code_review_user_create_multiline_mr_comment_weekly`
-Missing description
+Count of unique users per week who create a multiline comment in a merge request
-[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_7d/20210216184359_i_code_review_user_create_multiline_mr_comment_weekly.yml)
+[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_7d/20210216184359_i_code_review_user_create_multiline_mr_comment_weekly.yml)
-Group: ``
+Group: `group::code review`
Status: `data_available`
-Tiers:
+Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.code_review.i_code_review_user_create_review_note_monthly`
-Missing description
+Count of unique users per month who create a note as part of a merge request review
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_28d/20210216184353_i_code_review_user_create_review_note_monthly.yml)
-Group: ``
+Group: `group::code review`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.code_review.i_code_review_user_create_review_note_weekly`
-Missing description
+Count of unique users per week who create a note as part of a merge request review
-[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_7d/20210216184351_i_code_review_user_create_review_note_weekly.yml)
+[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_7d/20210216184351_i_code_review_user_create_review_note_weekly.yml)
-Group: ``
+Group: `group::code review`
Status: `data_available`
-Tiers:
+Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.code_review.i_code_review_user_edit_mr_comment_monthly`
-Count of unique users per week|month who edited a comment on a MR
+Count of unique users per month who edited a comment on a MR
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_28d/20210216175152_i_code_review_user_edit_mr_comment_monthly.yml)
@@ -8466,43 +8466,43 @@ Group: `group::code review`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.code_review.i_code_review_user_edit_mr_comment_weekly`
-Count of unique users per week|month who edited a comment on a MR
+Count of unique users per week who edited a comment on a MR
-[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_7d/20210216175150_i_code_review_user_edit_mr_comment_weekly.yml)
+[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_7d/20210216175150_i_code_review_user_edit_mr_comment_weekly.yml)
Group: `group::code review`
Status: `data_available`
-Tiers:
+Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.code_review.i_code_review_user_edit_multiline_mr_comment_monthly`
-Missing description
+Count of unique users per week who edit a multiline comment in a merge request
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_28d/20210216184405_i_code_review_user_edit_multiline_mr_comment_monthly.yml)
-Group: ``
+Group: `group::code review`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.code_review.i_code_review_user_edit_multiline_mr_comment_weekly`
-Missing description
+Count of unique users per week who edit a multiline comment in a merge request
-[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_7d/20210216184403_i_code_review_user_edit_multiline_mr_comment_weekly.yml)
+[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_7d/20210216184403_i_code_review_user_edit_multiline_mr_comment_weekly.yml)
-Group: ``
+Group: `group::code review`
Status: `data_available`
-Tiers:
+Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.code_review.i_code_review_user_labels_changed_monthly`
@@ -8530,31 +8530,31 @@ Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.code_review.i_code_review_user_marked_as_draft_monthly`
-Missing description
+Count of unique users per month who mark a merge request as a draft
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_28d/20210216184422_i_code_review_user_marked_as_draft_monthly.yml)
-Group: ``
+Group: `group::code review`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.code_review.i_code_review_user_marked_as_draft_weekly`
-Missing description
+Count of unique users per week who mark a merge request as a draft
-[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_7d/20210216184420_i_code_review_user_marked_as_draft_weekly.yml)
+[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_7d/20210216184420_i_code_review_user_marked_as_draft_weekly.yml)
-Group: ``
+Group: `group::code review`
Status: `data_available`
-Tiers:
+Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.code_review.i_code_review_user_merge_mr_monthly`
-Count of unique users per week|month who merged a MR
+Count of unique users per month who merged a MR
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_28d/20210216175144_i_code_review_user_merge_mr_monthly.yml)
@@ -8562,19 +8562,19 @@ Group: `group::code review`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.code_review.i_code_review_user_merge_mr_weekly`
-Count of unique users per week|month who merged a MR
+Count of unique users per week who merged a MR
-[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_7d/20210216175142_i_code_review_user_merge_mr_weekly.yml)
+[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_7d/20210216175142_i_code_review_user_merge_mr_weekly.yml)
Group: `group::code review`
Status: `data_available`
-Tiers:
+Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.code_review.i_code_review_user_milestone_changed_monthly`
@@ -8650,31 +8650,31 @@ Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.code_review.i_code_review_user_publish_review_monthly`
-Missing description
+Count of unique users per month who publish their review as part of a merge request review
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_28d/20210216184357_i_code_review_user_publish_review_monthly.yml)
-Group: ``
+Group: `group::code review`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.code_review.i_code_review_user_publish_review_weekly`
-Missing description
+Count of unique users per week who publish their review as part of a merge request review
-[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_7d/20210216184355_i_code_review_user_publish_review_weekly.yml)
+[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_7d/20210216184355_i_code_review_user_publish_review_weekly.yml)
-Group: ``
+Group: `group::code review`
Status: `data_available`
-Tiers:
+Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.code_review.i_code_review_user_remove_mr_comment_monthly`
-Count of unique users per week|month who removed a comment on a MR
+Count of unique users per month who removed a comment on a MR
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_28d/20210216175156_i_code_review_user_remove_mr_comment_monthly.yml)
@@ -8682,47 +8682,47 @@ Group: `group::code review`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.code_review.i_code_review_user_remove_mr_comment_weekly`
-Count of unique users per week|month who removed a comment on a MR
+Count of unique users per month who removed a comment on a MR
-[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_7d/20210216175154_i_code_review_user_remove_mr_comment_weekly.yml)
+[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_7d/20210216175154_i_code_review_user_remove_mr_comment_weekly.yml)
Group: `group::code review`
Status: `data_available`
-Tiers:
+Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.code_review.i_code_review_user_remove_multiline_mr_comment_monthly`
-Missing description
+Count of unique users per month who remove a multiline comment in a merge request
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_28d/20210216184409_i_code_review_user_remove_multiline_mr_comment_monthly.yml)
-Group: ``
+Group: `group::code review`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.code_review.i_code_review_user_remove_multiline_mr_comment_weekly`
-Missing description
+Count of unique users per week who remove a multiline comment in a merge request
-[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_7d/20210216184407_i_code_review_user_remove_multiline_mr_comment_weekly.yml)
+[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_7d/20210216184407_i_code_review_user_remove_multiline_mr_comment_weekly.yml)
-Group: ``
+Group: `group::code review`
Status: `data_available`
-Tiers:
+Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.code_review.i_code_review_user_reopen_mr_monthly`
-Count of unique users per week|month who reopened a MR
+Count of unique users per month who reopened a MR
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_28d/20210216175140_i_code_review_user_reopen_mr_monthly.yml)
@@ -8730,67 +8730,67 @@ Group: `group::code review`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.code_review.i_code_review_user_reopen_mr_weekly`
-Count of unique users per week|month who reopened a MR
+Count of unique users per week who reopened a MR
-[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_7d/20210216175138_i_code_review_user_reopen_mr_weekly.yml)
+[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_7d/20210216175138_i_code_review_user_reopen_mr_weekly.yml)
Group: `group::code review`
Status: `data_available`
-Tiers:
+Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.code_review.i_code_review_user_resolve_thread_monthly`
-Missing description
+Count of unique users per month who resolve a thread in a merge request
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_28d/20210216184330_i_code_review_user_resolve_thread_monthly.yml)
-Group: ``
+Group: `group::code review`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.code_review.i_code_review_user_resolve_thread_weekly`
-Missing description
+Count of unique users per week who resolve a thread in a merge request
-[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_7d/20210216184328_i_code_review_user_resolve_thread_weekly.yml)
+[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_7d/20210216184328_i_code_review_user_resolve_thread_weekly.yml)
-Group: ``
+Group: `group::code review`
Status: `data_available`
-Tiers:
+Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.code_review.i_code_review_user_review_requested_monthly`
-Missing description
+Count of unique users per month who request a review of a merge request
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_28d/20210216184430_i_code_review_user_review_requested_monthly.yml)
-Group: ``
+Group: `group::code review`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.code_review.i_code_review_user_review_requested_weekly`
-Missing description
+Count of unique users per week who request a review of a merge request
-[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_7d/20210216184428_i_code_review_user_review_requested_weekly.yml)
+[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_7d/20210216184428_i_code_review_user_review_requested_weekly.yml)
-Group: ``
+Group: `group::code review`
Status: `data_available`
-Tiers:
+Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.code_review.i_code_review_user_reviewers_changed_monthly`
@@ -8818,7 +8818,7 @@ Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.code_review.i_code_review_user_single_file_diffs_monthly`
-Count of unique users per week|month with diffs viewed file by file
+Count of unique users per month with diffs viewed file by file
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_28d/20210216175124_i_code_review_user_single_file_diffs_monthly.yml)
@@ -8826,19 +8826,19 @@ Group: `group::code review`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.code_review.i_code_review_user_single_file_diffs_weekly`
-Count of unique users per week|month with diffs viewed file by file
+Count of unique users per week with diffs viewed file by file
-[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_7d/20210216175122_i_code_review_user_single_file_diffs_weekly.yml)
+[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_7d/20210216175122_i_code_review_user_single_file_diffs_weekly.yml)
Group: `group::code review`
Status: `data_available`
-Tiers:
+Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.code_review.i_code_review_user_time_estimate_changed_monthly`
@@ -8890,123 +8890,123 @@ Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.code_review.i_code_review_user_toggled_task_item_status_monthly`
-Missing description
+Count of unique users per month who toggled a task item in a merge request
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_28d/20210216184312_i_code_review_user_toggled_task_item_status_monthly.yml)
-Group: ``
+Group: `group::code review`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.code_review.i_code_review_user_toggled_task_item_status_weekly`
-Missing description
+Count of unique users per week who toggled a task item in a merge request
-[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_7d/20210216184310_i_code_review_user_toggled_task_item_status_weekly.yml)
+[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_7d/20210216184310_i_code_review_user_toggled_task_item_status_weekly.yml)
-Group: ``
+Group: `group::code review`
Status: `data_available`
-Tiers:
+Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.code_review.i_code_review_user_unapprove_mr_monthly`
-Missing description
+Count of unique users per month who unapprove a merge request
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_28d/20210216184326_i_code_review_user_unapprove_mr_monthly.yml)
-Group: ``
+Group: `group::code review`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.code_review.i_code_review_user_unapprove_mr_weekly`
-Missing description
+Count of unique users per week who unapprove a merge request
-[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_7d/20210216184324_i_code_review_user_unapprove_mr_weekly.yml)
+[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_7d/20210216184324_i_code_review_user_unapprove_mr_weekly.yml)
-Group: ``
+Group: `group::code review`
Status: `data_available`
-Tiers:
+Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.code_review.i_code_review_user_unmarked_as_draft_monthly`
-Missing description
+Count of unique users per month who unmark a merge request as a draft
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_28d/20210216184426_i_code_review_user_unmarked_as_draft_monthly.yml)
-Group: ``
+Group: `group::code review`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.code_review.i_code_review_user_unmarked_as_draft_weekly`
-Missing description
+Count of unique users per week who unmark a merge request as a draft
-[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_7d/20210216184424_i_code_review_user_unmarked_as_draft_weekly.yml)
+[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_7d/20210216184424_i_code_review_user_unmarked_as_draft_weekly.yml)
-Group: ``
+Group: `group::code review`
Status: `data_available`
-Tiers:
+Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.code_review.i_code_review_user_unresolve_thread_monthly`
-Missing description
+Count of unique users per month who unresolve a thread in a merge request
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_28d/20210216184334_i_code_review_user_unresolve_thread_monthly.yml)
-Group: ``
+Group: `group::code review`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.code_review.i_code_review_user_unresolve_thread_weekly`
-Missing description
+Count of unique users per week who unresolve a thread in a merge request
-[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_7d/20210216184332_i_code_review_user_unresolve_thread_weekly.yml)
+[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_7d/20210216184332_i_code_review_user_unresolve_thread_weekly.yml)
-Group: ``
+Group: `group::code review`
Status: `data_available`
-Tiers:
+Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.code_review.i_code_review_user_vs_code_api_request_monthly`
-Missing description
+Count of unique users per month who use GitLab Workflow for VS Code
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_28d/20210216184446_i_code_review_user_vs_code_api_request_monthly.yml)
-Group: ``
+Group: `group::code review`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.code_review.i_code_review_user_vs_code_api_request_weekly`
-Missing description
+Count of unique users per week who use GitLab Workflow for VS Code
-[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_7d/20210216184444_i_code_review_user_vs_code_api_request_weekly.yml)
+[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_7d/20210216184444_i_code_review_user_vs_code_api_request_weekly.yml)
-Group: ``
+Group: `group::code review`
Status: `data_available`
-Tiers:
+Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.compliance.a_compliance_audit_events_api_monthly`
@@ -13570,31 +13570,31 @@ Tiers:
### `redis_hll_counters.source_code.i_source_code_code_intelligence_monthly`
-Missing description
+Count of unique users who use code intelligence
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_28d/20210216175117_i_source_code_code_intelligence_monthly.yml)
-Group: `group::code review`
+Group: `group::source code`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.source_code.i_source_code_code_intelligence_weekly`
-Missing description
+Count of unique users who use code intelligence
-[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_7d/20210216175114_i_source_code_code_intelligence_weekly.yml)
+[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_7d/20210216175114_i_source_code_code_intelligence_weekly.yml)
-Group: `group::code review`
+Group: `group::source code`
Status: `data_available`
-Tiers:
+Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.source_code.merge_request_action_monthly`
-Missing description
+Count of unique users who perform an action on a merge request
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_28d/20210216175113_merge_request_action_monthly.yml)
@@ -13602,19 +13602,19 @@ Group: `group::code review`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.source_code.merge_request_action_weekly`
-Missing description
+Count of unique users who perform an action on a merge request
-[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_7d/20210216175111_merge_request_action_weekly.yml)
+[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_7d/20210216175111_merge_request_action_weekly.yml)
Group: `group::code review`
Status: `data_available`
-Tiers:
+Tiers: `free`, `premium`, `ultimate`
### `redis_hll_counters.source_code.project_action_monthly`
@@ -14736,7 +14736,7 @@ Tiers: `free`
### `usage_activity_by_stage.create.merge_requests`
-Missing description
+Count of the number of users creating merge requests
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_all/20210216175045_merge_requests.yml)
@@ -14744,7 +14744,7 @@ Group: `group::code review`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `usage_activity_by_stage.create.merge_requests_with_added_rules`
@@ -14756,19 +14756,19 @@ Group: `group::code review`
Status: `data_available`
-Tiers:
+Tiers: `premium`, `ultimate`
### `usage_activity_by_stage.create.merge_requests_with_optional_codeowners`
-Missing description
+Count of merge requests with optional codeowner approval rules
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_all/20210216175049_merge_requests_with_optional_codeowners.yml)
-Group: `group::code review`
+Group: `group::source code`
Status: `data_available`
-Tiers:
+Tiers: `premium`, `ultimate`
### `usage_activity_by_stage.create.merge_requests_with_overridden_project_rules`
@@ -14784,15 +14784,15 @@ Tiers: `free`
### `usage_activity_by_stage.create.merge_requests_with_required_codeowners`
-Missing description
+Count of merge requests with required codeowner approval rules
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_all/20210216175051_merge_requests_with_required_codeowners.yml)
-Group: `group::code review`
+Group: `group::source code`
Status: `data_available`
-Tiers:
+Tiers: `premium`, `ultimate`
### `usage_activity_by_stage.create.projects_enforcing_code_owner_approval`
@@ -14904,7 +14904,7 @@ Tiers: `free`, `premium`, `ultimate`
### `usage_activity_by_stage.create.suggestions`
-Missing description
+Count of unique users who create suggestions in merge request comments
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_all/20210216175053_suggestions.yml)
@@ -14912,7 +14912,7 @@ Group: `group::code review`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `usage_activity_by_stage.create.total_number_of_locked_files`
@@ -15564,7 +15564,7 @@ Tiers:
### `usage_activity_by_stage.monitor.clusters`
-Total GitLab Managed clusters both enabled and disabled
+Users creating clusters.
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_all/20210216180945_clusters.yml)
@@ -15572,11 +15572,11 @@ Group: `group::monitor`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `usage_activity_by_stage.monitor.clusters_applications_prometheus`
-Total GitLab Managed clusters with Prometheus enabled
+Users creating clusters with Prometheus enabled.
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_all/20210216180947_clusters_applications_prometheus.yml)
@@ -15584,7 +15584,7 @@ Group: `group::monitor`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `usage_activity_by_stage.monitor.operations_dashboard_default_dashboard`
@@ -15596,7 +15596,7 @@ Group: `group::monitor`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`
### `usage_activity_by_stage.monitor.operations_dashboard_users_with_projects_added`
@@ -15608,7 +15608,7 @@ Group: `group::monitor`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `usage_activity_by_stage.monitor.projects_incident_sla_enabled`
@@ -16668,7 +16668,7 @@ Tiers: `free`
### `usage_activity_by_stage_monthly.create.merge_requests`
-Missing description
+Count of the number of users creating merge requests
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_28d/20210216175055_merge_requests.yml)
@@ -16676,11 +16676,11 @@ Group: `group::code review`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `usage_activity_by_stage_monthly.create.merge_requests_users`
-Missing description
+Monthly count of the number of merge request users
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_28d/20210216175101_merge_requests_users.yml)
@@ -16688,7 +16688,7 @@ Group: `group::code review`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `usage_activity_by_stage_monthly.create.merge_requests_with_added_rules`
@@ -16700,19 +16700,19 @@ Group: `group::code review`
Status: `data_available`
-Tiers:
+Tiers: `premium`, `ultimate`
### `usage_activity_by_stage_monthly.create.merge_requests_with_optional_codeowners`
-Missing description
+Count of merge requests with optional codeowner approval rules
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_28d/20210216175105_merge_requests_with_optional_codeowners.yml)
-Group: `group::code review`
+Group: `group::source code`
Status: `data_available`
-Tiers:
+Tiers: `premium`, `ultimate`
### `usage_activity_by_stage_monthly.create.merge_requests_with_overridden_project_rules`
@@ -16728,15 +16728,15 @@ Tiers:
### `usage_activity_by_stage_monthly.create.merge_requests_with_required_codeowners`
-Missing description
+Count of merge requests with required codeowner approval rules
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/metrics/counts_28d/20210216175107_merge_requests_with_required_codeowners.yml)
-Group: `group::code review`
+Group: `group::source code`
Status: `data_available`
-Tiers:
+Tiers: `premium`, `ultimate`
### `usage_activity_by_stage_monthly.create.projects_enforcing_code_owner_approval`
@@ -16764,15 +16764,15 @@ Tiers: `free`
### `usage_activity_by_stage_monthly.create.projects_with_disable_overriding_approvers_per_merge_request`
-Missing description
+Count of the number of projects with setting to disable overriding approvers per merge request
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_28d/20210216175057_projects_with_disable_overriding_approvers_per_merge_request.yml)
-Group: `group::code review`
+Group: `group::source code`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `usage_activity_by_stage_monthly.create.projects_with_repositories_enabled`
@@ -16800,15 +16800,15 @@ Tiers: `free`
### `usage_activity_by_stage_monthly.create.projects_without_disable_overriding_approvers_per_merge_request`
-Missing description
+Count of the number of projects without setting to disable overriding approvers per merge request
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_28d/20210216175059_projects_without_disable_overriding_approvers_per_merge_request.yml)
-Group: `group::code review`
+Group: `group::source code`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `usage_activity_by_stage_monthly.create.protected_branches`
@@ -16848,7 +16848,7 @@ Tiers: `free`, `premium`, `ultimate`
### `usage_activity_by_stage_monthly.create.suggestions`
-Missing description
+Count of unique users per month who create suggestions in merge request comments
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_28d/20210216175109_suggestions.yml)
@@ -16856,7 +16856,7 @@ Group: `group::code review`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `usage_activity_by_stage_monthly.create.total_number_of_locked_files`
@@ -17496,7 +17496,7 @@ Tiers:
### `usage_activity_by_stage_monthly.monitor.clusters`
-Total GitLab Managed clusters both enabled and disabled
+Count users creating clusters in last 28 days.
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_28d/20210216180956_clusters.yml)
@@ -17504,11 +17504,11 @@ Group: `group::monitor`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `usage_activity_by_stage_monthly.monitor.clusters_applications_prometheus`
-Total GitLab Managed clusters with Prometheus enabled
+Users creating clusters with Prometheus enabled in last 28 days.
[YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_28d/20210216180958_clusters_applications_prometheus.yml)
@@ -17516,7 +17516,7 @@ Group: `group::monitor`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `usage_activity_by_stage_monthly.monitor.operations_dashboard_default_dashboard`
@@ -17528,7 +17528,7 @@ Group: `group::monitor`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `usage_activity_by_stage_monthly.monitor.operations_dashboard_users_with_projects_added`
@@ -17540,7 +17540,7 @@ Group: `group::monitor`
Status: `data_available`
-Tiers: `free`
+Tiers: `free`, `premium`, `ultimate`
### `usage_activity_by_stage_monthly.monitor.projects_incident_sla_enabled`
diff --git a/doc/integration/saml.md b/doc/integration/saml.md
index 842eb71f7f4..845a81dcd85 100644
--- a/doc/integration/saml.md
+++ b/doc/integration/saml.md
@@ -1,8 +1,8 @@
---
-type: reference
stage: Manage
group: Access
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
+type: reference
---
# SAML OmniAuth Provider **(FREE SELF)**
diff --git a/doc/security/two_factor_authentication.md b/doc/security/two_factor_authentication.md
index 1abd4502eb5..0ec6f21634b 100644
--- a/doc/security/two_factor_authentication.md
+++ b/doc/security/two_factor_authentication.md
@@ -37,6 +37,8 @@ change the grace period to `0`.
## Enforcing 2FA for all users in a group
+> [Introduced in](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/24965) GitLab 12.0, 2FA settings for a group are also applied to subgroups.
+
If you want to enforce 2FA only for certain groups, you can:
1. Enable it in the group's **Settings > General** page. Navigate to
@@ -47,8 +49,6 @@ If you want to enforce 2FA only for certain groups, you can:
To change this setting, you need to be administrator or owner of the group.
-> [From](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/24965) GitLab 12.0, 2FA settings for a group are also applied to subgroups.
-
If you want to enforce 2FA only for certain groups, you can enable it in the
group settings and specify a grace period as above. To change this setting you
need to be administrator or owner of the group.
diff --git a/doc/subscriptions/bronze_starter.md b/doc/subscriptions/bronze_starter.md
index 303f734bc24..757449a7012 100644
--- a/doc/subscriptions/bronze_starter.md
+++ b/doc/subscriptions/bronze_starter.md
@@ -69,7 +69,7 @@ the tiers are no longer mentioned in GitLab documentation:
- [Approval Rule information for Reviewers](../user/project/merge_requests/getting_started.md#approval-rule-information-for-reviewers) **(PREMIUM)**
- [Required Approvals](../user/project/merge_requests/merge_request_approvals.md#required-approvals)
- [Code Owners as eligible approvers](../user/project/merge_requests/merge_request_approvals.md#code-owners-as-eligible-approvers)
- - All [Approval rules](../user/project/merge_requests/merge_request_approvals.md#approval-rules) features
+ - [Approval rules](../user/project/merge_requests/merge_request_approvals.md#approval-rules) features
- [Restricting push and merge access to certain users](../user/project/protected_branches.md#restricting-push-and-merge-access-to-certain-users)
- [Visual Reviews](../ci/review_apps/index.md#visual-reviews)
- Metrics and analytics:
diff --git a/doc/user/admin_area/broadcast_messages.md b/doc/user/admin_area/broadcast_messages.md
index 8cb2f797b2e..67a89f896ff 100644
--- a/doc/user/admin_area/broadcast_messages.md
+++ b/doc/user/admin_area/broadcast_messages.md
@@ -1,6 +1,6 @@
---
-stage: none
-group: unassigned
+stage: Growth
+group: Activation
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
type: reference, howto
---
diff --git a/doc/user/project/issue_board.md b/doc/user/project/issue_board.md
index 5ddf98d4560..9c14cd0ee70 100644
--- a/doc/user/project/issue_board.md
+++ b/doc/user/project/issue_board.md
@@ -343,8 +343,7 @@ As in other list types, click the trash icon to remove a list.
### Iteration lists **(PREMIUM)**
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/250479) in GitLab 13.11.
-> - [Deployed behind the `board_new_lists` and `iteration_board_lists` feature flags](../feature_flags.md), disabled by default.
-> - [Enabled by default](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/57439) in GitLab 13.11.
+> - [Deployed behind the `board_new_lists` and `iteration_board_lists` feature flags](../feature_flags.md), enabled by default.
> - Enabled on GitLab.com.
> - Recommended for production use.
> - For GitLab self-managed instances, GitLab administrators can opt to disable the feature flags: [`board_new_lists`](#enable-or-disable-new-add-list-form) and [`iteration_board_lists`](#enable-or-disable-iteration-lists-in-boards). **(PREMIUM SELF)**
diff --git a/lib/feature/active_support_cache_store_adapter.rb b/lib/feature/active_support_cache_store_adapter.rb
index ae2d623abe1..ea133853f5f 100644
--- a/lib/feature/active_support_cache_store_adapter.rb
+++ b/lib/feature/active_support_cache_store_adapter.rb
@@ -4,18 +4,23 @@
# This class was already nested this way before moving to a separate file
class Feature
class ActiveSupportCacheStoreAdapter < Flipper::Adapters::ActiveSupportCacheStore
+ extend ::Gitlab::Utils::Override
+
+ override :enable
def enable(feature, gate, thing)
result = @adapter.enable(feature, gate, thing)
@cache.write(key_for(feature.key), @adapter.get(feature), @write_options)
result
end
+ override :disable
def disable(feature, gate, thing)
result = @adapter.disable(feature, gate, thing)
@cache.write(key_for(feature.key), @adapter.get(feature), @write_options)
result
end
+ override :remove
def remove(feature)
result = @adapter.remove(feature)
@cache.delete(FeaturesKey)
diff --git a/lib/gitlab/ci/templates/Security/API-Fuzzing.latest.gitlab-ci.yml b/lib/gitlab/ci/templates/Security/API-Fuzzing.latest.gitlab-ci.yml
index 215029dc952..a9422a611cf 100644
--- a/lib/gitlab/ci/templates/Security/API-Fuzzing.latest.gitlab-ci.yml
+++ b/lib/gitlab/ci/templates/Security/API-Fuzzing.latest.gitlab-ci.yml
@@ -12,8 +12,6 @@ variables:
FUZZAPI_REPORT: gl-api-fuzzing-report.json
FUZZAPI_REPORT_ASSET_PATH: assets
#
- FUZZAPI_D_NETWORK: testing-net
- #
# Wait up to 5 minutes for API Fuzzer and target url to become
# available (non 500 response to HTTP(s))
FUZZAPI_SERVICE_START_TIMEOUT: "300"
@@ -45,10 +43,6 @@ apifuzzer_fuzz:
TZ: America/Los_Angeles
allow_failure: true
rules:
- - if: $FUZZAPI_D_TARGET_IMAGE
- when: never
- - if: $FUZZAPI_D_WORKER_IMAGE
- when: never
- if: $API_FUZZING_DISABLED
when: never
- if: $API_FUZZING_DISABLED_FOR_DEFAULT_BRANCH &&
@@ -94,177 +88,4 @@ apifuzzer_fuzz:
reports:
api_fuzzing: $FUZZAPI_REPORT
-apifuzzer_fuzz_dnd:
- stage: fuzz
- image: docker:19.03.12
- variables:
- DOCKER_DRIVER: overlay2
- DOCKER_TLS_CERTDIR: ""
- FUZZAPI_PROJECT: $CI_PROJECT_PATH
- FUZZAPI_API: http://apifuzzer:80
- allow_failure: true
- rules:
- - if: $FUZZAPI_D_TARGET_IMAGE == null && $FUZZAPI_D_WORKER_IMAGE == null
- when: never
- - if: $API_FUZZING_DISABLED
- when: never
- - if: $API_FUZZING_DISABLED_FOR_DEFAULT_BRANCH &&
- $CI_DEFAULT_BRANCH == $CI_COMMIT_REF_NAME
- when: never
- - if: $CI_COMMIT_BRANCH && $GITLAB_FEATURES =~ /\bapi_fuzzing\b/
- services:
- - docker:19.03.12-dind
- script:
- #
- #
- - docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY
- #
- - docker network create --driver bridge $FUZZAPI_D_NETWORK
- #
- # Run user provided pre-script
- - sh -c "$FUZZAPI_PRE_SCRIPT"
- #
- # Make sure asset path exists
- - mkdir -p $FUZZAPI_REPORT_ASSET_PATH
- #
- # Start peach testing engine container
- - |
- docker run -d \
- --name apifuzzer \
- --network $FUZZAPI_D_NETWORK \
- -e Proxy:Port=8000 \
- -e TZ=America/Los_Angeles \
- -e GITLAB_FEATURES \
- -p 80:80 \
- -p 8000:8000 \
- -p 514:514 \
- --restart=no \
- $FUZZAPI_IMAGE \
- dotnet /peach/Peach.Web.dll
- #
- # Start target container
- - |
- if [ "$FUZZAPI_D_TARGET_IMAGE" != "" ]; then \
- docker run -d \
- --name target \
- --network $FUZZAPI_D_NETWORK \
- $FUZZAPI_D_TARGET_ENV \
- $FUZZAPI_D_TARGET_PORTS \
- $FUZZAPI_D_TARGET_VOLUME \
- --restart=no \
- $FUZZAPI_D_TARGET_IMAGE \
- ; fi
- #
- # Start worker container if provided
- - |
- if [ "$FUZZAPI_D_WORKER_IMAGE" != "" ]; then \
- echo "Starting worker image $FUZZAPI_D_WORKER_IMAGE"; \
- docker run \
- --name worker \
- --network $FUZZAPI_D_NETWORK \
- -e FUZZAPI_API=http://apifuzzer:80 \
- -e FUZZAPI_PROJECT \
- -e FUZZAPI_PROFILE \
- -e FUZZAPI_CONFIG \
- -e FUZZAPI_REPORT \
- -e FUZZAPI_REPORT_ASSET_PATH \
- -e FUZZAPI_NEW_REPORT=1 \
- -e FUZZAPI_HAR \
- -e FUZZAPI_OPENAPI \
- -e FUZZAPI_POSTMAN_COLLECTION \
- -e FUZZAPI_POSTMAN_COLLECTION_VARIABLES \
- -e FUZZAPI_TARGET_URL \
- -e FUZZAPI_OVERRIDES_FILE \
- -e FUZZAPI_OVERRIDES_ENV \
- -e FUZZAPI_OVERRIDES_CMD \
- -e FUZZAPI_OVERRIDES_INTERVAL \
- -e FUZZAPI_TIMEOUT \
- -e FUZZAPI_VERBOSE \
- -e FUZZAPI_SERVICE_START_TIMEOUT \
- -e FUZZAPI_HTTP_USERNAME \
- -e FUZZAPI_HTTP_PASSWORD \
- -e CI_PROJECT_URL \
- -e CI_JOB_ID \
- -e CI_COMMIT_BRANCH=${CI_COMMIT_BRANCH} \
- $FUZZAPI_D_WORKER_ENV \
- $FUZZAPI_D_WORKER_PORTS \
- $FUZZAPI_D_WORKER_VOLUME \
- --restart=no \
- $FUZZAPI_D_WORKER_IMAGE \
- ; fi
- #
- # Start API Fuzzing provided worker if no other worker present
- - |
- if [ "$FUZZAPI_D_WORKER_IMAGE" == "" ]; then \
- if [ "$FUZZAPI_HAR$FUZZAPI_OPENAPI$FUZZAPI_POSTMAN_COLLECTION" == "" ]; then \
- echo "Error: One of FUZZAPI_HAR, FUZZAPI_OPENAPI, or FUZZAPI_POSTMAN_COLLECTION must be provided."; \
- echo "See https://docs.gitlab.com/ee/user/application_security/api_fuzzing/ for information on how to configure API Fuzzing."; \
- exit 1; \
- fi; \
- docker run \
- --name worker \
- --network $FUZZAPI_D_NETWORK \
- -e TZ=America/Los_Angeles \
- -e FUZZAPI_API=http://apifuzzer:80 \
- -e FUZZAPI_PROJECT \
- -e FUZZAPI_PROFILE \
- -e FUZZAPI_CONFIG \
- -e FUZZAPI_REPORT \
- -e FUZZAPI_REPORT_ASSET_PATH \
- -e FUZZAPI_NEW_REPORT=1 \
- -e FUZZAPI_HAR \
- -e FUZZAPI_OPENAPI \
- -e FUZZAPI_POSTMAN_COLLECTION \
- -e FUZZAPI_POSTMAN_COLLECTION_VARIABLES \
- -e FUZZAPI_TARGET_URL \
- -e FUZZAPI_OVERRIDES_FILE \
- -e FUZZAPI_OVERRIDES_ENV \
- -e FUZZAPI_OVERRIDES_CMD \
- -e FUZZAPI_OVERRIDES_INTERVAL \
- -e FUZZAPI_TIMEOUT \
- -e FUZZAPI_VERBOSE \
- -e FUZZAPI_SERVICE_START_TIMEOUT \
- -e FUZZAPI_HTTP_USERNAME \
- -e FUZZAPI_HTTP_PASSWORD \
- -e CI_PROJECT_URL \
- -e CI_JOB_ID \
- -v $CI_PROJECT_DIR:/app \
- -v `pwd`/$FUZZAPI_REPORT_ASSET_PATH:/app/$FUZZAPI_REPORT_ASSET_PATH:rw \
- -p 81:80 \
- -p 8001:8000 \
- -p 515:514 \
- --restart=no \
- $FUZZAPI_IMAGE \
- worker-entry \
- ; fi
- #
- # Propagate exit code from api fuzzing scanner (if any)
- - if [[ $(docker inspect apifuzzer --format='{{.State.ExitCode}}') != "0" ]]; then echo "API Fuzzing scanner exited with an error. Logs are available as job artifacts."; exit 1; fi
- #
- # Run user provided post-script
- - sh -c "$FUZZAPI_POST_SCRIPT"
- #
- after_script:
- #
- # Shutdown all containers
- - echo "Stopping all containers"
- - if [ "$FUZZAPI_D_TARGET_IMAGE" != "" ]; then docker stop target; fi
- - docker stop worker
- - docker stop apifuzzer
- #
- # Save docker logs
- - docker logs apifuzzer &> gl-api_fuzzing-logs.log
- - if [ "$FUZZAPI_D_TARGET_IMAGE" != "" ]; then docker logs target &> gl-api_fuzzing-target-logs.log; fi
- - docker logs worker &> gl-api_fuzzing-worker-logs.log
- #
- artifacts:
- when: always
- paths:
- - ./gl-api_fuzzing*.log
- - ./gl-api_fuzzing*.zip
- - $FUZZAPI_REPORT_ASSET_PATH
- - $FUZZAPI_REPORT
- reports:
- api_fuzzing: $FUZZAPI_REPORT
-
# end
diff --git a/lib/gitlab/middleware/rack_multipart_tempfile_factory.rb b/lib/gitlab/middleware/rack_multipart_tempfile_factory.rb
index d16c068c3c0..1686c3324b4 100644
--- a/lib/gitlab/middleware/rack_multipart_tempfile_factory.rb
+++ b/lib/gitlab/middleware/rack_multipart_tempfile_factory.rb
@@ -14,9 +14,7 @@ module Gitlab
end
def call(env)
- if ENV['GITLAB_TEMPFILE_IMMEDIATE_UNLINK'] == '1'
- env[Rack::RACK_MULTIPART_TEMPFILE_FACTORY] = FACTORY
- end
+ env[Rack::RACK_MULTIPART_TEMPFILE_FACTORY] = FACTORY
@app.call(env)
end
diff --git a/locale/gitlab.pot b/locale/gitlab.pot
index ab34630895a..95146998529 100644
--- a/locale/gitlab.pot
+++ b/locale/gitlab.pot
@@ -6680,6 +6680,9 @@ msgstr ""
msgid "Closes this %{quick_action_target}."
msgstr ""
+msgid "Cloud licenses can not be removed."
+msgstr ""
+
msgid "CloudLicense|Activate"
msgstr ""
diff --git a/rubocop/cop/active_model_errors_direct_manipulation.rb b/rubocop/cop/active_model_errors_direct_manipulation.rb
new file mode 100644
index 00000000000..e1e2840f37c
--- /dev/null
+++ b/rubocop/cop/active_model_errors_direct_manipulation.rb
@@ -0,0 +1,60 @@
+# frozen_string_literal: true
+
+module RuboCop
+ module Cop
+ # Cop that avoid direct manipulation of ActiveModel#errors hash,
+ # in preparation to upgrade to Rails 6.1
+ #
+ # See https://gitlab.com/gitlab-org/gitlab/-/issues/225874
+ class ActiveModelErrorsDirectManipulation < RuboCop::Cop::Cop
+ MSG = 'Avoid manipulating errors hash directly. For more details check https://gitlab.com/gitlab-org/gitlab/-/issues/225874'
+
+ MANIPULATIVE_METHODS = ":<< :append :clear :collect! :compact! :concat :delete :delete_at :delete_if :drop :drop_while :fill :filter! :keep_if :flatten! :insert :map! :pop :prepend :push :reject! :replace :reverse! :rotate! :select! :shift :shuffle! :slice! :sort! :sort_by! :uniq! :unshift"
+
+ def_node_matcher :active_model_errors_root_manipulation?, <<~PATTERN
+ (send
+ (send
+ (send {send ivar lvar} :errors)
+ :[]
+ ...)
+ {#{MANIPULATIVE_METHODS}}
+ ...)
+ PATTERN
+
+ def_node_matcher :active_model_errors_root_assignment?, <<~PATTERN
+ (send
+ (send {send ivar lvar} :errors)
+ :[]=
+ ...)
+ PATTERN
+
+ def_node_matcher :active_model_errors_manipulation?, <<~PATTERN
+ (send
+ (send
+ (send
+ (send {send ivar lvar} :errors)
+ {:messages :details})
+ :[]
+ ...)
+ {#{MANIPULATIVE_METHODS}}
+ ...)
+ PATTERN
+
+ def_node_matcher :active_model_errors_assignment?, <<~PATTERN
+ (send
+ (send
+ (send {send ivar lvar} :errors)
+ {:messages :details})
+ :[]=
+ ...)
+ PATTERN
+
+ def on_send(node)
+ add_offense(node, location: :expression) if active_model_errors_root_assignment?(node)
+ add_offense(node, location: :expression) if active_model_errors_root_manipulation?(node)
+ add_offense(node, location: :expression) if active_model_errors_manipulation?(node)
+ add_offense(node, location: :expression) if active_model_errors_assignment?(node)
+ end
+ end
+ end
+end
diff --git a/spec/helpers/groups_helper_spec.rb b/spec/helpers/groups_helper_spec.rb
index d588120bb98..a698507cc4c 100644
--- a/spec/helpers/groups_helper_spec.rb
+++ b/spec/helpers/groups_helper_spec.rb
@@ -427,21 +427,16 @@ RSpec.describe GroupsHelper do
before do
allow(helper).to receive(:current_user) { current_user }
allow(helper).to receive(:can?).with(current_user, :admin_group, group).and_return(can_admin_group)
- stub_feature_flags(invite_your_teammates_banner_a: feature_enabled_flag)
users.take(group_members_count).each { |user| group.add_guest(user) }
end
using RSpec::Parameterized::TableSyntax
- where(:feature_enabled_flag, :can_admin_group, :group_members_count, :expected_result) do
- true | true | 1 | true
- true | false | 1 | false
- false | true | 1 | false
- false | false | 1 | false
- true | true | 2 | false
- true | false | 2 | false
- false | true | 2 | false
- false | false | 2 | false
+ where(:can_admin_group, :group_members_count, :expected_result) do
+ true | 1 | true
+ false | 1 | false
+ true | 2 | false
+ false | 2 | false
end
with_them do
diff --git a/spec/lib/gitlab/middleware/rack_multipart_tempfile_factory_spec.rb b/spec/lib/gitlab/middleware/rack_multipart_tempfile_factory_spec.rb
index b9d00b556c5..b868207e67c 100644
--- a/spec/lib/gitlab/middleware/rack_multipart_tempfile_factory_spec.rb
+++ b/spec/lib/gitlab/middleware/rack_multipart_tempfile_factory_spec.rb
@@ -42,44 +42,20 @@ RSpec.describe Gitlab::Middleware::RackMultipartTempfileFactory do
context 'for a multipart request' do
let(:env) { Rack::MockRequest.env_for('/', multipart_fixture) }
- context 'when the environment variable is enabled' do
- before do
- stub_env('GITLAB_TEMPFILE_IMMEDIATE_UNLINK', '1')
- end
-
- it 'immediately unlinks the temporary file' do
- tempfile = Tempfile.new('foo')
-
- expect(tempfile.path).not_to be(nil)
- expect(Rack::Multipart::Parser::TEMPFILE_FACTORY).to receive(:call).and_return(tempfile)
- expect(tempfile).to receive(:unlink).and_call_original
+ it 'immediately unlinks the temporary file' do
+ tempfile = Tempfile.new('foo')
- subject.call(env)
+ expect(tempfile.path).not_to be(nil)
+ expect(Rack::Multipart::Parser::TEMPFILE_FACTORY).to receive(:call).and_return(tempfile)
+ expect(tempfile).to receive(:unlink).and_call_original
- expect(tempfile.path).to be(nil)
- end
+ subject.call(env)
- it 'processes the request as normal' do
- expect(subject.call(env)).to eq([200, { 'Content-Type' => 'image/jpeg' }, [file_contents]])
- end
+ expect(tempfile.path).to be(nil)
end
- context 'when the environment variable is disabled' do
- it 'does not immediately unlink the temporary file' do
- tempfile = Tempfile.new('foo')
-
- expect(tempfile.path).not_to be(nil)
- expect(Rack::Multipart::Parser::TEMPFILE_FACTORY).to receive(:call).and_return(tempfile)
- expect(tempfile).not_to receive(:unlink).and_call_original
-
- subject.call(env)
-
- expect(tempfile.path).not_to be(nil)
- end
-
- it 'processes the request as normal' do
- expect(subject.call(env)).to eq([200, { 'Content-Type' => 'image/jpeg' }, [file_contents]])
- end
+ it 'processes the request as normal' do
+ expect(subject.call(env)).to eq([200, { 'Content-Type' => 'image/jpeg' }, [file_contents]])
end
end
diff --git a/spec/requests/api/projects_spec.rb b/spec/requests/api/projects_spec.rb
index a368d66ab11..144fee2e879 100644
--- a/spec/requests/api/projects_spec.rb
+++ b/spec/requests/api/projects_spec.rb
@@ -1634,7 +1634,6 @@ RSpec.describe API::Projects do
end
it "does not leave the temporary file in place after uploading, even when the tempfile reaper does not run" do
- stub_env('GITLAB_TEMPFILE_IMMEDIATE_UNLINK', '1')
tempfile = Tempfile.new('foo')
path = tempfile.path
diff --git a/spec/rubocop/cop/active_model_errors_direct_manipulation_spec.rb b/spec/rubocop/cop/active_model_errors_direct_manipulation_spec.rb
new file mode 100644
index 00000000000..37fcdb38907
--- /dev/null
+++ b/spec/rubocop/cop/active_model_errors_direct_manipulation_spec.rb
@@ -0,0 +1,62 @@
+# frozen_string_literal: true
+
+require 'fast_spec_helper'
+require_relative '../../../rubocop/cop/active_model_errors_direct_manipulation'
+
+RSpec.describe RuboCop::Cop::ActiveModelErrorsDirectManipulation do
+ subject(:cop) { described_class.new }
+
+ context 'when modifying errors' do
+ it 'registers an offense' do
+ expect_offense(<<~PATTERN)
+ user.errors[:name] << 'msg'
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ Avoid manipulating errors hash directly. [...]
+ PATTERN
+ end
+
+ context 'when assigning' do
+ it 'registers an offense' do
+ expect_offense(<<~PATTERN)
+ user.errors[:name] = []
+ ^^^^^^^^^^^^^^^^^^^^^^^ Avoid manipulating errors hash directly. [...]
+ PATTERN
+ end
+ end
+ end
+
+ context 'when modifying errors.messages' do
+ it 'registers an offense' do
+ expect_offense(<<~PATTERN)
+ user.errors.messages[:name] << 'msg'
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Avoid manipulating errors hash directly. [...]
+ PATTERN
+ end
+
+ context 'when assigning' do
+ it 'registers an offense' do
+ expect_offense(<<~PATTERN)
+ user.errors.messages[:name] = []
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Avoid manipulating errors hash directly. [...]
+ PATTERN
+ end
+ end
+ end
+
+ context 'when modifying errors.details' do
+ it 'registers an offense' do
+ expect_offense(<<~PATTERN)
+ user.errors.details[:name] << {}
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Avoid manipulating errors hash directly. [...]
+ PATTERN
+ end
+
+ context 'when assigning' do
+ it 'registers an offense' do
+ expect_offense(<<~PATTERN)
+ user.errors.details[:name] = []
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Avoid manipulating errors hash directly. [...]
+ PATTERN
+ end
+ end
+ end
+end
diff --git a/spec/uploaders/object_storage_spec.rb b/spec/uploaders/object_storage_spec.rb
index b454b0ad8f8..a1d8695a8c9 100644
--- a/spec/uploaders/object_storage_spec.rb
+++ b/spec/uploaders/object_storage_spec.rb
@@ -441,22 +441,6 @@ RSpec.describe ObjectStorage do
end
end
- shared_examples 'extracts base filename' do
- it "returns true for ExtractsBase" do
- expect(subject[:FeatureFlagExtractBase]).to be true
- end
-
- context 'when workhorse_extract_filename_base is disabled' do
- before do
- stub_feature_flags(workhorse_extract_filename_base: false)
- end
-
- it "returns false for ExtractsBase" do
- expect(subject[:FeatureFlagExtractBase]).to be false
- end
- end
- end
-
shared_examples 'uses local storage' do
it_behaves_like 'returns the maximum size given' do
it "returns temporary path" do
@@ -518,7 +502,6 @@ RSpec.describe ObjectStorage do
end
it_behaves_like 'uses local storage'
- it_behaves_like 'extracts base filename'
end
context 'when object storage is enabled' do
@@ -526,8 +509,6 @@ RSpec.describe ObjectStorage do
allow(Gitlab.config.uploads.object_store).to receive(:enabled) { true }
end
- it_behaves_like 'extracts base filename'
-
context 'when direct upload is enabled' do
before do
allow(Gitlab.config.uploads.object_store).to receive(:direct_upload) { true }
diff --git a/workhorse/internal/api/api.go b/workhorse/internal/api/api.go
index 445ca3a94cf..c83523c882a 100644
--- a/workhorse/internal/api/api.go
+++ b/workhorse/internal/api/api.go
@@ -149,7 +149,7 @@ type Response struct {
ProcessLsifReferences bool
// The maximum accepted size in bytes of the upload
MaximumSize int64
- // Feature flag used to determine whether to strip the multipart filename of any directories
+ // DEPRECATED: Feature flag used to determine whether to strip the multipart filename of any directories
FeatureFlagExtractBase bool
}
diff --git a/workhorse/internal/filestore/save_file_opts.go b/workhorse/internal/filestore/save_file_opts.go
index f42e21b5f2e..d0b2c6ec809 100644
--- a/workhorse/internal/filestore/save_file_opts.go
+++ b/workhorse/internal/filestore/save_file_opts.go
@@ -63,8 +63,6 @@ type SaveFileOpts struct {
PresignedCompleteMultipart string
// PresignedAbortMultipart is a presigned URL for AbortMultipartUpload
PresignedAbortMultipart string
- // FeatureFlagExtractBase uses the base of the filename and strips directories
- FeatureFlagExtractBase bool
}
// UseWorkhorseClientEnabled checks if the options require direct access to object storage
@@ -90,17 +88,16 @@ func GetOpts(apiResponse *api.Response) (*SaveFileOpts, error) {
}
opts := SaveFileOpts{
- FeatureFlagExtractBase: apiResponse.FeatureFlagExtractBase,
- LocalTempPath: apiResponse.TempPath,
- RemoteID: apiResponse.RemoteObject.ID,
- RemoteURL: apiResponse.RemoteObject.GetURL,
- PresignedPut: apiResponse.RemoteObject.StoreURL,
- PresignedDelete: apiResponse.RemoteObject.DeleteURL,
- PutHeaders: apiResponse.RemoteObject.PutHeaders,
- UseWorkhorseClient: apiResponse.RemoteObject.UseWorkhorseClient,
- RemoteTempObjectID: apiResponse.RemoteObject.RemoteTempObjectID,
- Deadline: time.Now().Add(timeout),
- MaximumSize: apiResponse.MaximumSize,
+ LocalTempPath: apiResponse.TempPath,
+ RemoteID: apiResponse.RemoteObject.ID,
+ RemoteURL: apiResponse.RemoteObject.GetURL,
+ PresignedPut: apiResponse.RemoteObject.StoreURL,
+ PresignedDelete: apiResponse.RemoteObject.DeleteURL,
+ PutHeaders: apiResponse.RemoteObject.PutHeaders,
+ UseWorkhorseClient: apiResponse.RemoteObject.UseWorkhorseClient,
+ RemoteTempObjectID: apiResponse.RemoteObject.RemoteTempObjectID,
+ Deadline: time.Now().Add(timeout),
+ MaximumSize: apiResponse.MaximumSize,
}
if opts.LocalTempPath != "" && opts.RemoteID != "" {
diff --git a/workhorse/internal/filestore/save_file_opts_test.go b/workhorse/internal/filestore/save_file_opts_test.go
index aa7018525ab..060618a904b 100644
--- a/workhorse/internal/filestore/save_file_opts_test.go
+++ b/workhorse/internal/filestore/save_file_opts_test.go
@@ -57,19 +57,15 @@ func TestSaveFileOptsLocalAndRemote(t *testing.T) {
func TestGetOpts(t *testing.T) {
tests := []struct {
- name string
- multipart *api.MultipartUploadParams
- customPutHeaders bool
- putHeaders map[string]string
- FeatureFlagExtractBase bool
+ name string
+ multipart *api.MultipartUploadParams
+ customPutHeaders bool
+ putHeaders map[string]string
}{
{
name: "Single upload",
},
{
- name: "Single upload w/ FeatureFlagExtractBase enabled",
- FeatureFlagExtractBase: true,
- }, {
name: "Multipart upload",
multipart: &api.MultipartUploadParams{
PartSize: 10,
@@ -98,7 +94,6 @@ func TestGetOpts(t *testing.T) {
for _, test := range tests {
t.Run(test.name, func(t *testing.T) {
apiResponse := &api.Response{
- FeatureFlagExtractBase: test.FeatureFlagExtractBase,
RemoteObject: api.RemoteObject{
Timeout: 10,
ID: "id",
@@ -114,7 +109,6 @@ func TestGetOpts(t *testing.T) {
opts, err := filestore.GetOpts(apiResponse)
require.NoError(t, err)
- require.Equal(t, apiResponse.FeatureFlagExtractBase, opts.FeatureFlagExtractBase)
require.Equal(t, apiResponse.TempPath, opts.LocalTempPath)
require.WithinDuration(t, deadline, opts.Deadline, time.Second)
require.Equal(t, apiResponse.RemoteObject.ID, opts.RemoteID)
diff --git a/workhorse/internal/upload/rewrite.go b/workhorse/internal/upload/rewrite.go
index 85063d65c1b..f6a0bbae3f1 100644
--- a/workhorse/internal/upload/rewrite.go
+++ b/workhorse/internal/upload/rewrite.go
@@ -116,11 +116,7 @@ func rewriteFormFilesFromMultipart(r *http.Request, writer *multipart.Writer, pr
func (rew *rewriter) handleFilePart(ctx context.Context, name string, p *multipart.Part, opts *filestore.SaveFileOpts) error {
multipartFiles.WithLabelValues(rew.filter.Name()).Inc()
- filename := p.FileName()
-
- if opts.FeatureFlagExtractBase {
- filename = filepath.Base(filename)
- }
+ filename := filepath.Base(p.FileName())
if strings.Contains(filename, "/") || filename == "." || filename == ".." {
return fmt.Errorf("illegal filename: %q", filename)
diff --git a/workhorse/internal/upload/uploads_test.go b/workhorse/internal/upload/uploads_test.go
index d77d73b5f48..44ddfaef9eb 100644
--- a/workhorse/internal/upload/uploads_test.go
+++ b/workhorse/internal/upload/uploads_test.go
@@ -325,20 +325,17 @@ func TestInvalidFileNames(t *testing.T) {
defer os.RemoveAll(tempPath)
for _, testCase := range []struct {
- filename string
- code int
- FeatureFlagExtractBase bool
- expectedPrefix string
+ filename string
+ code int
+ expectedPrefix string
}{
- {"foobar", 200, false, "foobar"}, // sanity check for test setup below
- {"foo/bar", 500, false, ""},
- {"foo/bar", 200, true, "bar"},
- {"foo/bar/baz", 200, true, "baz"},
- {"/../../foobar", 500, false, ""},
- {"/../../foobar", 200, true, "foobar"},
- {".", 500, false, ""},
- {"..", 500, false, ""},
- {"./", 500, false, ""},
+ {"foobar", 200, "foobar"}, // sanity check for test setup below
+ {"foo/bar", 200, "bar"},
+ {"foo/bar/baz", 200, "baz"},
+ {"/../../foobar", 200, "foobar"},
+ {".", 500, ""},
+ {"..", 500, ""},
+ {"./", 500, ""},
} {
buffer := &bytes.Buffer{}
@@ -356,7 +353,6 @@ func TestInvalidFileNames(t *testing.T) {
apiResponse := &api.Response{TempPath: tempPath}
preparer := &DefaultPreparer{}
opts, _, err := preparer.Prepare(apiResponse)
- opts.FeatureFlagExtractBase = testCase.FeatureFlagExtractBase
require.NoError(t, err)
HandleFileUploads(response, httpRequest, nilHandler, apiResponse, &SavedFileTracker{Request: httpRequest}, opts)