Add latest changes from gitlab-org/gitlab@master
This commit is contained in:
		
							parent
							
								
									531a68a424
								
							
						
					
					
						commit
						b646822e52
					
				|  | @ -780,7 +780,6 @@ Layout/ArgumentAlignment: | ||||||
|     - 'spec/lib/gitlab/usage/metrics/query_spec.rb' |     - 'spec/lib/gitlab/usage/metrics/query_spec.rb' | ||||||
|     - 'spec/lib/gitlab/usage_data_counters/designs_counter_spec.rb' |     - 'spec/lib/gitlab/usage_data_counters/designs_counter_spec.rb' | ||||||
|     - 'spec/lib/gitlab/usage_data_counters/snippet_counter_spec.rb' |     - 'spec/lib/gitlab/usage_data_counters/snippet_counter_spec.rb' | ||||||
|     - 'spec/lib/gitlab/usage_data_counters/static_site_editor_counter_spec.rb' |  | ||||||
|     - 'spec/lib/gitlab/usage_data_counters/wiki_page_counter_spec.rb' |     - 'spec/lib/gitlab/usage_data_counters/wiki_page_counter_spec.rb' | ||||||
|     - 'spec/lib/gitlab/usage_data_queries_spec.rb' |     - 'spec/lib/gitlab/usage_data_queries_spec.rb' | ||||||
|     - 'spec/lib/mattermost/session_spec.rb' |     - 'spec/lib/mattermost/session_spec.rb' | ||||||
|  |  | ||||||
|  | @ -1 +1 @@ | ||||||
| 4181f9518f5a56298d6875a0fd4da1e72dabcb9f | 7c2fcde23bd4a962409897adbbb71da11c6db99a | ||||||
|  |  | ||||||
							
								
								
									
										2
									
								
								Gemfile
								
								
								
								
							
							
						
						
									
										2
									
								
								Gemfile
								
								
								
								
							|  | @ -219,7 +219,7 @@ gem 'ruby-progressbar', '~> 1.10' | ||||||
| gem 'settingslogic', '~> 2.0.9' | gem 'settingslogic', '~> 2.0.9' | ||||||
| 
 | 
 | ||||||
| # Linear-time regex library for untrusted regular expressions | # Linear-time regex library for untrusted regular expressions | ||||||
| gem 're2', '~> 1.2.0' | gem 're2', '~> 1.4.0' | ||||||
| 
 | 
 | ||||||
| # Misc | # Misc | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -1025,7 +1025,7 @@ GEM | ||||||
|     rbtree (0.4.4) |     rbtree (0.4.4) | ||||||
|     rchardet (1.8.0) |     rchardet (1.8.0) | ||||||
|     rdoc (6.3.2) |     rdoc (6.3.2) | ||||||
|     re2 (1.2.0) |     re2 (1.4.0) | ||||||
|     recaptcha (4.13.1) |     recaptcha (4.13.1) | ||||||
|       json |       json | ||||||
|     recursive-open-struct (1.1.3) |     recursive-open-struct (1.1.3) | ||||||
|  | @ -1620,7 +1620,7 @@ DEPENDENCIES | ||||||
|   rainbow (~> 3.0) |   rainbow (~> 3.0) | ||||||
|   rbtrace (~> 0.4) |   rbtrace (~> 0.4) | ||||||
|   rdoc (~> 6.3.2) |   rdoc (~> 6.3.2) | ||||||
|   re2 (~> 1.2.0) |   re2 (~> 1.4.0) | ||||||
|   recaptcha (~> 4.11) |   recaptcha (~> 4.11) | ||||||
|   redis (~> 4.4.0) |   redis (~> 4.4.0) | ||||||
|   redis-actionpack (~> 5.2.0) |   redis-actionpack (~> 5.2.0) | ||||||
|  |  | ||||||
|  | @ -88,7 +88,10 @@ module MarkupHelper | ||||||
|       text, |       text, | ||||||
|       tags: tags, |       tags: tags, | ||||||
|       attributes: Rails::Html::WhiteListSanitizer.allowed_attributes + |       attributes: Rails::Html::WhiteListSanitizer.allowed_attributes + | ||||||
|           %w(style data-src data-name data-unicode-version data-iid data-project-path data-mr-title data-html) |         %w( | ||||||
|  |           style data-src data-name data-unicode-version data-html | ||||||
|  |           data-reference-type data-project-path data-iid data-mr-title | ||||||
|  |         ) | ||||||
|     ) |     ) | ||||||
| 
 | 
 | ||||||
|     # since <img> tags are stripped, this can leave empty <a> tags hanging around |     # since <img> tags are stripped, this can leave empty <a> tags hanging around | ||||||
|  |  | ||||||
|  | @ -1083,6 +1083,8 @@ module Ci | ||||||
|         all_runtime_metadata.delete_all |         all_runtime_metadata.delete_all | ||||||
|       end |       end | ||||||
| 
 | 
 | ||||||
|  |       deployment&.sync_status_with(self) | ||||||
|  | 
 | ||||||
