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>2023-10-06 03:11:57 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2023-10-06 03:11:57 +0300
commit4aa03ea3561b0a36dbbb8dd83c34163184ad5a61 (patch)
treee5c422efbccefa46459094f08f9acd0373c28a24
parent91145d427b07ba5ea00a8a5f486fab9c4fdf8f3d (diff)
Add latest changes from gitlab-org/gitlab@master
-rw-r--r--.rubocop_todo/layout/array_alignment.yml3
-rw-r--r--.rubocop_todo/layout/first_array_element_indentation.yml3
-rw-r--r--.rubocop_todo/layout/line_end_string_concatenation_indentation.yml1
-rw-r--r--.rubocop_todo/layout/line_length.yml14
-rw-r--r--.rubocop_todo/lint/ambiguous_operator_precedence.yml1
-rw-r--r--.rubocop_todo/rails/output_safety.yml4
-rw-r--r--.rubocop_todo/rspec/before_all_role_assignment.yml1
-rw-r--r--.rubocop_todo/rspec/context_wording.yml7
-rw-r--r--.rubocop_todo/rspec/factory_bot/avoid_create.yml1
-rw-r--r--.rubocop_todo/rspec/missing_feature_category.yml12
-rw-r--r--.rubocop_todo/rspec/return_from_stub.yml1
-rw-r--r--.rubocop_todo/rspec/scattered_let.yml1
-rw-r--r--.rubocop_todo/style/format_string.yml4
-rw-r--r--.rubocop_todo/style/if_unless_modifier.yml1
-rw-r--r--.rubocop_todo/style/string_concatenation.yml1
-rw-r--r--Gemfile8
-rw-r--r--Gemfile.checksum35
-rw-r--r--Gemfile.lock18
-rw-r--r--app/graphql/resolvers/analytics/cycle_analytics/base_issue_resolver.rb2
-rw-r--r--app/mailers/emails/in_product_marketing.rb36
-rw-r--r--app/mailers/notify.rb1
-rw-r--r--doc/api/graphql/reference/index.md55
-rw-r--r--lib/gitlab/email/message/in_product_marketing/helper.rb97
-rw-r--r--lib/gitlab/middleware/path_traversal_check.rb4
-rw-r--r--locale/gitlab.pot6
-rw-r--r--spec/lib/gitlab/email/message/in_product_marketing/helper_spec.rb75
-rw-r--r--spec/lib/gitlab/middleware/path_traversal_check_spec.rb4
-rw-r--r--spec/mailers/emails/in_product_marketing_spec.rb17
-rw-r--r--spec/support/rspec_order_todo.yml11
-rw-r--r--workhorse/go.mod2
-rw-r--r--workhorse/go.sum3
31 files changed, 101 insertions, 328 deletions
diff --git a/.rubocop_todo/layout/array_alignment.yml b/.rubocop_todo/layout/array_alignment.yml
index 88d093954c6..8d040f5738e 100644
--- a/.rubocop_todo/layout/array_alignment.yml
+++ b/.rubocop_todo/layout/array_alignment.yml
@@ -166,9 +166,6 @@ Layout/ArrayAlignment:
- 'lib/gitlab/conflict/file_collection.rb'
- 'lib/gitlab/content_security_policy/config_loader.rb'
- 'lib/gitlab/database/background_migration/batched_job.rb'
- - 'lib/gitlab/email/message/in_product_marketing/team.rb'
- - 'lib/gitlab/email/message/in_product_marketing/trial.rb'
- - 'lib/gitlab/email/message/in_product_marketing/verify.rb'
- 'lib/gitlab/email/receiver.rb'
- 'lib/gitlab/etag_caching/router/rails.rb'
- 'lib/gitlab/git/diff.rb'
diff --git a/.rubocop_todo/layout/first_array_element_indentation.yml b/.rubocop_todo/layout/first_array_element_indentation.yml
index fa90c937813..05f12783fc6 100644
--- a/.rubocop_todo/layout/first_array_element_indentation.yml
+++ b/.rubocop_todo/layout/first_array_element_indentation.yml
@@ -44,9 +44,6 @@ Layout/FirstArrayElementIndentation:
- 'ee/spec/requests/api/saml_group_links_spec.rb'
- 'ee/spec/services/audit_events/export_csv_service_spec.rb'
- 'ee/spec/services/groups/seat_usage_export_service_spec.rb'
- - 'lib/gitlab/email/message/in_product_marketing/team.rb'
- - 'lib/gitlab/email/message/in_product_marketing/trial.rb'
- - 'lib/gitlab/email/message/in_product_marketing/verify.rb'
- 'lib/gitlab/object_hierarchy.rb'
- 'lib/gitlab/project_authorizations.rb'
- 'qa/qa/specs/features/api/12_systems/gitaly/automatic_failover_and_recovery_spec.rb'
diff --git a/.rubocop_todo/layout/line_end_string_concatenation_indentation.yml b/.rubocop_todo/layout/line_end_string_concatenation_indentation.yml
index 25ab7ecb1ef..28edc75a55a 100644
--- a/.rubocop_todo/layout/line_end_string_concatenation_indentation.yml
+++ b/.rubocop_todo/layout/line_end_string_concatenation_indentation.yml
@@ -266,7 +266,6 @@ Layout/LineEndStringConcatenationIndentation:
- 'spec/lib/gitlab/ci/templates/themekit_gitlab_ci_yaml_spec.rb'
- 'spec/lib/gitlab/database/background_migration/batched_migration_runner_spec.rb'
- 'spec/lib/gitlab/database/migrations/batched_background_migration_helpers_spec.rb'
- - 'spec/lib/gitlab/email/message/in_product_marketing/helper_spec.rb'
- 'spec/lib/gitlab/github_import/markdown_text_spec.rb'
- 'spec/lib/gitlab/github_import/representation/issue_event_spec.rb'
- 'spec/lib/gitlab/insecure_key_fingerprint_spec.rb'
diff --git a/.rubocop_todo/layout/line_length.yml b/.rubocop_todo/layout/line_length.yml
index 589327e15a1..72e04f31605 100644
--- a/.rubocop_todo/layout/line_length.yml
+++ b/.rubocop_todo/layout/line_length.yml
@@ -1259,7 +1259,6 @@ Layout/LineLength:
- 'ee/lib/gitlab/elastic/group_search_results.rb'
- 'ee/lib/gitlab/elastic/project_search_results.rb'
- 'ee/lib/gitlab/elastic/search_results.rb'
- - 'ee/lib/gitlab/email/message/account_validation.rb'
- 'ee/lib/gitlab/expiring_subscription_message.rb'
- 'ee/lib/gitlab/geo.rb'
- 'ee/lib/gitlab/geo/geo_node_status_check.rb'
@@ -2684,13 +2683,6 @@ Layout/LineLength:
- 'lib/gitlab/email/failure_handler.rb'
- 'lib/gitlab/email/handler/create_issue_handler.rb'
- 'lib/gitlab/email/handler/create_merge_request_handler.rb'
- - 'lib/gitlab/email/message/in_product_marketing/base.rb'
- - 'lib/gitlab/email/message/in_product_marketing/create.rb'
- - 'lib/gitlab/email/message/in_product_marketing/helper.rb'
- - 'lib/gitlab/email/message/in_product_marketing/team.rb'
- - 'lib/gitlab/email/message/in_product_marketing/trial.rb'
- - 'lib/gitlab/email/message/in_product_marketing/trial_short.rb'
- - 'lib/gitlab/email/message/in_product_marketing/verify.rb'
- 'lib/gitlab/encrypted_command_base.rb'
- 'lib/gitlab/encrypted_configuration.rb'
- 'lib/gitlab/endpoint_attributes/config.rb'
@@ -3865,12 +3857,6 @@ Layout/LineLength:
- 'spec/lib/gitlab/email/handler/unsubscribe_handler_spec.rb'
- 'spec/lib/gitlab/email/handler_spec.rb'
- 'spec/lib/gitlab/email/hook/smime_signature_interceptor_spec.rb'
- - 'spec/lib/gitlab/email/message/in_product_marketing/admin_verify_spec.rb'
- - 'spec/lib/gitlab/email/message/in_product_marketing/base_spec.rb'
- - 'spec/lib/gitlab/email/message/in_product_marketing/team_short_spec.rb'
- - 'spec/lib/gitlab/email/message/in_product_marketing/team_spec.rb'
- - 'spec/lib/gitlab/email/message/in_product_marketing/trial_short_spec.rb'
- - 'spec/lib/gitlab/email/message/in_product_marketing/trial_spec.rb'
- 'spec/lib/gitlab/email/receiver_spec.rb'
- 'spec/lib/gitlab/email/reply_parser_spec.rb'
- 'spec/lib/gitlab/emoji_spec.rb'
diff --git a/.rubocop_todo/lint/ambiguous_operator_precedence.yml b/.rubocop_todo/lint/ambiguous_operator_precedence.yml
index e496bc5af1a..fc049cb68f0 100644
--- a/.rubocop_todo/lint/ambiguous_operator_precedence.yml
+++ b/.rubocop_todo/lint/ambiguous_operator_precedence.yml
@@ -66,7 +66,6 @@ Lint/AmbiguousOperatorPrecedence:
- 'lib/gitlab/database/partitioning_migration_helpers/table_management_helpers.rb'
- 'lib/gitlab/database/postgres_hll/buckets.rb'
- 'lib/gitlab/database/query_analyzers/prevent_cross_database_modification.rb'
- - 'lib/gitlab/email/message/in_product_marketing/helper.rb'
- 'lib/gitlab/i18n/po_linter.rb'
- 'lib/gitlab/import_export/project/relation_factory.rb'
- 'lib/gitlab/memory/instrumentation.rb'
diff --git a/.rubocop_todo/rails/output_safety.yml b/.rubocop_todo/rails/output_safety.yml
index 85388e8a1da..36628384477 100644
--- a/.rubocop_todo/rails/output_safety.yml
+++ b/.rubocop_todo/rails/output_safety.yml
@@ -118,7 +118,6 @@ Rails/OutputSafety:
- 'ee/app/helpers/push_rules_helper.rb'
- 'ee/app/models/integrations/github.rb'
- 'ee/lib/ee/gitlab/namespace_storage_size_error_message.rb'
- - 'ee/lib/gitlab/email/message/account_validation.rb'
- 'ee/lib/gitlab/expiring_subscription_message.rb'
- 'ee/lib/gitlab/licenses/submit_license_usage_data_banner.rb'
- 'ee/lib/gitlab/manual_quarterly_co_term_banner.rb'
@@ -139,9 +138,6 @@ Rails/OutputSafety:
- 'lib/gitlab/diff/inline_diff_marker.rb'
- 'lib/gitlab/diff/line.rb'
- 'lib/gitlab/diff/rendered/notebook/diff_file_helper.rb'
- - 'lib/gitlab/email/message/in_product_marketing/helper.rb'
- - 'lib/gitlab/email/message/in_product_marketing/trial.rb'
- - 'lib/gitlab/email/message/in_product_marketing/verify.rb'
- 'lib/gitlab/highlight.rb'
- 'lib/gitlab/observability.rb'
- 'lib/gitlab/other_markup.rb'
diff --git a/.rubocop_todo/rspec/before_all_role_assignment.yml b/.rubocop_todo/rspec/before_all_role_assignment.yml
index 3d4ee2f0369..8f9e618d47c 100644
--- a/.rubocop_todo/rspec/before_all_role_assignment.yml
+++ b/.rubocop_todo/rspec/before_all_role_assignment.yml
@@ -1157,7 +1157,6 @@ RSpec/BeforeAllRoleAssignment:
- 'spec/lib/gitlab/search_results_spec.rb'
- 'spec/lib/gitlab/slash_commands/presenters/issue_move_spec.rb'
- 'spec/lib/gitlab/tree_summary_spec.rb'
- - 'spec/mailers/emails/in_product_marketing_spec.rb'
- 'spec/models/ci/bridge_spec.rb'
- 'spec/models/ci/catalog/listing_spec.rb'
- 'spec/models/ci/pipeline_spec.rb'
diff --git a/.rubocop_todo/rspec/context_wording.yml b/.rubocop_todo/rspec/context_wording.yml
index b3d65fd2f33..270570a61b9 100644
--- a/.rubocop_todo/rspec/context_wording.yml
+++ b/.rubocop_todo/rspec/context_wording.yml
@@ -1778,13 +1778,6 @@ RSpec/ContextWording:
- 'spec/lib/gitlab/email/handler/service_desk_handler_spec.rb'
- 'spec/lib/gitlab/email/handler/unsubscribe_handler_spec.rb'
- 'spec/lib/gitlab/email/handler_spec.rb'
- - 'spec/lib/gitlab/email/message/in_product_marketing/admin_verify_spec.rb'
- - 'spec/lib/gitlab/email/message/in_product_marketing/base_spec.rb'
- - 'spec/lib/gitlab/email/message/in_product_marketing/helper_spec.rb'
- - 'spec/lib/gitlab/email/message/in_product_marketing/team_short_spec.rb'
- - 'spec/lib/gitlab/email/message/in_product_marketing/team_spec.rb'
- - 'spec/lib/gitlab/email/message/in_product_marketing/trial_short_spec.rb'
- - 'spec/lib/gitlab/email/message/in_product_marketing/trial_spec.rb'
- 'spec/lib/gitlab/email/message/repository_push_spec.rb'
- 'spec/lib/gitlab/email/reply_parser_spec.rb'
- 'spec/lib/gitlab/encoding_helper_spec.rb'
diff --git a/.rubocop_todo/rspec/factory_bot/avoid_create.yml b/.rubocop_todo/rspec/factory_bot/avoid_create.yml
index 177c77ab154..79e7b6027e1 100644
--- a/.rubocop_todo/rspec/factory_bot/avoid_create.yml
+++ b/.rubocop_todo/rspec/factory_bot/avoid_create.yml
@@ -359,7 +359,6 @@ RSpec/FactoryBot/AvoidCreate:
- 'spec/mailers/devise_mailer_spec.rb'
- 'spec/mailers/emails/auto_devops_spec.rb'
- 'spec/mailers/emails/groups_spec.rb'
- - 'spec/mailers/emails/in_product_marketing_spec.rb'
- 'spec/mailers/emails/issues_spec.rb'
- 'spec/mailers/emails/merge_requests_spec.rb'
- 'spec/mailers/emails/pages_domains_spec.rb'
diff --git a/.rubocop_todo/rspec/missing_feature_category.yml b/.rubocop_todo/rspec/missing_feature_category.yml
index eeda0475e19..c216c076074 100644
--- a/.rubocop_todo/rspec/missing_feature_category.yml
+++ b/.rubocop_todo/rspec/missing_feature_category.yml
@@ -971,7 +971,6 @@ RSpec/MissingFeatureCategory:
- 'ee/spec/mailers/ee/emails/projects_spec.rb'
- 'ee/spec/mailers/emails/epics_spec.rb'
- 'ee/spec/mailers/emails/group_memberships_spec.rb'
- - 'ee/spec/mailers/emails/in_product_marketing_spec.rb'
- 'ee/spec/mailers/emails/namespace_storage_usage_mailer_spec.rb'
- 'ee/spec/mailers/emails/requirements_spec.rb'
- 'ee/spec/mailers/emails/user_cap_spec.rb'
@@ -3492,16 +3491,6 @@ RSpec/MissingFeatureCategory:
- 'spec/lib/gitlab/email/hook/delivery_metrics_observer_spec.rb'
- 'spec/lib/gitlab/email/hook/disable_email_interceptor_spec.rb'
- 'spec/lib/gitlab/email/hook/smime_signature_interceptor_spec.rb'
- - 'spec/lib/gitlab/email/message/in_product_marketing/admin_verify_spec.rb'
- - 'spec/lib/gitlab/email/message/in_product_marketing/base_spec.rb'
- - 'spec/lib/gitlab/email/message/in_product_marketing/create_spec.rb'
- - 'spec/lib/gitlab/email/message/in_product_marketing/helper_spec.rb'
- - 'spec/lib/gitlab/email/message/in_product_marketing/team_short_spec.rb'
- - 'spec/lib/gitlab/email/message/in_product_marketing/team_spec.rb'
- - 'spec/lib/gitlab/email/message/in_product_marketing/trial_short_spec.rb'
- - 'spec/lib/gitlab/email/message/in_product_marketing/trial_spec.rb'
- - 'spec/lib/gitlab/email/message/in_product_marketing/verify_spec.rb'
- - 'spec/lib/gitlab/email/message/in_product_marketing_spec.rb'
- 'spec/lib/gitlab/email/message/repository_push_spec.rb'
- 'spec/lib/gitlab/email/receiver_spec.rb'
- 'spec/lib/gitlab/email/service_desk_receiver_spec.rb'
@@ -4462,7 +4451,6 @@ RSpec/MissingFeatureCategory:
- 'spec/mailers/emails/auto_devops_spec.rb'
- 'spec/mailers/emails/groups_spec.rb'
- 'spec/mailers/emails/identity_verification_spec.rb'
- - 'spec/mailers/emails/in_product_marketing_spec.rb'
- 'spec/mailers/emails/merge_requests_spec.rb'
- 'spec/mailers/emails/pages_domains_spec.rb'
- 'spec/mailers/emails/pipelines_spec.rb'
diff --git a/.rubocop_todo/rspec/return_from_stub.yml b/.rubocop_todo/rspec/return_from_stub.yml
index 1a668f2d7e2..7624216e8ed 100644
--- a/.rubocop_todo/rspec/return_from_stub.yml
+++ b/.rubocop_todo/rspec/return_from_stub.yml
@@ -137,7 +137,6 @@ RSpec/ReturnFromStub:
- 'spec/lib/gitlab/daemon_spec.rb'
- 'spec/lib/gitlab/database_importers/instance_administrators/create_group_spec.rb'
- 'spec/lib/gitlab/diff/file_spec.rb'
- - 'spec/lib/gitlab/email/message/in_product_marketing/helper_spec.rb'
- 'spec/lib/gitlab/exclusive_lease_helpers/sleeping_lock_spec.rb'
- 'spec/lib/gitlab/exclusive_lease_helpers_spec.rb'
- 'spec/lib/gitlab/external_authorization_spec.rb'
diff --git a/.rubocop_todo/rspec/scattered_let.yml b/.rubocop_todo/rspec/scattered_let.yml
index 479ff4fd8f9..4d93c6816cc 100644
--- a/.rubocop_todo/rspec/scattered_let.yml
+++ b/.rubocop_todo/rspec/scattered_let.yml
@@ -176,7 +176,6 @@ RSpec/ScatteredLet:
- 'spec/lib/gitlab/utils/measuring_spec.rb'
- 'spec/lib/gitlab/zentao/client_spec.rb'
- 'spec/lib/peek/views/external_http_spec.rb'
- - 'spec/mailers/emails/in_product_marketing_spec.rb'
- 'spec/mailers/notify_spec.rb'
- 'spec/mailers/previews_spec.rb'
- 'spec/migrations/20220329175119_remove_leftover_ci_job_artifact_deletions_spec.rb'
diff --git a/.rubocop_todo/style/format_string.yml b/.rubocop_todo/style/format_string.yml
index 885687f36b1..7579229871a 100644
--- a/.rubocop_todo/style/format_string.yml
+++ b/.rubocop_todo/style/format_string.yml
@@ -258,10 +258,6 @@ Style/FormatString:
- 'lib/gitlab/database/postgres_hll/batch_distinct_counter.rb'
- 'lib/gitlab/database/reindexing/reindex_concurrently.rb'
- 'lib/gitlab/database_importers/instance_administrators/create_group.rb'
- - 'lib/gitlab/email/message/in_product_marketing/base.rb'
- - 'lib/gitlab/email/message/in_product_marketing/create.rb'
- - 'lib/gitlab/email/message/in_product_marketing/helper.rb'
- - 'lib/gitlab/email/message/in_product_marketing/verify.rb'
- 'lib/gitlab/exceptions_app.rb'
- 'lib/gitlab/github_import/importer/pull_request_merged_by_importer.rb'
- 'lib/gitlab/github_import/importer/single_endpoint_issue_events_importer.rb'
diff --git a/.rubocop_todo/style/if_unless_modifier.yml b/.rubocop_todo/style/if_unless_modifier.yml
index 4c80057c31b..f2d14f38f95 100644
--- a/.rubocop_todo/style/if_unless_modifier.yml
+++ b/.rubocop_todo/style/if_unless_modifier.yml
@@ -813,7 +813,6 @@ Style/IfUnlessModifier:
- 'lib/gitlab/database/transaction/observer.rb'
- 'lib/gitlab/database/with_lock_retries.rb'
- 'lib/gitlab/email/handler/service_desk_handler.rb'
- - 'lib/gitlab/email/message/in_product_marketing/base.rb'
- 'lib/gitlab/email/message/repository_push.rb'
- 'lib/gitlab/email/receiver.rb'
- 'lib/gitlab/email/reply_parser.rb'
diff --git a/.rubocop_todo/style/string_concatenation.yml b/.rubocop_todo/style/string_concatenation.yml
index d899ff9d98f..d887a3b391b 100644
--- a/.rubocop_todo/style/string_concatenation.yml
+++ b/.rubocop_todo/style/string_concatenation.yml
@@ -96,7 +96,6 @@ Style/StringConcatenation:
- 'lib/gitlab/database/rename_reserved_paths_migration/v1/migration_classes.rb'
- 'lib/gitlab/database/unidirectional_copy_trigger.rb'
- 'lib/gitlab/email/handler/service_desk_handler.rb'
- - 'lib/gitlab/email/message/in_product_marketing/helper.rb'
- 'lib/gitlab/git.rb'
- 'lib/gitlab/git/branch.rb'
- 'lib/gitlab/git/tag.rb'
diff --git a/Gemfile b/Gemfile
index 22c356e4c39..76e8692595c 100644
--- a/Gemfile
+++ b/Gemfile
@@ -195,7 +195,7 @@ gem 'seed-fu', '~> 2.3.7' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'elasticsearch-model', '~> 7.2' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'elasticsearch-rails', '~> 7.2', require: 'elasticsearch/rails/instrumentation' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'elasticsearch-api', '7.13.3' # rubocop:todo Gemfile/MissingFeatureCategory
-gem 'aws-sdk-core', '~> 3.185.0' # rubocop:todo Gemfile/MissingFeatureCategory
+gem 'aws-sdk-core', '~> 3.185.1' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'aws-sdk-cloudformation', '~> 1' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'aws-sdk-s3', '~> 1.136.0' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'faraday_middleware-aws-sigv4', '~>0.3.0' # rubocop:todo Gemfile/MissingFeatureCategory
@@ -232,7 +232,7 @@ gem 'rack', '~> 2.2.8' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'rack-timeout', '~> 0.6.3', require: 'rack/timeout/base' # rubocop:todo Gemfile/MissingFeatureCategory
group :puma do
- gem 'puma', '~> 6.3', '>= 6.3.1', require: false # rubocop:todo Gemfile/MissingFeatureCategory
+ gem 'puma', '~> 6.4', require: false # rubocop:todo Gemfile/MissingFeatureCategory
gem 'sd_notify', '~> 0.1.0', require: false # rubocop:todo Gemfile/MissingFeatureCategory
end
@@ -383,7 +383,7 @@ gem 'snowplow-tracker', '~> 0.8.0' # rubocop:todo Gemfile/MissingFeatureCategory
# Metrics
gem 'webrick', '~> 1.8.1', require: false # rubocop:todo Gemfile/MissingFeatureCategory
-gem 'prometheus-client-mmap', '~> 0.28', require: 'prometheus/client' # rubocop:todo Gemfile/MissingFeatureCategory
+gem 'prometheus-client-mmap', '~> 0.28', '>= 0.28.1', require: 'prometheus/client' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'warning', '~> 1.3.0' # rubocop:todo Gemfile/MissingFeatureCategory
@@ -540,7 +540,7 @@ gem 'kas-grpc', '~> 0.2.0' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'grpc', '~> 1.58.0' # rubocop:todo Gemfile/MissingFeatureCategory
-gem 'google-protobuf', '~> 3.24', '>= 3.24.3' # rubocop:todo Gemfile/MissingFeatureCategory
+gem 'google-protobuf', '~> 3.24', '>= 3.24.4' # rubocop:todo Gemfile/MissingFeatureCategory
gem 'toml-rb', '~> 2.2.0' # rubocop:todo Gemfile/MissingFeatureCategory
diff --git a/Gemfile.checksum b/Gemfile.checksum
index 64c0e805d32..19ea440d626 100644
--- a/Gemfile.checksum
+++ b/Gemfile.checksum
@@ -36,7 +36,7 @@
{"name":"aws-eventstream","version":"1.2.0","platform":"ruby","checksum":"ffa53482c92880b001ff2fb06919b9bb82fd847cbb0fa244985d2ebb6dd0d1df"},
{"name":"aws-partitions","version":"1.761.0","platform":"ruby","checksum":"291e444e1edfc92c5521a6dbdd1236ccc3f122b3520163b2be6ec5b6ef350ef2"},
{"name":"aws-sdk-cloudformation","version":"1.41.0","platform":"ruby","checksum":"31e47539719734413671edf9b1a31f8673fbf9688549f50c41affabbcb1c6b26"},
-{"name":"aws-sdk-core","version":"3.185.0","platform":"ruby","checksum":"2c8fe9a952bd8423181734dfcb4138ce48c7675bee365036b1577c110e70db03"},
+{"name":"aws-sdk-core","version":"3.185.1","platform":"ruby","checksum":"572ada4eaf8393a9999d9a50adc2dcb78cc742c26a5727248c27f02cdaf97973"},
{"name":"aws-sdk-kms","version":"1.64.0","platform":"ruby","checksum":"40de596c95047bfc6e1aacea24f3df6241aa716b6f7ce08ac4c5f7e3120395ad"},
{"name":"aws-sdk-s3","version":"1.136.0","platform":"ruby","checksum":"3547302a85d51de6cc75b48fb37d328f65f6526e7fc73a27a5b1b871f99a8d63"},
{"name":"aws-sigv4","version":"1.6.0","platform":"ruby","checksum":"ca9e6a15cd424f1f32b524b9760995331459bc22e67d3daad4fcf0c0084b087d"},
@@ -240,16 +240,16 @@
{"name":"google-cloud-errors","version":"1.3.0","platform":"ruby","checksum":"450b681e24c089a20721a01acc4408bb4a7b0df28c175aaab488da917480d64b"},
{"name":"google-cloud-profiler-v2","version":"0.4.0","platform":"ruby","checksum":"53fc2ab175d08f54233c644310d47798feac996220916815c4fb44c937b5d3e3"},
{"name":"google-cloud-storage","version":"1.44.0","platform":"ruby","checksum":"299a1e055c9277c8120f7c10d21d37e4d8c17c7b963350c0e0bff7e9d9a570ea"},
-{"name":"google-protobuf","version":"3.24.3","platform":"aarch64-linux","checksum":"02591f0bb6a7b34da7f4451b3e9b684787eae6fab5c9283ff09be993830683cd"},
-{"name":"google-protobuf","version":"3.24.3","platform":"arm64-darwin","checksum":"34919ce25e3260954a509a7fb4ff4767e438c1d09cffe0998fa97aa7f547c50c"},
-{"name":"google-protobuf","version":"3.24.3","platform":"java","checksum":"f1582bd2665df61a363501b2a51bea61e2c8466bd1f8823a22b53cbea5aa7401"},
-{"name":"google-protobuf","version":"3.24.3","platform":"ruby","checksum":"63f3cceb398b5f3258760da95037d26ef65405aa3425fd7ba1560fce4827945d"},
-{"name":"google-protobuf","version":"3.24.3","platform":"x64-mingw-ucrt","checksum":"381f16aeda20d23465b9d9efffaa660367cda951299df0d5fd5662e9a119a36c"},
-{"name":"google-protobuf","version":"3.24.3","platform":"x64-mingw32","checksum":"5a687545a4a9deb93375107600aee43edfc495979ec8b88fff39d8c139e49330"},
-{"name":"google-protobuf","version":"3.24.3","platform":"x86-linux","checksum":"d7f556d618b83629a49f831a9358122a22c3a3ebd65f59c10f690c4ec95ad321"},
-{"name":"google-protobuf","version":"3.24.3","platform":"x86-mingw32","checksum":"05711b1c8cdf77fdbe8eabbe477b2b792758b6e2c5a72add222ac6f4c5626119"},
-{"name":"google-protobuf","version":"3.24.3","platform":"x86_64-darwin","checksum":"10d9645ebe89758fd81fcbcd678aaaa30c34ca2b2a2182e8dfc90e29df9cafb4"},
-{"name":"google-protobuf","version":"3.24.3","platform":"x86_64-linux","checksum":"e081a8345680b7883b48823a4123acdf45ebd169e3d5a3c2e0cb9ac47fc896eb"},
+{"name":"google-protobuf","version":"3.24.4","platform":"aarch64-linux","checksum":"d3e824753a9511e4c08439586069a636c23d9ca16a509f316a895353c11a1ac8"},
+{"name":"google-protobuf","version":"3.24.4","platform":"arm64-darwin","checksum":"e13b12a648668d99d8b71ffcf378bfd744885af11e983460677073b2c8e2a979"},
+{"name":"google-protobuf","version":"3.24.4","platform":"java","checksum":"657d67b5425afa0beb94e54df7d0a15da3daa45a500fc252e7550806669b47f1"},
+{"name":"google-protobuf","version":"3.24.4","platform":"ruby","checksum":"38a403ca2fd905d3ed7c20f8d2e4718af1be3eb99093d35d7021383f6e72f2ca"},
+{"name":"google-protobuf","version":"3.24.4","platform":"x64-mingw-ucrt","checksum":"fc0396dd9f45ea54d494097e0077ee8c0cc002f1c825f06ed40f4e3b4de6948c"},
+{"name":"google-protobuf","version":"3.24.4","platform":"x64-mingw32","checksum":"ba1b5cd5effa6c6a738eb2d2d0701e3d83d95b81842564b5feb9c42579722fc6"},
+{"name":"google-protobuf","version":"3.24.4","platform":"x86-linux","checksum":"f9cae6c878381da082eab1d3eceb84525c7d7413401e1a4a5ee179b66fdbebe0"},
+{"name":"google-protobuf","version":"3.24.4","platform":"x86-mingw32","checksum":"4cf31ca7d447a86200dfcb86f64ddd046c1f9c96dc537c9d74ab19e0c36a8f0b"},
+{"name":"google-protobuf","version":"3.24.4","platform":"x86_64-darwin","checksum":"44d541e980989f1aa007a3c5481ec93932b2e50cfa63c22427dd42460a5d2865"},
+{"name":"google-protobuf","version":"3.24.4","platform":"x86_64-linux","checksum":"68f65302fad9f47c88d38136fda0dec6078f3a2a79fb5bcccf62121fd8fcca50"},
{"name":"googleapis-common-protos","version":"1.4.0","platform":"ruby","checksum":"da2380fb5ab1563580816c74e8d684ac17512c3654c829a3ee84f6d6139de382"},
{"name":"googleapis-common-protos-types","version":"1.5.0","platform":"ruby","checksum":"5769cf7376abc86ef7f5897a4aaca1d5c5a3c49ddabeddd2c251fcf8155f858b"},
{"name":"googleauth","version":"1.3.0","platform":"ruby","checksum":"51dd7362353cf1e90a2d01e1fb94321ae3926c776d4dc4a79db65230217ffcc2"},
@@ -450,18 +450,19 @@
{"name":"premailer","version":"1.16.0","platform":"ruby","checksum":"03e4402c448e6bae13fb5f6301a8bde4f3508e1bff90ae7c0972c7be94694786"},
{"name":"premailer-rails","version":"1.10.3","platform":"ruby","checksum":"7cdcb97027866f7a81c490c6d15ada7f39666b5f6375f0821b7e97e0483b112f"},
{"name":"proc_to_ast","version":"0.1.0","platform":"ruby","checksum":"92a73fa66e2250a83f8589f818b0751bcf227c68f85916202df7af85082f8691"},
-{"name":"prometheus-client-mmap","version":"0.28.0","platform":"aarch64-linux","checksum":"3e69581021c2117293f603990cff499fde94fe7741cecab0590359653e90d3f2"},
-{"name":"prometheus-client-mmap","version":"0.28.0","platform":"arm64-darwin","checksum":"889c8ec7173b7713107edd92cb33ab8489202254e8597adf9e2137b05eade3fd"},
-{"name":"prometheus-client-mmap","version":"0.28.0","platform":"ruby","checksum":"f3e14e8c5d3e5cbec0436620e3f813ab329259db5b34000e93c4ecf5770dcd7b"},
-{"name":"prometheus-client-mmap","version":"0.28.0","platform":"x86_64-darwin","checksum":"2ec7f200ba332ec314f7f387ab26f4aa5e18f1bd7c084beb17c3ad6bcdb7f265"},
-{"name":"prometheus-client-mmap","version":"0.28.0","platform":"x86_64-linux","checksum":"e04a4915567f81365ba86e3fe7f1dd512f8ae0a6b5169e0acfe6433205c87c57"},
+{"name":"prometheus-client-mmap","version":"0.28.1","platform":"aarch64-linux","checksum":"b190045625ee8f8b3ef90e583ef7fadeac745810c8a243f1ed5e9b47c18146f0"},
+{"name":"prometheus-client-mmap","version":"0.28.1","platform":"arm64-darwin","checksum":"9e7022848493b882d1de9f42d7784f9821e83b2c3b4b2dc9a12c2c8269209a6e"},
+{"name":"prometheus-client-mmap","version":"0.28.1","platform":"ruby","checksum":"92fb3989a16927fb0cacfcb3ebc6c8ea5e4abf82e4aef22ab62c3c4b8f17e52a"},
+{"name":"prometheus-client-mmap","version":"0.28.1","platform":"x86_64-darwin","checksum":"66e7cad96ad581174edf4f1f52da141e5a15389ce3283fba7b4e3e5968dd46b7"},
+{"name":"prometheus-client-mmap","version":"0.28.1","platform":"x86_64-linux","checksum":"4d3e92a249b16e41ef3e55078537bca599659578c0f86e31d195429c6e5e1f3a"},
{"name":"pry","version":"0.14.2","platform":"java","checksum":"fd780670977ba04ff7ee32dabd4d02fe4bf02e977afe8809832d5dca1412862e"},
{"name":"pry","version":"0.14.2","platform":"ruby","checksum":"c4fe54efedaca1d351280b45b8849af363184696fcac1c72e0415f9bdac4334d"},
{"name":"pry-byebug","version":"3.10.1","platform":"ruby","checksum":"c8f975c32255bfdb29e151f5532130be64ff3d0042dc858d0907e849125581f8"},
{"name":"pry-rails","version":"0.3.9","platform":"ruby","checksum":"468662575abb6b67f4a9831219f99290d5eae7bf186e64dd810d0a3e4a8cc4b1"},
{"name":"pry-shell","version":"0.6.4","platform":"ruby","checksum":"ad024882d29912b071a7de65ebea538b242d2dc1498c60c7c2352ef94769f208"},
{"name":"public_suffix","version":"5.0.0","platform":"ruby","checksum":"26ee4fbce33ada25eb117ac71f2c24bf4d8b3414ab6b34f05b4708a3e90f1c6b"},
-{"name":"puma","version":"6.3.1","platform":"ruby","checksum":"ec989c775f88f5cbea0c7178b94ed9ff44797241f9245d353d1774a845e78df4"},
+{"name":"puma","version":"6.4.0","platform":"java","checksum":"eb27679e9e665882bab85dfa84704b0615b4f77cec46de014f05b90a5ab36cfe"},
+{"name":"puma","version":"6.4.0","platform":"ruby","checksum":"d5dda11362744df9f4694708a62e3cfddf72eba7498c16016ebbb30f106712f9"},
{"name":"pyu-ruby-sasl","version":"0.0.3.3","platform":"ruby","checksum":"5683a6bc5738db5a1bf5ceddeaf545405fb241b4184dd4f2587e679a7e9497e5"},
{"name":"raabro","version":"1.4.0","platform":"ruby","checksum":"d4fa9ff5172391edb92b242eed8be802d1934b1464061ae5e70d80962c5da882"},
{"name":"racc","version":"1.6.2","platform":"java","checksum":"0880781e7dfde09e665d0b6160b583e01ed52fcc2955d7891447d33c2d1d2cf1"},
diff --git a/Gemfile.lock b/Gemfile.lock
index 91111f42df7..fc58f23022c 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -270,7 +270,7 @@ GEM
aws-sdk-cloudformation (1.41.0)
aws-sdk-core (~> 3, >= 3.99.0)
aws-sigv4 (~> 1.1)
- aws-sdk-core (3.185.0)
+ aws-sdk-core (3.185.1)
aws-eventstream (~> 1, >= 1.0.2)
aws-partitions (~> 1, >= 1.651.0)
aws-sigv4 (~> 1.5)
@@ -757,7 +757,7 @@ GEM
google-cloud-core (~> 1.6)
googleauth (>= 0.16.2, < 2.a)
mini_mime (~> 1.0)
- google-protobuf (3.24.3)
+ google-protobuf (3.24.4)
googleapis-common-protos (1.4.0)
google-protobuf (~> 3.14)
googleapis-common-protos-types (~> 1.2)
@@ -1213,7 +1213,7 @@ GEM
coderay
parser
unparser
- prometheus-client-mmap (0.28.0)
+ prometheus-client-mmap (0.28.1)
rb_sys (~> 0.9)
pry (0.14.2)
coderay (~> 1.1)
@@ -1228,7 +1228,7 @@ GEM
tty-markdown
tty-prompt
public_suffix (5.0.0)
- puma (6.3.1)
+ puma (6.4.0)
nio4r (~> 2.0)
pyu-ruby-sasl (0.0.3.3)
raabro (1.4.0)
@@ -1746,7 +1746,7 @@ DEPENDENCIES
autoprefixer-rails (= 10.2.5.1)
awesome_print
aws-sdk-cloudformation (~> 1)
- aws-sdk-core (~> 3.185.0)
+ aws-sdk-core (~> 3.185.1)
aws-sdk-s3 (~> 1.136.0)
axe-core-rspec
babosa (~> 2.0)
@@ -1849,7 +1849,7 @@ DEPENDENCIES
google-apis-serviceusage_v1 (~> 0.28.0)
google-apis-sqladmin_v1beta4 (~> 0.41.0)
google-cloud-storage (~> 1.44.0)
- google-protobuf (~> 3.24, >= 3.24.3)
+ google-protobuf (~> 3.24, >= 3.24.4)
gpgme (~> 2.0.23)
grape (~> 1.7.1)
grape-entity (~> 0.10.0)
@@ -1949,11 +1949,11 @@ DEPENDENCIES
pg_query (~> 4.2.3)
png_quantizator (~> 0.2.1)
premailer-rails (~> 1.10.3)
- prometheus-client-mmap (~> 0.28)
+ prometheus-client-mmap (~> 0.28, >= 0.28.1)
pry-byebug
pry-rails (~> 0.3.9)
pry-shell (~> 0.6.4)
- puma (~> 6.3, >= 6.3.1)
+ puma (~> 6.4)
rack (~> 2.2.8)
rack-attack (~> 6.7.0)
rack-cors (~> 2.0.1)
@@ -2047,4 +2047,4 @@ DEPENDENCIES
yajl-ruby (~> 1.4.3)
BUNDLED WITH
- 2.4.19
+ 2.4.20
diff --git a/app/graphql/resolvers/analytics/cycle_analytics/base_issue_resolver.rb b/app/graphql/resolvers/analytics/cycle_analytics/base_issue_resolver.rb
index 8128023aecb..768265752d5 100644
--- a/app/graphql/resolvers/analytics/cycle_analytics/base_issue_resolver.rb
+++ b/app/graphql/resolvers/analytics/cycle_analytics/base_issue_resolver.rb
@@ -48,3 +48,5 @@ module Resolvers
end
end
end
+
+Resolvers::Analytics::CycleAnalytics::BaseIssueResolver.prepend_mod
diff --git a/app/mailers/emails/in_product_marketing.rb b/app/mailers/emails/in_product_marketing.rb
deleted file mode 100644
index cbadbe3e124..00000000000
--- a/app/mailers/emails/in_product_marketing.rb
+++ /dev/null
@@ -1,36 +0,0 @@
-# frozen_string_literal: true
-
-module Emails
- module InProductMarketing
- FROM_ADDRESS = 'GitLab <team@gitlab.com>'
- CUSTOM_HEADERS = {
- from: FROM_ADDRESS,
- reply_to: FROM_ADDRESS,
- 'X-Mailgun-Track' => 'yes',
- 'X-Mailgun-Track-Clicks' => 'yes',
- 'X-Mailgun-Track-Opens' => 'yes',
- 'X-Mailgun-Tag' => 'marketing'
- }.freeze
-
- private
-
- def mail_to(to:, subject:)
- custom_headers = Gitlab.com? ? CUSTOM_HEADERS : {}
- mail_with_locale(to: to, subject: subject, **custom_headers) do |format|
- format.html do
- @message.format = :html
-
- render layout: 'in_product_marketing_mailer'
- end
-
- format.text do
- @message.format = :text
-
- render layout: nil
- end
- end
- end
- end
-end
-
-Emails::InProductMarketing.prepend_mod
diff --git a/app/mailers/notify.rb b/app/mailers/notify.rb
index 77d32a55941..2f90579a5c2 100644
--- a/app/mailers/notify.rb
+++ b/app/mailers/notify.rb
@@ -22,7 +22,6 @@ class Notify < ApplicationMailer
include Emails::Groups
include Emails::Reviews
include Emails::ServiceDesk
- include Emails::InProductMarketing
include Emails::AdminNotification
include Emails::IdentityVerification
include Emails::Imports
diff --git a/doc/api/graphql/reference/index.md b/doc/api/graphql/reference/index.md
index 916c4978f92..3d5c53e2bca 100644
--- a/doc/api/graphql/reference/index.md
+++ b/doc/api/graphql/reference/index.md
@@ -18624,11 +18624,16 @@ Returns [`ValueStreamAnalyticsMetric`](#valuestreamanalyticsmetric).
| ---- | ---- | ----------- |
| <a id="groupvaluestreamanalyticsflowmetricscycletimeassigneeusernames"></a>`assigneeUsernames` | [`[String!]`](#string) | Usernames of users assigned to the issue. |
| <a id="groupvaluestreamanalyticsflowmetricscycletimeauthorusername"></a>`authorUsername` | [`String`](#string) | Username of the author of the issue. |
+| <a id="groupvaluestreamanalyticsflowmetricscycletimeepicid"></a>`epicId` | [`ID`](#id) | ID of an epic associated with the issues. |
| <a id="groupvaluestreamanalyticsflowmetricscycletimefrom"></a>`from` | [`Time!`](#time) | Timestamp marking the start date and time. |
+| <a id="groupvaluestreamanalyticsflowmetricscycletimeiterationid"></a>`iterationId` | [`ID`](#id) | ID of an iteration associated with the issues. |
| <a id="groupvaluestreamanalyticsflowmetricscycletimelabelnames"></a>`labelNames` | [`[String!]`](#string) | Labels applied to the issue. |
| <a id="groupvaluestreamanalyticsflowmetricscycletimemilestonetitle"></a>`milestoneTitle` | [`String`](#string) | Milestone applied to the issue. |
+| <a id="groupvaluestreamanalyticsflowmetricscycletimemyreactionemoji"></a>`myReactionEmoji` | [`String`](#string) | Filter by reaction emoji applied by the current user. |
+| <a id="groupvaluestreamanalyticsflowmetricscycletimenot"></a>`not` | [`NegatedValueStreamAnalyticsIssueFilterInput`](#negatedvaluestreamanalyticsissuefilterinput) | Argument used for adding negated filters. |
| <a id="groupvaluestreamanalyticsflowmetricscycletimeprojectids"></a>`projectIds` | [`[ID!]`](#id) | Project IDs within the group hierarchy. |
| <a id="groupvaluestreamanalyticsflowmetricscycletimeto"></a>`to` | [`Time!`](#time) | Timestamp marking the end date and time. |
+| <a id="groupvaluestreamanalyticsflowmetricscycletimeweight"></a>`weight` | [`Int`](#int) | Weight applied to the issue. |
##### `GroupValueStreamAnalyticsFlowMetrics.deploymentCount`
@@ -18656,11 +18661,16 @@ Returns [`ValueStreamAnalyticsMetric`](#valuestreamanalyticsmetric).
| ---- | ---- | ----------- |
| <a id="groupvaluestreamanalyticsflowmetricsissuecountassigneeusernames"></a>`assigneeUsernames` | [`[String!]`](#string) | Usernames of users assigned to the issue. |
| <a id="groupvaluestreamanalyticsflowmetricsissuecountauthorusername"></a>`authorUsername` | [`String`](#string) | Username of the author of the issue. |
+| <a id="groupvaluestreamanalyticsflowmetricsissuecountepicid"></a>`epicId` | [`ID`](#id) | ID of an epic associated with the issues. |
| <a id="groupvaluestreamanalyticsflowmetricsissuecountfrom"></a>`from` | [`Time!`](#time) | Timestamp marking the start date and time. |
+| <a id="groupvaluestreamanalyticsflowmetricsissuecountiterationid"></a>`iterationId` | [`ID`](#id) | ID of an iteration associated with the issues. |
| <a id="groupvaluestreamanalyticsflowmetricsissuecountlabelnames"></a>`labelNames` | [`[String!]`](#string) | Labels applied to the issue. |
| <a id="groupvaluestreamanalyticsflowmetricsissuecountmilestonetitle"></a>`milestoneTitle` | [`String`](#string) | Milestone applied to the issue. |
+| <a id="groupvaluestreamanalyticsflowmetricsissuecountmyreactionemoji"></a>`myReactionEmoji` | [`String`](#string) | Filter by reaction emoji applied by the current user. |
+| <a id="groupvaluestreamanalyticsflowmetricsissuecountnot"></a>`not` | [`NegatedValueStreamAnalyticsIssueFilterInput`](#negatedvaluestreamanalyticsissuefilterinput) | Argument used for adding negated filters. |
| <a id="groupvaluestreamanalyticsflowmetricsissuecountprojectids"></a>`projectIds` | [`[ID!]`](#id) | Project IDs within the group hierarchy. |
| <a id="groupvaluestreamanalyticsflowmetricsissuecountto"></a>`to` | [`Time!`](#time) | Timestamp marking the end date and time. |
+| <a id="groupvaluestreamanalyticsflowmetricsissuecountweight"></a>`weight` | [`Int`](#int) | Weight applied to the issue. |
##### `GroupValueStreamAnalyticsFlowMetrics.issuesCompletedCount`
@@ -18674,11 +18684,16 @@ Returns [`ValueStreamAnalyticsMetric`](#valuestreamanalyticsmetric).
| ---- | ---- | ----------- |
| <a id="groupvaluestreamanalyticsflowmetricsissuescompletedcountassigneeusernames"></a>`assigneeUsernames` | [`[String!]`](#string) | Usernames of users assigned to the issue. |
| <a id="groupvaluestreamanalyticsflowmetricsissuescompletedcountauthorusername"></a>`authorUsername` | [`String`](#string) | Username of the author of the issue. |
+| <a id="groupvaluestreamanalyticsflowmetricsissuescompletedcountepicid"></a>`epicId` | [`ID`](#id) | ID of an epic associated with the issues. |
| <a id="groupvaluestreamanalyticsflowmetricsissuescompletedcountfrom"></a>`from` | [`Time!`](#time) | Timestamp marking the start date and time. |
+| <a id="groupvaluestreamanalyticsflowmetricsissuescompletedcountiterationid"></a>`iterationId` | [`ID`](#id) | ID of an iteration associated with the issues. |
| <a id="groupvaluestreamanalyticsflowmetricsissuescompletedcountlabelnames"></a>`labelNames` | [`[String!]`](#string) | Labels applied to the issue. |
| <a id="groupvaluestreamanalyticsflowmetricsissuescompletedcountmilestonetitle"></a>`milestoneTitle` | [`String`](#string) | Milestone applied to the issue. |
+| <a id="groupvaluestreamanalyticsflowmetricsissuescompletedcountmyreactionemoji"></a>`myReactionEmoji` | [`String`](#string) | Filter by reaction emoji applied by the current user. |
+| <a id="groupvaluestreamanalyticsflowmetricsissuescompletedcountnot"></a>`not` | [`NegatedValueStreamAnalyticsIssueFilterInput`](#negatedvaluestreamanalyticsissuefilterinput) | Argument used for adding negated filters. |
| <a id="groupvaluestreamanalyticsflowmetricsissuescompletedcountprojectids"></a>`projectIds` | [`[ID!]`](#id) | Project IDs within the group hierarchy. |
| <a id="groupvaluestreamanalyticsflowmetricsissuescompletedcountto"></a>`to` | [`Time!`](#time) | Timestamp marking the end date and time. |
+| <a id="groupvaluestreamanalyticsflowmetricsissuescompletedcountweight"></a>`weight` | [`Int`](#int) | Weight applied to the issue. |
##### `GroupValueStreamAnalyticsFlowMetrics.leadTime`
@@ -18692,11 +18707,16 @@ Returns [`ValueStreamAnalyticsMetric`](#valuestreamanalyticsmetric).
| ---- | ---- | ----------- |
| <a id="groupvaluestreamanalyticsflowmetricsleadtimeassigneeusernames"></a>`assigneeUsernames` | [`[String!]`](#string) | Usernames of users assigned to the issue. |
| <a id="groupvaluestreamanalyticsflowmetricsleadtimeauthorusername"></a>`authorUsername` | [`String`](#string) | Username of the author of the issue. |
+| <a id="groupvaluestreamanalyticsflowmetricsleadtimeepicid"></a>`epicId` | [`ID`](#id) | ID of an epic associated with the issues. |
| <a id="groupvaluestreamanalyticsflowmetricsleadtimefrom"></a>`from` | [`Time!`](#time) | Timestamp marking the start date and time. |
+| <a id="groupvaluestreamanalyticsflowmetricsleadtimeiterationid"></a>`iterationId` | [`ID`](#id) | ID of an iteration associated with the issues. |
| <a id="groupvaluestreamanalyticsflowmetricsleadtimelabelnames"></a>`labelNames` | [`[String!]`](#string) | Labels applied to the issue. |
| <a id="groupvaluestreamanalyticsflowmetricsleadtimemilestonetitle"></a>`milestoneTitle` | [`String`](#string) | Milestone applied to the issue. |
+| <a id="groupvaluestreamanalyticsflowmetricsleadtimemyreactionemoji"></a>`myReactionEmoji` | [`String`](#string) | Filter by reaction emoji applied by the current user. |
+| <a id="groupvaluestreamanalyticsflowmetricsleadtimenot"></a>`not` | [`NegatedValueStreamAnalyticsIssueFilterInput`](#negatedvaluestreamanalyticsissuefilterinput) | Argument used for adding negated filters. |
| <a id="groupvaluestreamanalyticsflowmetricsleadtimeprojectids"></a>`projectIds` | [`[ID!]`](#id) | Project IDs within the group hierarchy. |
| <a id="groupvaluestreamanalyticsflowmetricsleadtimeto"></a>`to` | [`Time!`](#time) | Timestamp marking the end date and time. |
+| <a id="groupvaluestreamanalyticsflowmetricsleadtimeweight"></a>`weight` | [`Int`](#int) | Weight applied to the issue. |
### `GroupWikiRepositoryRegistry`
@@ -23690,10 +23710,15 @@ Returns [`ValueStreamAnalyticsMetric`](#valuestreamanalyticsmetric).
| ---- | ---- | ----------- |
| <a id="projectvaluestreamanalyticsflowmetricscycletimeassigneeusernames"></a>`assigneeUsernames` | [`[String!]`](#string) | Usernames of users assigned to the issue. |
| <a id="projectvaluestreamanalyticsflowmetricscycletimeauthorusername"></a>`authorUsername` | [`String`](#string) | Username of the author of the issue. |
+| <a id="projectvaluestreamanalyticsflowmetricscycletimeepicid"></a>`epicId` | [`ID`](#id) | ID of an epic associated with the issues. |
| <a id="projectvaluestreamanalyticsflowmetricscycletimefrom"></a>`from` | [`Time!`](#time) | Timestamp marking the start date and time. |
+| <a id="projectvaluestreamanalyticsflowmetricscycletimeiterationid"></a>`iterationId` | [`ID`](#id) | ID of an iteration associated with the issues. |
| <a id="projectvaluestreamanalyticsflowmetricscycletimelabelnames"></a>`labelNames` | [`[String!]`](#string) | Labels applied to the issue. |
| <a id="projectvaluestreamanalyticsflowmetricscycletimemilestonetitle"></a>`milestoneTitle` | [`String`](#string) | Milestone applied to the issue. |
+| <a id="projectvaluestreamanalyticsflowmetricscycletimemyreactionemoji"></a>`myReactionEmoji` | [`String`](#string) | Filter by reaction emoji applied by the current user. |
+| <a id="projectvaluestreamanalyticsflowmetricscycletimenot"></a>`not` | [`NegatedValueStreamAnalyticsIssueFilterInput`](#negatedvaluestreamanalyticsissuefilterinput) | Argument used for adding negated filters. |
| <a id="projectvaluestreamanalyticsflowmetricscycletimeto"></a>`to` | [`Time!`](#time) | Timestamp marking the end date and time. |
+| <a id="projectvaluestreamanalyticsflowmetricscycletimeweight"></a>`weight` | [`Int`](#int) | Weight applied to the issue. |
##### `ProjectValueStreamAnalyticsFlowMetrics.deploymentCount`
@@ -23720,10 +23745,15 @@ Returns [`ValueStreamAnalyticsMetric`](#valuestreamanalyticsmetric).
| ---- | ---- | ----------- |
| <a id="projectvaluestreamanalyticsflowmetricsissuecountassigneeusernames"></a>`assigneeUsernames` | [`[String!]`](#string) | Usernames of users assigned to the issue. |
| <a id="projectvaluestreamanalyticsflowmetricsissuecountauthorusername"></a>`authorUsername` | [`String`](#string) | Username of the author of the issue. |
+| <a id="projectvaluestreamanalyticsflowmetricsissuecountepicid"></a>`epicId` | [`ID`](#id) | ID of an epic associated with the issues. |
| <a id="projectvaluestreamanalyticsflowmetricsissuecountfrom"></a>`from` | [`Time!`](#time) | Timestamp marking the start date and time. |
+| <a id="projectvaluestreamanalyticsflowmetricsissuecountiterationid"></a>`iterationId` | [`ID`](#id) | ID of an iteration associated with the issues. |
| <a id="projectvaluestreamanalyticsflowmetricsissuecountlabelnames"></a>`labelNames` | [`[String!]`](#string) | Labels applied to the issue. |
| <a id="projectvaluestreamanalyticsflowmetricsissuecountmilestonetitle"></a>`milestoneTitle` | [`String`](#string) | Milestone applied to the issue. |
+| <a id="projectvaluestreamanalyticsflowmetricsissuecountmyreactionemoji"></a>`myReactionEmoji` | [`String`](#string) | Filter by reaction emoji applied by the current user. |
+| <a id="projectvaluestreamanalyticsflowmetricsissuecountnot"></a>`not` | [`NegatedValueStreamAnalyticsIssueFilterInput`](#negatedvaluestreamanalyticsissuefilterinput) | Argument used for adding negated filters. |
| <a id="projectvaluestreamanalyticsflowmetricsissuecountto"></a>`to` | [`Time!`](#time) | Timestamp marking the end date and time. |
+| <a id="projectvaluestreamanalyticsflowmetricsissuecountweight"></a>`weight` | [`Int`](#int) | Weight applied to the issue. |
##### `ProjectValueStreamAnalyticsFlowMetrics.issuesCompletedCount`
@@ -23737,10 +23767,15 @@ Returns [`ValueStreamAnalyticsMetric`](#valuestreamanalyticsmetric).
| ---- | ---- | ----------- |
| <a id="projectvaluestreamanalyticsflowmetricsissuescompletedcountassigneeusernames"></a>`assigneeUsernames` | [`[String!]`](#string) | Usernames of users assigned to the issue. |
| <a id="projectvaluestreamanalyticsflowmetricsissuescompletedcountauthorusername"></a>`authorUsername` | [`String`](#string) | Username of the author of the issue. |
+| <a id="projectvaluestreamanalyticsflowmetricsissuescompletedcountepicid"></a>`epicId` | [`ID`](#id) | ID of an epic associated with the issues. |
| <a id="projectvaluestreamanalyticsflowmetricsissuescompletedcountfrom"></a>`from` | [`Time!`](#time) | Timestamp marking the start date and time. |
+| <a id="projectvaluestreamanalyticsflowmetricsissuescompletedcountiterationid"></a>`iterationId` | [`ID`](#id) | ID of an iteration associated with the issues. |
| <a id="projectvaluestreamanalyticsflowmetricsissuescompletedcountlabelnames"></a>`labelNames` | [`[String!]`](#string) | Labels applied to the issue. |
| <a id="projectvaluestreamanalyticsflowmetricsissuescompletedcountmilestonetitle"></a>`milestoneTitle` | [`String`](#string) | Milestone applied to the issue. |
+| <a id="projectvaluestreamanalyticsflowmetricsissuescompletedcountmyreactionemoji"></a>`myReactionEmoji` | [`String`](#string) | Filter by reaction emoji applied by the current user. |
+| <a id="projectvaluestreamanalyticsflowmetricsissuescompletedcountnot"></a>`not` | [`NegatedValueStreamAnalyticsIssueFilterInput`](#negatedvaluestreamanalyticsissuefilterinput) | Argument used for adding negated filters. |
| <a id="projectvaluestreamanalyticsflowmetricsissuescompletedcountto"></a>`to` | [`Time!`](#time) | Timestamp marking the end date and time. |
+| <a id="projectvaluestreamanalyticsflowmetricsissuescompletedcountweight"></a>`weight` | [`Int`](#int) | Weight applied to the issue. |
##### `ProjectValueStreamAnalyticsFlowMetrics.leadTime`
@@ -23754,10 +23789,15 @@ Returns [`ValueStreamAnalyticsMetric`](#valuestreamanalyticsmetric).
| ---- | ---- | ----------- |
| <a id="projectvaluestreamanalyticsflowmetricsleadtimeassigneeusernames"></a>`assigneeUsernames` | [`[String!]`](#string) | Usernames of users assigned to the issue. |
| <a id="projectvaluestreamanalyticsflowmetricsleadtimeauthorusername"></a>`authorUsername` | [`String`](#string) | Username of the author of the issue. |
+| <a id="projectvaluestreamanalyticsflowmetricsleadtimeepicid"></a>`epicId` | [`ID`](#id) | ID of an epic associated with the issues. |
| <a id="projectvaluestreamanalyticsflowmetricsleadtimefrom"></a>`from` | [`Time!`](#time) | Timestamp marking the start date and time. |
+| <a id="projectvaluestreamanalyticsflowmetricsleadtimeiterationid"></a>`iterationId` | [`ID`](#id) | ID of an iteration associated with the issues. |
| <a id="projectvaluestreamanalyticsflowmetricsleadtimelabelnames"></a>`labelNames` | [`[String!]`](#string) | Labels applied to the issue. |
| <a id="projectvaluestreamanalyticsflowmetricsleadtimemilestonetitle"></a>`milestoneTitle` | [`String`](#string) | Milestone applied to the issue. |
+| <a id="projectvaluestreamanalyticsflowmetricsleadtimemyreactionemoji"></a>`myReactionEmoji` | [`String`](#string) | Filter by reaction emoji applied by the current user. |
+| <a id="projectvaluestreamanalyticsflowmetricsleadtimenot"></a>`not` | [`NegatedValueStreamAnalyticsIssueFilterInput`](#negatedvaluestreamanalyticsissuefilterinput) | Argument used for adding negated filters. |
| <a id="projectvaluestreamanalyticsflowmetricsleadtimeto"></a>`to` | [`Time!`](#time) | Timestamp marking the end date and time. |
+| <a id="projectvaluestreamanalyticsflowmetricsleadtimeweight"></a>`weight` | [`Int`](#int) | Weight applied to the issue. |
### `ProjectWikiRepositoryRegistry`
@@ -31441,6 +31481,21 @@ Represents an escalation rule.
| <a id="negatedissuefilterinputtypes"></a>`types` | [`[IssueType!]`](#issuetype) | Filters out issues by the given issue types. |
| <a id="negatedissuefilterinputweight"></a>`weight` | [`String`](#string) | Weight not applied to the issue. |
+### `NegatedValueStreamAnalyticsIssueFilterInput`
+
+#### Arguments
+
+| Name | Type | Description |
+| ---- | ---- | ----------- |
+| <a id="negatedvaluestreamanalyticsissuefilterinputassigneeusernames"></a>`assigneeUsernames` | [`[String!]`](#string) | Usernames of users not assigned to the issue. |
+| <a id="negatedvaluestreamanalyticsissuefilterinputauthorusername"></a>`authorUsername` | [`String`](#string) | Username of a user who didn't author the issue. |
+| <a id="negatedvaluestreamanalyticsissuefilterinputepicid"></a>`epicId` | [`ID`](#id) | ID of an epic not associated with the issues. |
+| <a id="negatedvaluestreamanalyticsissuefilterinputiterationid"></a>`iterationId` | [`ID`](#id) | List of iteration Global IDs not applied to the issue. |
+| <a id="negatedvaluestreamanalyticsissuefilterinputlabelnames"></a>`labelNames` | [`[String!]`](#string) | Labels not applied to this issue. |
+| <a id="negatedvaluestreamanalyticsissuefilterinputmilestonetitle"></a>`milestoneTitle` | [`String`](#string) | Milestone not applied to this issue. |
+| <a id="negatedvaluestreamanalyticsissuefilterinputmyreactionemoji"></a>`myReactionEmoji` | [`String`](#string) | Filter by reaction emoji applied by the current user. |
+| <a id="negatedvaluestreamanalyticsissuefilterinputweight"></a>`weight` | [`Int`](#int) | Weight not applied to the issue. |
+
### `OncallRotationActivePeriodInputType`
Active period time range for on-call rotation.
diff --git a/lib/gitlab/email/message/in_product_marketing/helper.rb b/lib/gitlab/email/message/in_product_marketing/helper.rb
deleted file mode 100644
index 0770e5f4d76..00000000000
--- a/lib/gitlab/email/message/in_product_marketing/helper.rb
+++ /dev/null
@@ -1,97 +0,0 @@
-# frozen_string_literal: true
-
-module Gitlab
- module Email
- module Message
- module InProductMarketing
- module Helper
- include ActionView::Context
- include ActionView::Helpers::TagHelper
-
- def footer_links
- links = [
- [s_('InProductMarketing|Blog'), 'https://about.gitlab.com/blog'],
- [s_('InProductMarketing|Twitter'), 'https://twitter.com/gitlab'],
- [s_('InProductMarketing|Facebook'), 'https://www.facebook.com/gitlab'],
- [s_('InProductMarketing|YouTube'), 'https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg']
- ]
- case format
- when :html
- links.map do |text, link|
- ActionController::Base.helpers.link_to(text, link)
- end
- else
- '| ' + links.map do |text, link|
- [text, link].join(' ')
- end.join("\n| ")
- end
- end
-
- def address
- s_('InProductMarketing|%{strong_start}GitLab Inc.%{strong_end} 268 Bush Street, #350, San Francisco, CA 94104, USA').html_safe % strong_options
- end
-
- def unsubscribe_message(self_managed_preferences_link = nil)
- parts = Gitlab.com? ? unsubscribe_com : unsubscribe_self_managed(self_managed_preferences_link)
-
- case format
- when :html
- parts.join(' ')
- else
- parts.join("\n" + ' ' * 16)
- end
- end
-
- private
-
- def unsubscribe_link
- unsubscribe_url = Gitlab.com? ? '%tag_unsubscribe_url%' : profile_notifications_url
-
- link(s_('InProductMarketing|unsubscribe'), unsubscribe_url)
- end
-
- def unsubscribe_com
- [
- s_('InProductMarketing|If you no longer wish to receive marketing emails from us,'),
- s_('InProductMarketing|you may %{unsubscribe_link} at any time.') % { unsubscribe_link: unsubscribe_link }
- ]
- end
-
- def unsubscribe_self_managed(preferences_link)
- [
- s_('InProductMarketing|To opt out of these onboarding emails, %{unsubscribe_link}.') % { unsubscribe_link: unsubscribe_link },
- s_("InProductMarketing|If you don't want to receive marketing emails directly from GitLab, %{marketing_preference_link}.") % { marketing_preference_link: preferences_link }
- ]
- end
-
- def strong_options
- case format
- when :html
- { strong_start: '<b>'.html_safe, strong_end: '</b>'.html_safe }
- else
- { strong_start: '', strong_end: '' }
- end
- end
-
- def link(text, link)
- case format
- when :html
- ActionController::Base.helpers.link_to text, link
- else
- "#{text} (#{link})"
- end
- end
-
- def action_link(text, link)
- case format
- when :html
- ActionController::Base.helpers.link_to text, link, target: '_blank', rel: 'noopener noreferrer'
- else
- [text, link].join(' >> ')
- end
- end
- end
- end
- end
- end
-end
diff --git a/lib/gitlab/middleware/path_traversal_check.rb b/lib/gitlab/middleware/path_traversal_check.rb
index ff022983d8b..79465f3cb30 100644
--- a/lib/gitlab/middleware/path_traversal_check.rb
+++ b/lib/gitlab/middleware/path_traversal_check.rb
@@ -17,7 +17,7 @@ module Gitlab
check(env, log_params)
end
- log_params[:duration_s] = execution_time.round(5) if execution_time
+ log_params[:duration_ms] = execution_time.round(5) if execution_time
log(log_params) unless log_params.empty?
end
@@ -29,7 +29,7 @@ module Gitlab
def measure_execution_time(&blk)
if Feature.enabled?(:log_execution_time_path_traversal_middleware, Feature.current_request)
- Benchmark.realtime(&blk)
+ Benchmark.ms(&blk)
else
yield
diff --git a/locale/gitlab.pot b/locale/gitlab.pot
index b7b88999dd9..80c8ab86e71 100644
--- a/locale/gitlab.pot
+++ b/locale/gitlab.pot
@@ -38757,6 +38757,9 @@ msgstr ""
msgid "Read their documentation."
msgstr ""
+msgid "Readme"
+msgstr ""
+
msgid "Ready to get started with GitLab? Follow these steps to set up your workspace, plan and commit changes, and deploy your project."
msgstr ""
@@ -48003,6 +48006,9 @@ msgstr ""
msgid "There was a problem handling the pipeline data."
msgstr ""
+msgid "There was a problem loading this project's readme content."
+msgstr ""
+
msgid "There was a problem sending the confirmation email"
msgstr ""
diff --git a/spec/lib/gitlab/email/message/in_product_marketing/helper_spec.rb b/spec/lib/gitlab/email/message/in_product_marketing/helper_spec.rb
deleted file mode 100644
index a3c2d1b428e..00000000000
--- a/spec/lib/gitlab/email/message/in_product_marketing/helper_spec.rb
+++ /dev/null
@@ -1,75 +0,0 @@
-# frozen_string_literal: true
-
-require 'spec_helper'
-
-RSpec.describe Gitlab::Email::Message::InProductMarketing::Helper do
- describe 'unsubscribe_message' do
- include Gitlab::Routing
-
- let(:dummy_class_with_helper) do
- Class.new do
- include Gitlab::Email::Message::InProductMarketing::Helper
- include Gitlab::Routing
-
- def initialize(format = :html)
- @format = format
- end
-
- def default_url_options
- {}
- end
-
- attr_accessor :format
- end
- end
-
- let(:format) { :html }
-
- subject(:class_with_helper) { dummy_class_with_helper.new(format) }
-
- context 'for SaaS', :saas do
- context 'format is HTML' do
- it 'returns the correct HTML' do
- message = "If you no longer wish to receive marketing emails from us, " \
- "you may <a href=\"%tag_unsubscribe_url%\">unsubscribe</a> at any time."
- expect(class_with_helper.unsubscribe_message).to match message
- end
- end
-
- context 'format is text' do
- let(:format) { :text }
-
- it 'returns the correct string' do
- message = "If you no longer wish to receive marketing emails from us, " \
- "you may unsubscribe (%tag_unsubscribe_url%) at any time."
- expect(class_with_helper.unsubscribe_message.squish).to match message
- end
- end
- end
-
- context 'self-managed' do
- context 'format is HTML' do
- it 'returns the correct HTML' do
- preferences_link = "http://example.com/preferences"
- message = "To opt out of these onboarding emails, " \
- "<a href=\"#{profile_notifications_url}\">unsubscribe</a>. " \
- "If you don't want to receive marketing emails directly from GitLab, #{preferences_link}."
- expect(class_with_helper.unsubscribe_message(preferences_link))
- .to match message
- end
- end
-
- context 'format is text' do
- let(:format) { :text }
-
- it 'returns the correct string' do
- preferences_link = "http://example.com/preferences"
- message = "To opt out of these onboarding emails, " \
- "unsubscribe (#{profile_notifications_url}). " \
- "If you don't want to receive marketing emails directly from GitLab, #{preferences_link}."
- expect(class_with_helper.unsubscribe_message(preferences_link).squish).to match message
- end
- end
- end
- end
-end
diff --git a/spec/lib/gitlab/middleware/path_traversal_check_spec.rb b/spec/lib/gitlab/middleware/path_traversal_check_spec.rb
index 4d5a62e2b32..3d334a60c49 100644
--- a/spec/lib/gitlab/middleware/path_traversal_check_spec.rb
+++ b/spec/lib/gitlab/middleware/path_traversal_check_spec.rb
@@ -31,7 +31,7 @@ RSpec.describe ::Gitlab::Middleware::PathTraversalCheck, feature_category: :shar
.and_call_original
expect(::Gitlab::AppLogger)
.to receive(:warn)
- .with({ class_name: described_class.name, duration_s: instance_of(Float) })
+ .with({ class_name: described_class.name, duration_ms: instance_of(Float) })
.and_call_original
expect(subject).to eq(fake_response)
@@ -68,7 +68,7 @@ RSpec.describe ::Gitlab::Middleware::PathTraversalCheck, feature_category: :shar
.to receive(:warn)
.with({
class_name: described_class.name,
- duration_s: instance_of(Float),
+ duration_ms: instance_of(Float),
message: described_class::PATH_TRAVERSAL_MESSAGE,
fullpath: fullpath
}).and_call_original
diff --git a/spec/mailers/emails/in_product_marketing_spec.rb b/spec/mailers/emails/in_product_marketing_spec.rb
deleted file mode 100644
index 23ee21bfb45..00000000000
--- a/spec/mailers/emails/in_product_marketing_spec.rb
+++ /dev/null
@@ -1,17 +0,0 @@
-# frozen_string_literal: true
-
-require 'spec_helper'
-
-RSpec.describe Emails::InProductMarketing do
- it 'has correct custom headers' do
- expect(described_class::FROM_ADDRESS).to be('GitLab <team@gitlab.com>')
- expect(described_class::CUSTOM_HEADERS).to eq({
- from: 'GitLab <team@gitlab.com>',
- reply_to: 'GitLab <team@gitlab.com>',
- 'X-Mailgun-Track' => 'yes',
- 'X-Mailgun-Track-Clicks' => 'yes',
- 'X-Mailgun-Track-Opens' => 'yes',
- 'X-Mailgun-Tag' => 'marketing'
- })
- end
-end
diff --git a/spec/support/rspec_order_todo.yml b/spec/support/rspec_order_todo.yml
index 03c1bed68ed..602dea118d4 100644
--- a/spec/support/rspec_order_todo.yml
+++ b/spec/support/rspec_order_todo.yml
@@ -6230,16 +6230,6 @@
- './spec/lib/gitlab/email/hook/delivery_metrics_observer_spec.rb'
- './spec/lib/gitlab/email/hook/disable_email_interceptor_spec.rb'
- './spec/lib/gitlab/email/hook/smime_signature_interceptor_spec.rb'
-- './spec/lib/gitlab/email/message/in_product_marketing/admin_verify_spec.rb'
-- './spec/lib/gitlab/email/message/in_product_marketing/base_spec.rb'
-- './spec/lib/gitlab/email/message/in_product_marketing/create_spec.rb'
-- './spec/lib/gitlab/email/message/in_product_marketing/helper_spec.rb'
-- './spec/lib/gitlab/email/message/in_product_marketing_spec.rb'
-- './spec/lib/gitlab/email/message/in_product_marketing/team_short_spec.rb'
-- './spec/lib/gitlab/email/message/in_product_marketing/team_spec.rb'
-- './spec/lib/gitlab/email/message/in_product_marketing/trial_short_spec.rb'
-- './spec/lib/gitlab/email/message/in_product_marketing/trial_spec.rb'
-- './spec/lib/gitlab/email/message/in_product_marketing/verify_spec.rb'
- './spec/lib/gitlab/email/message/repository_push_spec.rb'
- './spec/lib/gitlab/email/receiver_spec.rb'
- './spec/lib/gitlab/email/reply_parser_spec.rb'
@@ -7253,7 +7243,6 @@
- './spec/mailers/emails/admin_notification_spec.rb'
- './spec/mailers/emails/auto_devops_spec.rb'
- './spec/mailers/emails/groups_spec.rb'
-- './spec/mailers/emails/in_product_marketing_spec.rb'
- './spec/mailers/emails/issues_spec.rb'
- './spec/mailers/emails/merge_requests_spec.rb'
- './spec/mailers/emails/pages_domains_spec.rb'
diff --git a/workhorse/go.mod b/workhorse/go.mod
index c1f99cfcdd9..5513ddcaa30 100644
--- a/workhorse/go.mod
+++ b/workhorse/go.mod
@@ -7,7 +7,7 @@ require (
github.com/BurntSushi/toml v1.3.2
github.com/FZambia/sentinel v1.1.1
github.com/alecthomas/chroma/v2 v2.9.1
- github.com/aws/aws-sdk-go v1.44.284
+ github.com/aws/aws-sdk-go v1.45.19
github.com/disintegration/imaging v1.6.2
github.com/getsentry/raven-go v0.2.0
github.com/golang-jwt/jwt/v5 v5.0.0
diff --git a/workhorse/go.sum b/workhorse/go.sum
index aefe491e193..9d6ca6b0d95 100644
--- a/workhorse/go.sum
+++ b/workhorse/go.sum
@@ -800,8 +800,9 @@ github.com/aws/aws-sdk-go v1.43.31/go.mod h1:y4AeaBuwd2Lk+GepC1E9v0qOiTws0MIWAX4
github.com/aws/aws-sdk-go v1.44.156/go.mod h1:aVsgQcEevwlmQ7qHE9I3h+dtQgpqhFB+i8Phjh7fkwI=
github.com/aws/aws-sdk-go v1.44.245/go.mod h1:aVsgQcEevwlmQ7qHE9I3h+dtQgpqhFB+i8Phjh7fkwI=
github.com/aws/aws-sdk-go v1.44.256/go.mod h1:aVsgQcEevwlmQ7qHE9I3h+dtQgpqhFB+i8Phjh7fkwI=
-github.com/aws/aws-sdk-go v1.44.284 h1:Oc5Kubi43/VCkerlt3ZU3KpBju6BpNkoG3s7E8vj/O8=
github.com/aws/aws-sdk-go v1.44.284/go.mod h1:aVsgQcEevwlmQ7qHE9I3h+dtQgpqhFB+i8Phjh7fkwI=
+github.com/aws/aws-sdk-go v1.45.19 h1:+4yXWhldhCVXWFOQRF99ZTJ92t4DtoHROZIbN7Ujk/U=
+github.com/aws/aws-sdk-go v1.45.19/go.mod h1:aVsgQcEevwlmQ7qHE9I3h+dtQgpqhFB+i8Phjh7fkwI=
github.com/aws/aws-sdk-go-v2 v1.9.1/go.mod h1:cK/D0BBs0b/oWPIcX/Z/obahJK1TT7IPVjy53i/mX/4=
github.com/aws/aws-sdk-go-v2 v1.18.1 h1:+tefE750oAb7ZQGzla6bLkOwfcQCEtC5y2RqoqCeqKo=
github.com/aws/aws-sdk-go-v2 v1.18.1/go.mod h1:uzbQtefpm44goOPmdKyAlXSNcwlRgF3ePWVW6EtJvvw=