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:
Diffstat (limited to 'danger/product_analytics/Dangerfile')
-rw-r--r--danger/product_analytics/Dangerfile48
1 files changed, 48 insertions, 0 deletions
diff --git a/danger/product_analytics/Dangerfile b/danger/product_analytics/Dangerfile
new file mode 100644
index 00000000000..01f2a4fee81
--- /dev/null
+++ b/danger/product_analytics/Dangerfile
@@ -0,0 +1,48 @@
+# frozen_string_literal: true
+
+PRODUCT_ANALYTICS_CHANGED_FILES_MESSAGE = <<~MSG
+For the following files, a review from the [Data team and Product Analytics team](https://gitlab.com/groups/gitlab-org/growth/product_analytics/engineers/-/group_members?with_inherited_permissions=exclude) is recommended
+Please check the ~"product analytics(telemetry)" [guide](https://docs.gitlab.com/ee/development/telemetry/usage_ping.html) and reach out to %<product_analytics_engineers_group>s group for a review.
+
+
+%<changed_files>s
+
+MSG
+
+UPDATE_METRICS_DEFINITIONS_MESSAGE = <<~MSG
+ When adding, changing, or updating metrics, please update the [Event dictionary Usage Ping table](https://docs.gitlab.com/ee/development/telemetry/event_dictionary.html#usage-ping).
+
+MSG
+
+PRODUCT_ANALYTICS_ENGINEERS_GROUP = '@gitlab-org/growth/product_analytics/engineers'
+
+tracking_files = [
+ 'lib/gitlab/tracking.rb',
+ 'spec/lib/gitlab/tracking_spec.rb',
+ 'app/helpers/tracking_helper.rb',
+ 'spec/helpers/tracking_helper_spec.rb',
+ 'app/assets/javascripts/tracking.js',
+ 'spec/frontend/tracking_spec.js'
+]
+
+usage_data_changed_files = helper.changed_files(/usage_data/)
+snowplow_events_changed_files = git.modified_files & tracking_files
+
+changed_files = (usage_data_changed_files + snowplow_events_changed_files)
+
+if changed_files.any?
+
+ mention = if helper.draft_mr?
+ "`#{PRODUCT_ANALYTICS_ENGINEERS_GROUP}`"
+ else
+ PRODUCT_ANALYTICS_ENGINEERS_GROUP
+ end
+
+ warn format(PRODUCT_ANALYTICS_CHANGED_FILES_MESSAGE, changed_files: helper.markdown_list(changed_files), product_analytics_engineers_group: mention)
+ warn format(UPDATE_METRICS_DEFINITIONS_MESSAGE) unless helper.changed_files(/usage_ping\.md/).any?
+
+ product_analytics_labels = ['product analytics(telemetry)']
+ product_analytics_labels << 'product analytics(telemetry)::review pending' unless helper.mr_has_labels?('product analytics(telemetry)::reviewed')
+
+ markdown(helper.prepare_labels_for_mr(product_analytics_labels))
+end