|       Gitlab::AppLogger.info( |       Gitlab::AppLogger.info( | ||||||
|         message: 'Build doomed', |         message: 'Build doomed', | ||||||
|         class: self.class.name, |         class: self.class.name, | ||||||
|  |  | ||||||
|  | @ -63,12 +63,12 @@ module Projects | ||||||
| 
 | 
 | ||||||
|     # rubocop: disable CodeReuse/ActiveRecord |     # rubocop: disable CodeReuse/ActiveRecord | ||||||
|     def self.query(projects, public_only: true) |     def self.query(projects, public_only: true) | ||||||
|       issues_filtered_by_type = Issue.opened.with_issue_type(Issue::TYPES_FOR_LIST) |       open_issues = Issue.opened | ||||||
| 
 | 
 | ||||||
|       if public_only |       if public_only | ||||||
|         issues_filtered_by_type.public_only.where(project: projects) |         open_issues.public_only.where(project: projects) | ||||||
|       else |       else | ||||||
|         issues_filtered_by_type.where(project: projects) |         open_issues.where(project: projects) | ||||||
|       end |       end | ||||||
|     end |     end | ||||||
|     # rubocop: enable CodeReuse/ActiveRecord |     # rubocop: enable CodeReuse/ActiveRecord | ||||||
|  |  | ||||||
|  | @ -118,7 +118,6 @@ | ||||||
| - snippets | - snippets | ||||||
| - source_code_management | - source_code_management | ||||||
| - static_application_security_testing | - static_application_security_testing | ||||||
| - static_site_editor |  | ||||||
| - subgroups | - subgroups | ||||||
| - system_access | - system_access | ||||||
| - team_planning | - team_planning | ||||||
|  |  | ||||||
|  | @ -1,8 +0,0 @@ | ||||||
| --- |  | ||||||
| name: slack_app_use_v2_flow |  | ||||||
| introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/85726 |  | ||||||
| rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/360680 |  | ||||||
| milestone: '15.0' |  | ||||||
| type: development |  | ||||||
| group: group::integrations |  | ||||||
| default_enabled: false |  | ||||||
|  | @ -7,7 +7,7 @@ product_stage: create | ||||||
| product_group: group::editor | product_group: group::editor | ||||||
| product_category: static_site_editor | product_category: static_site_editor | ||||||
| value_type: number | value_type: number | ||||||
| status: active | status: removed | ||||||
| time_frame: 28d | time_frame: 28d | ||||||
| data_source: redis_hll | data_source: redis_hll | ||||||
| distribution: | distribution: | ||||||
|  | @ -19,3 +19,5 @@ tier: | ||||||
| - ultimate | - ultimate | ||||||
| performance_indicator_type: [] | performance_indicator_type: [] | ||||||
| milestone: "<13.9" | milestone: "<13.9" | ||||||
|  | milestone_removed: "15.1" | ||||||
|  | removed_by_url: "https://gitlab.com/gitlab-org/gitlab/-/merge_requests/88485" | ||||||
|  |  | ||||||
|  | @ -16,7 +16,6 @@ options: | ||||||
|   - g_edit_by_web_ide |   - g_edit_by_web_ide | ||||||
|   - g_edit_by_sfe |   - g_edit_by_sfe | ||||||
|   - g_edit_by_snippet_ide |   - g_edit_by_snippet_ide | ||||||
|   - g_edit_by_sse |  | ||||||
| distribution: | distribution: | ||||||
| - ce | - ce | ||||||
| - ee | - ee | ||||||
|  |  | ||||||
|  | @ -7,7 +7,7 @@ product_stage: create | ||||||
| product_group: group::editor | product_group: group::editor | ||||||
| product_category: static_site_editor | product_category: static_site_editor | ||||||
| value_type: number | value_type: number | ||||||
| status: active | status: removed | ||||||
| time_frame: 28d | time_frame: 28d | ||||||
| data_source: redis_hll | data_source: redis_hll | ||||||
| instrumentation_class: RedisHLLMetric | instrumentation_class: RedisHLLMetric | ||||||
|  | @ -23,3 +23,5 @@ tier: | ||||||
| - ultimate | - ultimate | ||||||
| performance_indicator_type: [] | performance_indicator_type: [] | ||||||
| milestone: "<13.9" | milestone: "<13.9" | ||||||
|  | milestone_removed: "15.1" | ||||||
|  | removed_by_url: "https://gitlab.com/gitlab-org/gitlab/-/merge_requests/88485" | ||||||
|  |  | ||||||
|  | @ -16,7 +16,6 @@ options: | ||||||
|   - g_edit_by_web_ide |   - g_edit_by_web_ide | ||||||
|   - g_edit_by_sfe |   - g_edit_by_sfe | ||||||
|   - g_edit_by_snippet_ide |   - g_edit_by_snippet_ide | ||||||
|   - g_edit_by_sse |  | ||||||
| distribution: | distribution: | ||||||
| - ce | - ce | ||||||
| - ee | - ee | ||||||
|  |  | ||||||
|  | @ -7,7 +7,7 @@ product_stage: create | ||||||
| product_group: group::editor | product_group: group::editor | ||||||
| product_category: static_site_editor | product_category: static_site_editor | ||||||
| value_type: number | value_type: number | ||||||
| status: active | status: removed | ||||||
| time_frame: 7d | time_frame: 7d | ||||||
| data_source: redis_hll | data_source: redis_hll | ||||||
| instrumentation_class: RedisHLLMetric | instrumentation_class: RedisHLLMetric | ||||||
|  | @ -23,3 +23,5 @@ tier: | ||||||
| - ultimate | - ultimate | ||||||
| performance_indicator_type: [] | performance_indicator_type: [] | ||||||
| milestone: "<13.9" | milestone: "<13.9" | ||||||
|  | milestone_removed: "15.1" | ||||||
|  | removed_by_url: "https://gitlab.com/gitlab-org/gitlab/-/merge_requests/88485" | ||||||
|  |  | ||||||
|  | @ -7,7 +7,7 @@ product_stage: create | ||||||
| product_group: group::editor | product_group: group::editor | ||||||
| product_category: static_site_editor | product_category: static_site_editor | ||||||
| value_type: number | value_type: number | ||||||
| status: active | status: removed | ||||||
| time_frame: all | time_frame: all | ||||||
| data_source: redis | data_source: redis | ||||||
| distribution: | distribution: | ||||||
|  | @ -21,3 +21,5 @@ performance_indicator_type: | ||||||
| - gmau | - gmau | ||||||
| - paid_gmau | - paid_gmau | ||||||
| milestone: "<13.9" | milestone: "<13.9" | ||||||
|  | milestone_removed: "15.1" | ||||||
|  | removed_by_url: "https://gitlab.com/gitlab-org/gitlab/-/merge_requests/88485" | ||||||
|  |  | ||||||
|  | @ -7,7 +7,7 @@ product_stage: create | ||||||
| product_group: group::editor | product_group: group::editor | ||||||
| product_category: static_site_editor | product_category: static_site_editor | ||||||
| value_type: number | value_type: number | ||||||
| status: active | status: removed | ||||||
| time_frame: all | time_frame: all | ||||||
| data_source: redis | data_source: redis | ||||||
| distribution: | distribution: | ||||||
|  | @ -18,3 +18,5 @@ tier: | ||||||
| - premium | - premium | ||||||
| - ultimate | - ultimate | ||||||
| milestone: "<13.9" | milestone: "<13.9" | ||||||
|  | milestone_removed: "15.1" | ||||||
|  | removed_by_url: "https://gitlab.com/gitlab-org/gitlab/-/merge_requests/88485" | ||||||
|  |  | ||||||
|  | @ -7,7 +7,7 @@ product_stage: create | ||||||
| product_group: group::editor | product_group: group::editor | ||||||
| product_category: static_site_editor | product_category: static_site_editor | ||||||
| value_type: number | value_type: number | ||||||
| status: active | status: removed | ||||||
| time_frame: all | time_frame: all | ||||||
| data_source: redis | data_source: redis | ||||||
| distribution: | distribution: | ||||||
|  | @ -18,3 +18,5 @@ tier: | ||||||
| - premium | - premium | ||||||
| - ultimate | - ultimate | ||||||
| milestone: "<13.9" | milestone: "<13.9" | ||||||
|  | milestone_removed: "15.1" | ||||||
|  | removed_by_url: "https://gitlab.com/gitlab-org/gitlab/-/merge_requests/88485" | ||||||
|  |  | ||||||
|  | @ -10,7 +10,7 @@ value_type: number | ||||||
| status: active | status: active | ||||||
| milestone: "14.3" | milestone: "14.3" | ||||||
| introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/70496 | introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/70496 | ||||||
| time_frame: 7d | time_frame: all | ||||||
| data_source: database | data_source: database | ||||||
| data_category: optional | data_category: optional | ||||||
| performance_indicator_type: [] | performance_indicator_type: [] | ||||||
|  | @ -10,7 +10,7 @@ value_type: number | ||||||
| status: active | status: active | ||||||
| milestone: "14.3" | milestone: "14.3" | ||||||
| introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/70496 | introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/70496 | ||||||
| time_frame: 7d | time_frame: all | ||||||
| data_source: database | data_source: database | ||||||
| data_category: optional | data_category: optional | ||||||
| performance_indicator_type: [] | performance_indicator_type: [] | ||||||
|  | @ -10,7 +10,7 @@ value_type: number | ||||||
| status: active | status: active | ||||||
| milestone: "14.3" | milestone: "14.3" | ||||||
| introduced_by_url: https://gilab.com/gitlab-org/gitlab/-/merge_requests/70496 | introduced_by_url: https://gilab.com/gitlab-org/gitlab/-/merge_requests/70496 | ||||||
| time_frame: 7d | time_frame: all | ||||||
| data_source: database | data_source: database | ||||||
| data_category: optional | data_category: optional | ||||||
| performance_indicator_type: [] | performance_indicator_type: [] | ||||||
|  | @ -10,7 +10,7 @@ value_type: number | ||||||
| status: active | status: active | ||||||
| milestone: "14.3" | milestone: "14.3" | ||||||
| introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/70496 | introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/70496 | ||||||
| time_frame: 7d | time_frame: all | ||||||
| data_source: database | data_source: database | ||||||
| data_category: optional | data_category: optional | ||||||
| performance_indicator_type: [] | performance_indicator_type: [] | ||||||
|  | @ -10,7 +10,7 @@ value_type: number | ||||||
| status: active | status: active | ||||||
| milestone: "14.3" | milestone: "14.3" | ||||||
| introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/70496 | introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/70496 | ||||||
| time_frame: 7d | time_frame: all | ||||||
| data_source: database | data_source: database | ||||||
| data_category: optional | data_category: optional | ||||||
| performance_indicator_type: [] | performance_indicator_type: [] | ||||||
|  | @ -0,0 +1,15 @@ | ||||||
|  | # frozen_string_literal: true | ||||||
|  | 
 | ||||||
|  | class RemoveSseUsageDataFromRedis < Gitlab::Database::Migration[2.0] | ||||||
|  |   disable_ddl_transaction! | ||||||
|  | 
 | ||||||
|  |   def up | ||||||
|  |     Gitlab::Redis::SharedState.with { |r| r.del("USAGE_STATIC_SITE_EDITOR_VIEWS") } | ||||||
|  |     Gitlab::Redis::SharedState.with { |r| r.del("USAGE_STATIC_SITE_EDITOR_COMMITS") } | ||||||
|  |     Gitlab::Redis::SharedState.with { |r| r.del("USAGE_STATIC_SITE_EDITOR_MERGE_REQUESTS") } | ||||||
|  |   end | ||||||
|  | 
 | ||||||
|  |   def down | ||||||
|  |     # no-op | ||||||
|  |   end | ||||||
|  | end | ||||||
|  | @ -0,0 +1 @@ | ||||||
|  | 10676671b1893267c3c466d74a2e9a66525df7c5706eed56afe4fdcb734211cd | ||||||
|  | @ -29,6 +29,14 @@ module Banzai | ||||||
|           super + design_link_extras(issue, matches.named_captures['path']) |           super + design_link_extras(issue, matches.named_captures['path']) | ||||||
|         end |         end | ||||||
| 
 | 
 | ||||||
|  |         def reference_class(object_sym, tooltip: false) | ||||||
|  |           super | ||||||
|  |         end | ||||||
|  | 
 | ||||||
|  |         def data_attributes_for(text, parent, object, **data) | ||||||
|  |           super.merge(project_path: parent.full_path, iid: object.iid) | ||||||
|  |         end | ||||||
|  | 
 | ||||||
|         private |         private | ||||||
| 
 | 
 | ||||||
|         def additional_object_attributes(issue) |         def additional_object_attributes(issue) | ||||||
|  |  | ||||||
|  | @ -17,12 +17,6 @@ module Banzai | ||||||
|                                               only_path: context[:only_path]) |                                               only_path: context[:only_path]) | ||||||
|         end |         end | ||||||
| 
 | 
 | ||||||
|         def object_link_title(object, matches) |  | ||||||
|           # The method will return `nil` if object is not a commit |  | ||||||
|           # allowing for properly handling the extended MR Tooltip |  | ||||||
|           object_link_commit_title(object, matches) |  | ||||||
|         end |  | ||||||
| 
 |  | ||||||
|         def object_link_text_extras(object, matches) |         def object_link_text_extras(object, matches) | ||||||
|           extras = super |           extras = super | ||||||
| 
 | 
 | ||||||
|  | @ -53,20 +47,16 @@ module Banzai | ||||||
|             .includes(target_project: :namespace) |             .includes(target_project: :namespace) | ||||||
|         end |         end | ||||||
| 
 | 
 | ||||||
|         def reference_class(object_sym, options = {}) |         def reference_class(object_sym, tooltip: false) | ||||||
|           super(object_sym, tooltip: false) |           super | ||||||
|         end |         end | ||||||
| 
 | 
 | ||||||
|         def data_attributes_for(text, parent, object, **data) |         def data_attributes_for(text, parent, object, **data) | ||||||
|           super.merge(project_path: parent.full_path, iid: object.iid, mr_title: object.title) |           super.merge(project_path: parent.full_path, iid: object.iid) | ||||||
|         end |         end | ||||||
| 
 | 
 | ||||||
|         private |         private | ||||||
| 
 | 
 | ||||||
|         def object_link_commit_title(object, matches) |  | ||||||
|           object_link_commit(object, matches)&.title |  | ||||||
|         end |  | ||||||
| 
 |  | ||||||
|         def object_link_commit_ref(object, matches) |         def object_link_commit_ref(object, matches) | ||||||
|           object_link_commit(object, matches)&.short_id |           object_link_commit(object, matches)&.short_id | ||||||
|         end |         end | ||||||
|  |  | ||||||
|  | @ -11,7 +11,7 @@ module Gitlab | ||||||
|     # this if the change to the renderer output is a new feature or a |     # this if the change to the renderer output is a new feature or a | ||||||
|     # minor bug fix. |     # minor bug fix. | ||||||
|     # See: https://gitlab.com/gitlab-org/gitlab/-/issues/330313 |     # See: https://gitlab.com/gitlab-org/gitlab/-/issues/330313 | ||||||
|     CACHE_COMMONMARK_VERSION       = 30 |     CACHE_COMMONMARK_VERSION       = 31 | ||||||
|     CACHE_COMMONMARK_VERSION_START = 10 |     CACHE_COMMONMARK_VERSION_START = 10 | ||||||
| 
 | 
 | ||||||
|     BaseError = Class.new(StandardError) |     BaseError = Class.new(StandardError) | ||||||
|  |  | ||||||
|  | @ -754,7 +754,6 @@ module Gitlab | ||||||
|           action_monthly_active_users_web_ide_edit: redis_usage_data { counter.count_web_ide_edit_actions(**date_range) }, |           action_monthly_active_users_web_ide_edit: redis_usage_data { counter.count_web_ide_edit_actions(**date_range) }, | ||||||
|           action_monthly_active_users_sfe_edit: redis_usage_data { counter.count_sfe_edit_actions(**date_range) }, |           action_monthly_active_users_sfe_edit: redis_usage_data { counter.count_sfe_edit_actions(**date_range) }, | ||||||
|           action_monthly_active_users_snippet_editor_edit: redis_usage_data { counter.count_snippet_editor_edit_actions(**date_range) }, |           action_monthly_active_users_snippet_editor_edit: redis_usage_data { counter.count_snippet_editor_edit_actions(**date_range) }, | ||||||
|           action_monthly_active_users_sse_edit: redis_usage_data { counter.count_sse_edit_actions(**date_range) }, |  | ||||||
|           action_monthly_active_users_ide_edit: redis_usage_data { counter.count_edit_using_editor(**date_range) } |           action_monthly_active_users_ide_edit: redis_usage_data { counter.count_edit_using_editor(**date_range) } | ||||||
|         } |         } | ||||||
|       end |       end | ||||||
|  |  | ||||||
|  | @ -15,7 +15,6 @@ module Gitlab | ||||||
|       MergeRequestCounter, |       MergeRequestCounter, | ||||||
|       DesignsCounter, |       DesignsCounter, | ||||||
|       KubernetesAgentCounter, |       KubernetesAgentCounter, | ||||||
|       StaticSiteEditorCounter, |  | ||||||
|       DiffsCounter, |       DiffsCounter, | ||||||
|       ServiceUsageDataCounter |       ServiceUsageDataCounter | ||||||
|     ].freeze |     ].freeze | ||||||
|  |  | ||||||
|  | @ -6,7 +6,6 @@ module Gitlab | ||||||
|       EDIT_BY_SNIPPET_EDITOR = 'g_edit_by_snippet_ide' |       EDIT_BY_SNIPPET_EDITOR = 'g_edit_by_snippet_ide' | ||||||
|       EDIT_BY_SFE = 'g_edit_by_sfe' |       EDIT_BY_SFE = 'g_edit_by_sfe' | ||||||
|       EDIT_BY_WEB_IDE = 'g_edit_by_web_ide' |       EDIT_BY_WEB_IDE = 'g_edit_by_web_ide' | ||||||
|       EDIT_BY_SSE = 'g_edit_by_sse' |  | ||||||
|       EDIT_CATEGORY = 'ide_edit' |       EDIT_CATEGORY = 'ide_edit' | ||||||
|       EDIT_BY_LIVE_PREVIEW = 'g_edit_by_live_preview' |       EDIT_BY_LIVE_PREVIEW = 'g_edit_by_live_preview' | ||||||
| 
 | 
 | ||||||
|  | @ -40,14 +39,6 @@ module Gitlab | ||||||
|           count_unique(events, date_from, date_to) |           count_unique(events, date_from, date_to) | ||||||
|         end |         end | ||||||
| 
 | 
 | ||||||
|         def track_sse_edit_action(author:, time: Time.zone.now) |  | ||||||
|           track_unique_action(EDIT_BY_SSE, author, time) |  | ||||||
|         end |  | ||||||
| 
 |  | ||||||
|         def count_sse_edit_actions(date_from:, date_to:) |  | ||||||
|           count_unique(EDIT_BY_SSE, date_from, date_to) |  | ||||||
|         end |  | ||||||
| 
 |  | ||||||
|         def track_live_preview_edit_action(author:, time: Time.zone.now) |         def track_live_preview_edit_action(author:, time: Time.zone.now) | ||||||
|           track_unique_action(EDIT_BY_LIVE_PREVIEW, author, time) |           track_unique_action(EDIT_BY_LIVE_PREVIEW, author, time) | ||||||
|         end |         end | ||||||
|  |  | ||||||
|  | @ -30,11 +30,6 @@ | ||||||
|   redis_slot: edit |   redis_slot: edit | ||||||
|   expiry: 29 |   expiry: 29 | ||||||
|   aggregation: daily |   aggregation: daily | ||||||
| - name: g_edit_by_sse |  | ||||||
|   category: ide_edit |  | ||||||
|   redis_slot: edit |  | ||||||
|   expiry: 29 |  | ||||||
|   aggregation: daily |  | ||||||
| - name: g_edit_by_snippet_ide | - name: g_edit_by_snippet_ide | ||||||
|   category: ide_edit |   category: ide_edit | ||||||
|   redis_slot: edit |   redis_slot: edit | ||||||
|  |  | ||||||
|  | @ -1,16 +0,0 @@ | ||||||
| # frozen_string_literal: true |  | ||||||
| 
 |  | ||||||
| module Gitlab |  | ||||||
|   module UsageDataCounters |  | ||||||
|     class StaticSiteEditorCounter < BaseCounter |  | ||||||
|       KNOWN_EVENTS = %w[views commits merge_requests].freeze |  | ||||||
|       PREFIX = 'static_site_editor' |  | ||||||
| 
 |  | ||||||
|       class << self |  | ||||||
|         def increment_views_count |  | ||||||
|           count(:views) |  | ||||||
|         end |  | ||||||
|       end |  | ||||||
|     end |  | ||||||
|   end |  | ||||||
| end |  | ||||||
|  | @ -55,7 +55,8 @@ RSpec.describe 'Dashboard Todos' do | ||||||
|       expect(link).not_to be_nil |       expect(link).not_to be_nil | ||||||
|       expect(link['data-iid']).to eq(referenced_mr.iid.to_s) |       expect(link['data-iid']).to eq(referenced_mr.iid.to_s) | ||||||
|       expect(link['data-project-path']).to eq(referenced_mr.project.full_path) |       expect(link['data-project-path']).to eq(referenced_mr.project.full_path) | ||||||
|       expect(link['data-mr-title']).to eq(referenced_mr.title) |       expect(link['title']).to eq(referenced_mr.title) | ||||||
|  |       expect(link['data-reference-type']).to eq('merge_request') | ||||||
|     end |     end | ||||||
|   end |   end | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -750,7 +750,7 @@ | ||||||
|   markdown: |- |   markdown: |- | ||||||
|     Hi @gfm_user - thank you for reporting this bug (#1) we hope to fix it in %1.1 as part of !1 |     Hi @gfm_user - thank you for reporting this bug (#1) we hope to fix it in %1.1 as part of !1 | ||||||
|   html: |- |   html: |- | ||||||
|     <p data-sourcepos="1:1-1:92" dir="auto">Hi <a href="/gfm_user" data-user="1" data-reference-type="user" data-container="body" data-placement="top" class="gfm gfm-project_member js-user-link" title="John Doe1">@gfm_user</a> - thank you for reporting this bug (<a href="/group1/project1/-/issues/1" data-original="#1" data-link="false" data-link-reference="false" data-project="11" data-issue="11" data-issue-type="issue" data-reference-type="issue" data-container="body" data-placement="top" title="My title 1" class="gfm gfm-issue has-tooltip">#1</a>) we hope to fix it in <a href="/group1/project1/-/milestones/1" data-original="%1.1" data-link="false" data-link-reference="false" data-project="11" data-milestone="11" data-reference-type="milestone" data-container="body" data-placement="top" title="" class="gfm gfm-milestone has-tooltip">%1.1</a> as part of <a href="/group1/project1/-/merge_requests/1" data-original="!1" data-link="false" data-link-reference="false" data-project="11" data-merge-request="11" data-project-path="group1/project1" data-iid="1" data-mr-title="My title 2" data-reference-type="merge_request" data-container="body" data-placement="top" title="" class="gfm gfm-merge_request">!1</a></p> |     <p data-sourcepos="1:1-1:92" dir="auto">Hi <a href="/gfm_user" data-user="1" data-reference-type="user" data-container="body" data-placement="top" class="gfm gfm-project_member js-user-link" title="John Doe1">@gfm_user</a> - thank you for reporting this bug (<a href="/group1/project1/-/issues/1" data-original="#1" data-link="false" data-link-reference="false" data-project="11" data-issue="11" data-project-path="group1/project1" data-iid="1" data-issue-type="issue" data-reference-type="issue" data-container="body" data-placement="top" title="My title 1" class="gfm gfm-issue">#1</a>) we hope to fix it in <a href="/group1/project1/-/milestones/1" data-original="%1.1" data-link="false" data-link-reference="false" data-project="11" data-milestone="11" data-reference-type="milestone" data-container="body" data-placement="top" title="" class="gfm gfm-milestone has-tooltip">%1.1</a> as part of <a href="/group1/project1/-/merge_requests/1" data-original="!1" data-link="false" data-link-reference="false" data-project="11" data-merge-request="11" data-project-path="group1/project1" data-iid="1" data-reference-type="merge_request" data-container="body" data-placement="top" title="My title 2" class="gfm gfm-merge_request">!1</a></p> | ||||||
| - name: strike | - name: strike | ||||||
|   markdown: |- |   markdown: |- | ||||||
|     ~~del~~ |     ~~del~~ | ||||||
|  |  | ||||||
|  | @ -93,7 +93,7 @@ RSpec.describe Banzai::Filter::References::IssueReferenceFilter do | ||||||
| 
 | 
 | ||||||
|     it 'includes default classes' do |     it 'includes default classes' do | ||||||
|       doc = reference_filter("Issue #{reference}") |       doc = reference_filter("Issue #{reference}") | ||||||
|       expect(doc.css('a').first.attr('class')).to eq 'gfm gfm-issue has-tooltip' |       expect(doc.css('a').first.attr('class')).to eq 'gfm gfm-issue' | ||||||
|     end |     end | ||||||
| 
 | 
 | ||||||
|     it 'includes a data-project attribute' do |     it 'includes a data-project attribute' do | ||||||
|  | @ -112,6 +112,14 @@ RSpec.describe Banzai::Filter::References::IssueReferenceFilter do | ||||||
|       expect(link.attr('data-issue')).to eq issue.id.to_s |       expect(link.attr('data-issue')).to eq issue.id.to_s | ||||||
|     end |     end | ||||||
| 
 | 
 | ||||||
|  |     it 'includes data attributes for issuable popover' do | ||||||
|  |       doc = reference_filter("See #{reference}") | ||||||
|  |       link = doc.css('a').first | ||||||
|  | 
 | ||||||
|  |       expect(link.attr('data-project-path')).to eq project.full_path | ||||||
|  |       expect(link.attr('data-iid')).to eq issue.iid.to_s | ||||||
|  |     end | ||||||
|  | 
 | ||||||
|     it 'includes a data-original attribute' do |     it 'includes a data-original attribute' do | ||||||
|       doc = reference_filter("See #{reference}") |       doc = reference_filter("See #{reference}") | ||||||
|       link = doc.css('a').first |       link = doc.css('a').first | ||||||
|  | @ -201,7 +209,7 @@ RSpec.describe Banzai::Filter::References::IssueReferenceFilter do | ||||||
|     it 'includes default classes' do |     it 'includes default classes' do | ||||||
|       doc = reference_filter("Fixed (#{reference}.)") |       doc = reference_filter("Fixed (#{reference}.)") | ||||||
| 
 | 
 | ||||||
|       expect(doc.css('a').first.attr('class')).to eq 'gfm gfm-issue has-tooltip' |       expect(doc.css('a').first.attr('class')).to eq 'gfm gfm-issue' | ||||||
|     end |     end | ||||||
| 
 | 
 | ||||||
|     it 'ignores invalid issue IDs on the referenced project' do |     it 'ignores invalid issue IDs on the referenced project' do | ||||||
|  | @ -253,7 +261,7 @@ RSpec.describe Banzai::Filter::References::IssueReferenceFilter do | ||||||
|     it 'includes default classes' do |     it 'includes default classes' do | ||||||
|       doc = reference_filter("Fixed (#{reference}.)") |       doc = reference_filter("Fixed (#{reference}.)") | ||||||
| 
 | 
 | ||||||
|       expect(doc.css('a').first.attr('class')).to eq 'gfm gfm-issue has-tooltip' |       expect(doc.css('a').first.attr('class')).to eq 'gfm gfm-issue' | ||||||
|     end |     end | ||||||
| 
 | 
 | ||||||
|     it 'ignores invalid issue IDs on the referenced project' do |     it 'ignores invalid issue IDs on the referenced project' do | ||||||
|  | @ -305,7 +313,7 @@ RSpec.describe Banzai::Filter::References::IssueReferenceFilter do | ||||||
|     it 'includes default classes' do |     it 'includes default classes' do | ||||||
|       doc = reference_filter("Fixed (#{reference}.)") |       doc = reference_filter("Fixed (#{reference}.)") | ||||||
| 
 | 
 | ||||||
|       expect(doc.css('a').first.attr('class')).to eq 'gfm gfm-issue has-tooltip' |       expect(doc.css('a').first.attr('class')).to eq 'gfm gfm-issue' | ||||||
|     end |     end | ||||||
| 
 | 
 | ||||||
|     it 'ignores invalid issue IDs on the referenced project' do |     it 'ignores invalid issue IDs on the referenced project' do | ||||||
|  | @ -347,7 +355,7 @@ RSpec.describe Banzai::Filter::References::IssueReferenceFilter do | ||||||
|     it 'includes default classes' do |     it 'includes default classes' do | ||||||
|       doc = reference_filter("Fixed (#{reference}.)") |       doc = reference_filter("Fixed (#{reference}.)") | ||||||
| 
 | 
 | ||||||
|       expect(doc.css('a').first.attr('class')).to eq 'gfm gfm-issue has-tooltip' |       expect(doc.css('a').first.attr('class')).to eq 'gfm gfm-issue' | ||||||
|     end |     end | ||||||
|   end |   end | ||||||
| 
 | 
 | ||||||
|  | @ -378,7 +386,7 @@ RSpec.describe Banzai::Filter::References::IssueReferenceFilter do | ||||||
|     it 'includes default classes' do |     it 'includes default classes' do | ||||||
|       doc = reference_filter("Fixed (#{reference_link}.)") |       doc = reference_filter("Fixed (#{reference_link}.)") | ||||||
| 
 | 
 | ||||||
|       expect(doc.css('a').first.attr('class')).to eq 'gfm gfm-issue has-tooltip' |       expect(doc.css('a').first.attr('class')).to eq 'gfm gfm-issue' | ||||||
|     end |     end | ||||||
|   end |   end | ||||||
| 
 | 
 | ||||||
|  | @ -409,7 +417,7 @@ RSpec.describe Banzai::Filter::References::IssueReferenceFilter do | ||||||
|     it 'includes default classes' do |     it 'includes default classes' do | ||||||
|       doc = reference_filter("Fixed (#{reference_link}.)") |       doc = reference_filter("Fixed (#{reference_link}.)") | ||||||
| 
 | 
 | ||||||
|       expect(doc.css('a').first.attr('class')).to eq 'gfm gfm-issue has-tooltip' |       expect(doc.css('a').first.attr('class')).to eq 'gfm gfm-issue' | ||||||
|     end |     end | ||||||
|   end |   end | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -77,9 +77,9 @@ RSpec.describe Banzai::Filter::References::MergeRequestReferenceFilter do | ||||||
|       expect(reference_filter(act).to_html).to eq exp |       expect(reference_filter(act).to_html).to eq exp | ||||||
|     end |     end | ||||||
| 
 | 
 | ||||||
|     it 'has no title' do |     it 'has the MR title in the title attribute' do | ||||||
|       doc = reference_filter("Merge #{reference}") |       doc = reference_filter("Merge #{reference}") | ||||||
|       expect(doc.css('a').first.attr('title')).to eq "" |       expect(doc.css('a').first.attr('title')).to eq(merge.title) | ||||||
|     end |     end | ||||||
| 
 | 
 | ||||||
|     it 'escapes the title attribute' do |     it 'escapes the title attribute' do | ||||||
|  | @ -169,7 +169,6 @@ RSpec.describe Banzai::Filter::References::MergeRequestReferenceFilter do | ||||||
|       expect(link.attr('data-project')).to eq project2.id.to_s |       expect(link.attr('data-project')).to eq project2.id.to_s | ||||||
|       expect(link.attr('data-project-path')).to eq project2.full_path |       expect(link.attr('data-project-path')).to eq project2.full_path | ||||||
|       expect(link.attr('data-iid')).to eq merge.iid.to_s |       expect(link.attr('data-iid')).to eq merge.iid.to_s | ||||||
|       expect(link.attr('data-mr-title')).to eq merge.title |  | ||||||
|     end |     end | ||||||
| 
 | 
 | ||||||
|     it 'ignores invalid merge IDs on the referenced project' do |     it 'ignores invalid merge IDs on the referenced project' do | ||||||
|  | @ -273,12 +272,6 @@ RSpec.describe Banzai::Filter::References::MergeRequestReferenceFilter do | ||||||
|       expect(doc.text).to eq("See #{mr.to_reference(full: true)} (#{commit.short_id})") |       expect(doc.text).to eq("See #{mr.to_reference(full: true)} (#{commit.short_id})") | ||||||
|     end |     end | ||||||
| 
 | 
 | ||||||
|     it 'has valid title attribute' do |  | ||||||
|       doc = reference_filter("See #{reference}") |  | ||||||
| 
 |  | ||||||
|       expect(doc.css('a').first.attr('title')).to eq(commit.title) |  | ||||||
|     end |  | ||||||
| 
 |  | ||||||
|     it 'ignores invalid commit short_ids on link text' do |     it 'ignores invalid commit short_ids on link text' do | ||||||
|       invalidate_commit_reference = |       invalidate_commit_reference = | ||||||
|         urls.project_merge_request_url(mr.project, mr) + "/diffs?commit_id=12345678" |         urls.project_merge_request_url(mr.project, mr) + "/diffs?commit_id=12345678" | ||||||
|  |  | ||||||
|  | @ -66,18 +66,6 @@ RSpec.describe Gitlab::UsageDataCounters::EditorUniqueCounter, :clean_gitlab_red | ||||||
|     end |     end | ||||||
|   end |   end | ||||||
| 
 | 
 | ||||||
|   context 'for SSE edit actions' do |  | ||||||
|     it_behaves_like 'tracks and counts action' do |  | ||||||
|       def track_action(params) |  | ||||||
|         described_class.track_sse_edit_action(**params) |  | ||||||
|       end |  | ||||||
| 
 |  | ||||||
|       def count_unique(params) |  | ||||||
|         described_class.count_sse_edit_actions(**params) |  | ||||||
|       end |  | ||||||
|     end |  | ||||||
|   end |  | ||||||
| 
 |  | ||||||
|   it 'can return the count of actions per user deduplicated' do |   it 'can return the count of actions per user deduplicated' do | ||||||
|     described_class.track_web_ide_edit_action(author: user1) |     described_class.track_web_ide_edit_action(author: user1) | ||||||
|     described_class.track_live_preview_edit_action(author: user1) |     described_class.track_live_preview_edit_action(author: user1) | ||||||
|  |  | ||||||
|  | @ -1,14 +0,0 @@ | ||||||
| # frozen_string_literal: true |  | ||||||
| 
 |  | ||||||
| require 'spec_helper' |  | ||||||
| 
 |  | ||||||
| RSpec.describe Gitlab::UsageDataCounters::StaticSiteEditorCounter do |  | ||||||
|   it_behaves_like 'a redis usage counter', 'StaticSiteEditor', :views |  | ||||||
|   it_behaves_like 'a redis usage counter', 'StaticSiteEditor', :commits |  | ||||||
|   it_behaves_like 'a redis usage counter', 'StaticSiteEditor', :merge_requests |  | ||||||
| 
 |  | ||||||
|   it_behaves_like 'a redis usage counter with totals', :static_site_editor, |  | ||||||
|     views: 3, |  | ||||||
|     commits: 4, |  | ||||||
|     merge_requests: 5 |  | ||||||
| end |  | ||||||
|  | @ -13,10 +13,10 @@ RSpec.describe Gitlab::UsageDataCounters do | ||||||
|   describe '.count' do |   describe '.count' do | ||||||
|     subject { described_class.count(event_name) } |     subject { described_class.count(event_name) } | ||||||
| 
 | 
 | ||||||
|     let(:event_name) { 'static_site_editor_views' } |     let(:event_name) { 'web_ide_views' } | ||||||
| 
 | 
 | ||||||
|     it 'increases a view counter' do |     it 'increases a view counter' do | ||||||
|       expect(Gitlab::UsageDataCounters::StaticSiteEditorCounter).to receive(:count).with('views') |       expect(Gitlab::UsageDataCounters::WebIdeCounter).to receive(:count).with('views') | ||||||
| 
 | 
 | ||||||
|       subject |       subject | ||||||
|     end |     end | ||||||
|  |  | ||||||
|  | @ -754,7 +754,6 @@ RSpec.describe Gitlab::UsageData, :aggregate_failures do | ||||||
| 
 | 
 | ||||||
|     it { is_expected.to include(:kubernetes_agent_gitops_sync) } |     it { is_expected.to include(:kubernetes_agent_gitops_sync) } | ||||||
|     it { is_expected.to include(:kubernetes_agent_k8s_api_proxy_request) } |     it { is_expected.to include(:kubernetes_agent_k8s_api_proxy_request) } | ||||||
|     it { is_expected.to include(:static_site_editor_views) } |  | ||||||
|     it { is_expected.to include(:package_events_i_package_pull_package) } |     it { is_expected.to include(:package_events_i_package_pull_package) } | ||||||
|     it { is_expected.to include(:package_events_i_package_delete_package_by_user) } |     it { is_expected.to include(:package_events_i_package_delete_package_by_user) } | ||||||
|     it { is_expected.to include(:package_events_i_package_conan_push_package) } |     it { is_expected.to include(:package_events_i_package_conan_push_package) } | ||||||
|  | @ -1187,12 +1186,6 @@ RSpec.describe Gitlab::UsageData, :aggregate_failures do | ||||||
| 
 | 
 | ||||||
|       counter.track_web_ide_edit_action(author: user3, time: time - 3.days) |       counter.track_web_ide_edit_action(author: user3, time: time - 3.days) | ||||||
|       counter.track_snippet_editor_edit_action(author: user3) |       counter.track_snippet_editor_edit_action(author: user3) | ||||||
| 
 |  | ||||||
|       counter.track_sse_edit_action(author: user1) |  | ||||||
|       counter.track_sse_edit_action(author: user1) |  | ||||||
|       counter.track_sse_edit_action(author: user2) |  | ||||||
|       counter.track_sse_edit_action(author: user3) |  | ||||||
|       counter.track_sse_edit_action(author: user2, time: time - 3.days) |  | ||||||
|     end |     end | ||||||
| 
 | 
 | ||||||
|     it 'returns the distinct count of user actions within the specified time period' do |     it 'returns the distinct count of user actions within the specified time period' do | ||||||
|  | @ -1205,8 +1198,7 @@ RSpec.describe Gitlab::UsageData, :aggregate_failures do | ||||||
|           action_monthly_active_users_web_ide_edit: 2, |           action_monthly_active_users_web_ide_edit: 2, | ||||||
|           action_monthly_active_users_sfe_edit: 2, |           action_monthly_active_users_sfe_edit: 2, | ||||||
|           action_monthly_active_users_snippet_editor_edit: 2, |           action_monthly_active_users_snippet_editor_edit: 2, | ||||||
|           action_monthly_active_users_ide_edit: 3, |           action_monthly_active_users_ide_edit: 3 | ||||||
|           action_monthly_active_users_sse_edit: 3 |  | ||||||
|         } |         } | ||||||
|       ) |       ) | ||||||
|     end |     end | ||||||
|  |  | ||||||
|  | @ -5462,6 +5462,19 @@ RSpec.describe Ci::Build do | ||||||
|       subject |       subject | ||||||
|     end |     end | ||||||
| 
 | 
 | ||||||
|  |     context 'with deployment' do | ||||||
|  |       let(:environment) { create(:environment) } | ||||||
|  |       let(:build) { create(:ci_build, :with_deployment, environment: environment.name, pipeline: pipeline) } | ||||||
|  | 
 | ||||||
|  |       it 'updates the deployment status', :aggregate_failures do | ||||||
|  |         expect(build.deployment).to receive(:sync_status_with).with(build).and_call_original | ||||||
|  | 
 | ||||||
|  |         subject | ||||||
|  | 
 | ||||||
|  |         expect(build.deployment.reload.status).to eq("failed") | ||||||
|  |       end | ||||||
|  |     end | ||||||
|  | 
 | ||||||
|     context 'with queued builds' do |     context 'with queued builds' do | ||||||
|       let(:traits) { [:queued] } |       let(:traits) { [:queued] } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue