From 9fdb3dbd6bacb125d40290aac8409da2f9fe19fc Mon Sep 17 00:00:00 2001 From: GitLab Bot Date: Tue, 13 Dec 2022 12:09:26 +0000 Subject: [PATCH] Add latest changes from gitlab-org/gitlab@master --- .rubocop.yml | 1 + GITALY_SERVER_VERSION | 2 +- Gemfile | 2 +- Gemfile.checksum | 2 +- Gemfile.lock | 4 +- app/assets/javascripts/editor/schema/ci.json | 104 +++++++------ .../alert_management/alerts/set_assignees.rb | 2 +- .../alert_management/alerts/todo/create.rb | 2 +- .../mutations/alert_management/base.rb | 18 +++ .../alert_management/create_alert_issue.rb | 2 +- .../alert_management/update_alert_status.rb | 2 +- app/graphql/types/ci/runner_type.rb | 4 +- app/graphql/types/group_connection.rb | 22 +++ app/helpers/groups/observability_helper.rb | 2 +- app/models/users/group_callout.rb | 3 +- .../incident_management/usage_data.rb | 18 ++- .../timeline_events/base_service.rb | 17 +++ .../timeline_events/create_service.rb | 2 +- .../timeline_events/destroy_service.rb | 2 +- .../timeline_events/update_service.rb | 2 +- app/services/issues/base_service.rb | 5 + app/services/issues/update_service.rb | 2 +- app/services/todo_service.rb | 60 +++++--- app/workers/all_queues.yml | 9 ++ .../debian/process_package_file_worker.rb | 52 +++++++ ...incident_management_incident_published.yml | 24 +++ ..._Create_incident_management_alert_todo.yml | 26 ++++ ...ees_incident_management_alert_assigned.yml | 26 ++++ ...e_incident_management_incident_created.yml | 26 ++++ ...ncident_management_alert_status_change.yml | 26 ++++ ...ce_incident_management_timeline_event_.yml | 27 ++++ ...ice_incident_management_timeline_event.yml | 26 ++++ ...ce_incident_management_timeline_event_.yml | 26 ++++ ...ce_incident_management_incident_relate.yml | 26 ++++ ..._incident_management_incident_unrelate.yml | 26 ++++ ...ce_incident_management_incident_closed.yml | 26 ++++ ..._incident_management_incident_reopened.yml | 26 ++++ ...anagement_incident_change_confidential.yml | 26 ++++ ...ident_management_incident_zoom_meeting.yml | 26 ++++ ...e_incident_management_incident_comment.yml | 26 ++++ ...vice_incident_management_incident_todo.yml | 26 ++++ ..._incident_management_incident_assigned.yml | 26 ++++ ...08101211_merge_request_authors_monthly.yml | 4 +- doc/api/graphql/reference/index.md | 1 + doc/api/index.md | 6 - doc/api/scim.md | 3 + doc/api/tags.md | 53 +++++++ .../metrics/index.md | 2 +- doc/user/group/access_and_permissions.md | 11 +- doc/user/markdown.md | 4 +- .../search/img/basic_search_results_v15_1.png | Bin 17833 -> 0 bytes doc/user/search/img/basic_search_v15_1.png | Bin 10995 -> 0 bytes doc/user/search/img/search_navbar_v15_7.png | Bin 0 -> 26983 bytes doc/user/search/img/search_scope_v15_7.png | Bin 0 -> 287661 bytes doc/user/search/index.md | 4 +- lib/api/entities/tag_signature.rb | 13 ++ lib/api/tags.rb | 18 +++ .../count_merge_request_authors_metric.rb | 15 -- locale/gitlab.pot | 8 + scripts/review_apps/review-apps.sh | 2 +- spec/factories/work_items/work_item_types.rb | 2 +- .../editor/schema/ci/ci_schema_spec.js | 4 + .../ci/yaml_tests/negative_tests/secrets.yml | 39 +++++ .../ci/yaml_tests/positive_tests/secrets.yml | 28 ++++ .../alerts/set_assignees_spec.rb | 9 ++ .../alerts/todo/create_spec.rb | 9 ++ .../create_alert_issue_spec.rb | 18 +++ .../update_alert_status_spec.rb | 9 ++ .../groups/observability_helper_spec.rb | 10 +- spec/lib/feature_spec.rb | 7 + ...count_merge_request_authors_metric_spec.rb | 25 ---- .../mutations/work_items/update_spec.rb | 4 +- spec/requests/api/tags_spec.rb | 56 +++++++ .../groups/observability_controller_spec.rb | 6 +- .../timeline_events/create_service_spec.rb | 18 +++ .../timeline_events/destroy_service_spec.rb | 9 ++ .../timeline_events/update_service_spec.rb | 8 + .../issue_links/create_service_spec.rb | 8 + .../issue_links/destroy_service_spec.rb | 8 + spec/services/issues/close_service_spec.rb | 8 + spec/services/issues/create_service_spec.rb | 24 ++- spec/services/issues/reopen_service_spec.rb | 8 + spec/services/issues/update_service_spec.rb | 31 +++- .../services/issues/zoom_link_service_spec.rb | 8 + spec/services/notes/create_service_spec.rb | 8 + .../process_package_file_service_spec.rb | 3 +- spec/services/todo_service_spec.rb | 22 +++ .../process_package_file_worker_spec.rb | 138 ++++++++++++++++++ workhorse/internal/upload/rewrite.go | 7 +- workhorse/internal/upload/uploads.go | 2 +- workhorse/internal/upload/uploads_test.go | 12 ++ 91 files changed, 1315 insertions(+), 159 deletions(-) create mode 100644 app/graphql/types/group_connection.rb create mode 100644 app/workers/packages/debian/process_package_file_worker.rb create mode 100644 config/events/1669814629_StatusPage__PublishService_incident_management_incident_published.yml create mode 100644 config/events/1669815074_Mutations__AlertManagement__Alerts__Todo__Create_incident_management_alert_todo.yml create mode 100644 config/events/1669817378_Mutations__AlertManagement__Alerts__SetAssignees_incident_management_alert_assigned.yml create mode 100644 config/events/1669817630_Mutations__AlertManagement__CreateAlertIssue_incident_management_incident_created.yml create mode 100644 config/events/1669817815_Mutations__AlertManagement__UpdateAlertStatus_incident_management_alert_status_change.yml create mode 100644 config/events/1669818009_IncidentManagement__TimelineEvents__CreateService_incident_management_timeline_event_.yml create mode 100644 config/events/1669902189_IncidentManagement__TimelineEvents__DestroyService_incident_management_timeline_event.yml create mode 100644 config/events/1669902383_IncidentManagement__TimelineEvents__UpdateService_incident_management_timeline_event_.yml create mode 100644 config/events/1669902538_IssueLinks__CreateService_incident_management_incident_relate.yml create mode 100644 config/events/1669902705_IssueLinks__DestroyService_incident_management_incident_unrelate.yml create mode 100644 config/events/1669902889_Issues__CloseService_incident_management_incident_closed.yml create mode 100644 config/events/1669903092_Issues__ReopenService_incident_management_incident_reopened.yml create mode 100644 config/events/1669903273_Issues__UpdateService_incident_management_incident_change_confidential.yml create mode 100644 config/events/1669903414_Issues__ZoomLinkService_incident_management_incident_zoom_meeting.yml create mode 100644 config/events/1669903530_Notes__CreateService_incident_management_incident_comment.yml create mode 100644 config/events/1669903650_TodoService_incident_management_incident_todo.yml create mode 100644 config/events/1670570965_Issues__UpdateService_incident_management_incident_assigned.yml delete mode 100644 doc/user/search/img/basic_search_results_v15_1.png delete mode 100644 doc/user/search/img/basic_search_v15_1.png create mode 100644 doc/user/search/img/search_navbar_v15_7.png create mode 100644 doc/user/search/img/search_scope_v15_7.png create mode 100644 lib/api/entities/tag_signature.rb delete mode 100644 lib/gitlab/usage/metrics/instrumentations/count_merge_request_authors_metric.rb create mode 100644 spec/frontend/editor/schema/ci/yaml_tests/negative_tests/secrets.yml create mode 100644 spec/frontend/editor/schema/ci/yaml_tests/positive_tests/secrets.yml delete mode 100644 spec/lib/gitlab/usage/metrics/instrumentations/count_merge_request_authors_metric_spec.rb create mode 100644 spec/workers/packages/debian/process_package_file_worker_spec.rb diff --git a/.rubocop.yml b/.rubocop.yml index 29a0b7617e7..e523c42f430 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -169,6 +169,7 @@ Naming/FileName: - 'qa/tasks/**/*.rake' - '**/*.ru' - 'app/graphql/types/issue_connection.rb' + - 'app/graphql/types/group_connection.rb' IgnoreExecutableScripts: true AllowedAcronyms: diff --git a/GITALY_SERVER_VERSION b/GITALY_SERVER_VERSION index e14018cce66..f4be1450bea 100644 --- a/GITALY_SERVER_VERSION +++ b/GITALY_SERVER_VERSION @@ -1 +1 @@ -c2dd35e7775018bd29c2b1306afeee966ba3b4d7 +cf32d208912de9dfbfdd4baab42655baf82bfce5 diff --git a/Gemfile b/Gemfile index 9d88b56426b..03b06c63fa2 100644 --- a/Gemfile +++ b/Gemfile @@ -353,7 +353,7 @@ gem 'snowplow-tracker', '~> 0.6.1' # Metrics gem 'webrick', '~> 1.6.1', require: false -gem 'prometheus-client-mmap', '~> 0.16', require: 'prometheus/client' +gem 'prometheus-client-mmap', '~> 0.17', require: 'prometheus/client' gem 'warning', '~> 1.3.0' diff --git a/Gemfile.checksum b/Gemfile.checksum index 5df02c1e9df..9c3173f19f4 100644 --- a/Gemfile.checksum +++ b/Gemfile.checksum @@ -428,7 +428,7 @@ {"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.16.2","platform":"ruby","checksum":"36e7e96fdd603c2d1fed050ec71504797f3f8b2560123306ba72018ee3561165"}, +{"name":"prometheus-client-mmap","version":"0.17.0","platform":"ruby","checksum":"766d3706f7b26fed5a177843ab15b5b0dc108f9677d8bdbe0c4b5d9375c2af24"}, {"name":"pry","version":"0.13.1","platform":"java","checksum":"9612d825e2c3bc160633b2a4fae21041126ee33f1ac8035c851417e561b2b46c"}, {"name":"pry","version":"0.13.1","platform":"ruby","checksum":"1393918c415af46b6d09044d2b78dde92b29bc834fd85c369a950bab0826dc47"}, {"name":"pry-byebug","version":"3.9.0","platform":"ruby","checksum":"3bba08f97fea15b89cc299f3b5136e3b85763cd18cf84960eac4fbfbeb2ede24"}, diff --git a/Gemfile.lock b/Gemfile.lock index 56313bec18f..f12157122f9 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1082,7 +1082,7 @@ GEM coderay parser unparser - prometheus-client-mmap (0.16.2) + prometheus-client-mmap (0.17.0) pry (0.13.1) coderay (~> 1.1) method_source (~> 1.0) @@ -1768,7 +1768,7 @@ DEPENDENCIES pg_query (~> 2.2) png_quantizator (~> 0.2.1) premailer-rails (~> 1.10.3) - prometheus-client-mmap (~> 0.16) + prometheus-client-mmap (~> 0.17) pry-byebug pry-rails (~> 0.3.9) pry-shell (~> 0.5.1) diff --git a/app/assets/javascripts/editor/schema/ci.json b/app/assets/javascripts/editor/schema/ci.json index f67519712cc..3b40970e62d 100644 --- a/app/assets/javascripts/editor/schema/ci.json +++ b/app/assets/javascripts/editor/schema/ci.json @@ -607,53 +607,65 @@ "secrets": { "type": "object", "markdownDescription": "Defines secrets to be injected as environment variables. [Learn More](https://docs.gitlab.com/ee/ci/yaml/#secrets).", - "additionalProperties": { - "type": "object", - "description": "Environment variable name", - "properties": { - "vault": { - "oneOf": [ - { - "type": "string", - "description": "The secret to be fetched from Vault (e.g. 'production/db/password@ops' translates to secret 'ops/data/production/db', field `password`)" - }, - { - "type": "object", - "properties": { - "engine": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "path": { - "type": "string" - } - }, - "required": [ - "name", - "path" - ] - }, - "path": { - "type": "string" - }, - "field": { - "type": "string" - } + "patternProperties": { + ".*": { + "type": "object", + "properties": { + "vault": { + "oneOf": [ + { + "type": "string", + "markdownDescription": "The secret to be fetched from Vault (e.g. 'production/db/password@ops' translates to secret 'ops/data/production/db', field `password`). [Learn More](https://docs.gitlab.com/ee/ci/yaml/#secretsvault)" }, - "required": [ - "engine", - "path", - "field" - ] - } - ] - } - }, - "required": [ - "vault" - ] + { + "type": "object", + "properties": { + "engine": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "path": { + "type": "string" + } + }, + "required": [ + "name", + "path" + ] + }, + "path": { + "type": "string" + }, + "field": { + "type": "string" + } + }, + "required": [ + "engine", + "path", + "field" + ], + "additionalProperties": false + } + ] + }, + "file": { + "type": "boolean", + "default": true, + "markdownDescription": "Configures the secret to be stored as either a file or variable type CI/CD variable. [Learn More](https://docs.gitlab.com/ee/ci/yaml/#secretsfile)" + }, + "token": { + "type": "string", + "description": "Specifies the JWT variable that should be used to authenticate with Hashicorp Vault." + } + }, + "required": [ + "vault" + ], + "additionalProperties": false + } } }, "before_script": { diff --git a/app/graphql/mutations/alert_management/alerts/set_assignees.rb b/app/graphql/mutations/alert_management/alerts/set_assignees.rb index c986111d290..500e2b868b1 100644 --- a/app/graphql/mutations/alert_management/alerts/set_assignees.rb +++ b/app/graphql/mutations/alert_management/alerts/set_assignees.rb @@ -20,7 +20,7 @@ module Mutations alert = authorized_find!(project_path: args[:project_path], iid: args[:iid]) result = set_assignees(alert, args[:assignee_usernames], args[:operation_mode]) - track_usage_event(:incident_management_alert_assigned, current_user.id) + track_alert_events('incident_management_alert_assigned', alert) prepare_response(result) end diff --git a/app/graphql/mutations/alert_management/alerts/todo/create.rb b/app/graphql/mutations/alert_management/alerts/todo/create.rb index 2a1056e8f64..999c0bec5af 100644 --- a/app/graphql/mutations/alert_management/alerts/todo/create.rb +++ b/app/graphql/mutations/alert_management/alerts/todo/create.rb @@ -11,7 +11,7 @@ module Mutations alert = authorized_find!(project_path: args[:project_path], iid: args[:iid]) result = ::AlertManagement::Alerts::Todo::CreateService.new(alert, current_user).execute - track_usage_event(:incident_management_alert_todo, current_user.id) + track_alert_events('incident_management_alert_todo', alert) prepare_response(result) end diff --git a/app/graphql/mutations/alert_management/base.rb b/app/graphql/mutations/alert_management/base.rb index d01f200107c..2eef6bb9db7 100644 --- a/app/graphql/mutations/alert_management/base.rb +++ b/app/graphql/mutations/alert_management/base.rb @@ -39,6 +39,24 @@ module Mutations ::AlertManagement::AlertsFinder.new(current_user, project, args).execute.first end + + def track_alert_events(event, alert) + project = alert.project + namespace = project.namespace + track_usage_event(event, current_user.id) + + return unless Feature.enabled?(:route_hll_to_snowplow_phase2, namespace) + + Gitlab::Tracking.event( + self.class.to_s, + event, + project: project, + namespace: namespace, + user: current_user, + label: 'redis_hll_counters.incident_management.incident_management_total_unique_counts_monthly', + context: [Gitlab::Tracking::ServicePingContext.new(data_source: :redis_hll, event: event).to_context] + ) + end end end end diff --git a/app/graphql/mutations/alert_management/create_alert_issue.rb b/app/graphql/mutations/alert_management/create_alert_issue.rb index 77a7d7a4147..7c8de6365e7 100644 --- a/app/graphql/mutations/alert_management/create_alert_issue.rb +++ b/app/graphql/mutations/alert_management/create_alert_issue.rb @@ -9,7 +9,7 @@ module Mutations alert = authorized_find!(project_path: args[:project_path], iid: args[:iid]) result = create_alert_issue(alert, current_user) - track_usage_event(:incident_management_incident_created, current_user.id) + track_alert_events('incident_management_incident_created', alert) track_usage_event(:incident_management_alert_create_incident, current_user.id) prepare_response(alert, result) diff --git a/app/graphql/mutations/alert_management/update_alert_status.rb b/app/graphql/mutations/alert_management/update_alert_status.rb index 21566c7d66f..be271a7d795 100644 --- a/app/graphql/mutations/alert_management/update_alert_status.rb +++ b/app/graphql/mutations/alert_management/update_alert_status.rb @@ -13,7 +13,7 @@ module Mutations alert = authorized_find!(project_path: project_path, iid: iid) result = update_status(alert, status) - track_usage_event(:incident_management_alert_status_changed, current_user.id) + track_alert_events('incident_management_alert_status_changed', alert) prepare_response(result) end diff --git a/app/graphql/types/ci/runner_type.rb b/app/graphql/types/ci/runner_type.rb index 56ad2418d19..07da54adde3 100644 --- a/app/graphql/types/ci/runner_type.rb +++ b/app/graphql/types/ci/runner_type.rb @@ -38,8 +38,8 @@ module Types field :executor_name, GraphQL::Types::String, null: true, description: 'Executor last advertised by the runner.', method: :executor_name - field :groups, ::Types::GroupType.connection_type, null: true, - description: 'Groups the runner is associated with. For group runners only.' + field :groups, 'Types::GroupConnection', null: true, + description: 'Groups the runner is associated with. For group runners only.' field :id, ::Types::GlobalIDType[::Ci::Runner], null: false, description: 'ID of the runner.' field :ip_address, GraphQL::Types::String, null: true, diff --git a/app/graphql/types/group_connection.rb b/app/graphql/types/group_connection.rb new file mode 100644 index 00000000000..e4332e24302 --- /dev/null +++ b/app/graphql/types/group_connection.rb @@ -0,0 +1,22 @@ +# frozen_string_literal: true + +# Normally this wouldn't be needed and we could use +# +# type Types::GroupType.connection_type, null: true +# +# in a resolver. However we can end up with cyclic definitions. +# Running the spec locally can result in errors like +# +# NameError: uninitialized constant Types::GroupType +# +# or other errors. To fix this, we created this file and use +# +# type "Types::GroupConnection", null: true +# +# which gives a delayed resolution, and the proper connection type. +# +# See gitlab/app/graphql/types/ci/runner_type.rb +# Reference: https://github.com/rmosolgo/graphql-ruby/issues/3974#issuecomment-1084444214 +# and https://docs.gitlab.com/ee/development/api_graphql_styleguide.html#testing-tips-and-tricks +# +Types::GroupConnection = Types::GroupType.connection_type diff --git a/app/helpers/groups/observability_helper.rb b/app/helpers/groups/observability_helper.rb index a16e6ab13e3..26caac4ce7f 100644 --- a/app/helpers/groups/observability_helper.rb +++ b/app/helpers/groups/observability_helper.rb @@ -22,7 +22,7 @@ module Groups # When running Observability UI in standalone mode (i.e. not backed by Observability Backend) # the group-id is not required. This is mostly used for local dev - base_url = ENV['STANDALONE_OBSERVABILITY_UI'] == 'true' ? observability_url : "#{observability_url}/#{group.id}" + base_url = ENV['STANDALONE_OBSERVABILITY_UI'] == 'true' ? observability_url : "#{observability_url}/-/#{group.id}" sanitized_path = if params[:observability_path] && sanitize(params[:observability_path]) != '' CGI.unescapeHTML(sanitize(params[:observability_path])) diff --git a/app/models/users/group_callout.rb b/app/models/users/group_callout.rb index 3e3e424e9c9..2552407fa4c 100644 --- a/app/models/users/group_callout.rb +++ b/app/models/users/group_callout.rb @@ -23,7 +23,8 @@ module Users namespace_storage_limit_banner_alert_threshold: 12, # EE-only namespace_storage_limit_banner_error_threshold: 13, # EE-only usage_quota_trial_alert: 14, # EE-only - preview_usage_quota_free_plan_alert: 15 # EE-only + preview_usage_quota_free_plan_alert: 15, # EE-only + enforcement_at_limit_alert: 16 # EE-only } validates :group, presence: true diff --git a/app/services/concerns/incident_management/usage_data.rb b/app/services/concerns/incident_management/usage_data.rb index 27e60029ea3..40183085344 100644 --- a/app/services/concerns/incident_management/usage_data.rb +++ b/app/services/concerns/incident_management/usage_data.rb @@ -7,7 +7,23 @@ module IncidentManagement def track_incident_action(current_user, target, action) return unless target.incident? - track_usage_event(:"incident_management_#{action}", current_user.id) + event = "incident_management_#{action}" + track_usage_event(event, current_user.id) + + namespace = target.try(:namespace) + project = target.try(:project) + + return unless Feature.enabled?(:route_hll_to_snowplow_phase2, target.try(:namespace)) + + Gitlab::Tracking.event( + self.class.to_s, + event, + project: project, + namespace: namespace, + user: current_user, + label: 'redis_hll_counters.incident_management.incident_management_total_unique_counts_monthly', + context: [Gitlab::Tracking::ServicePingContext.new(data_source: :redis_hll, event: event).to_context] + ) end end end diff --git a/app/services/incident_management/timeline_events/base_service.rb b/app/services/incident_management/timeline_events/base_service.rb index 7168e2fdd38..1de382273de 100644 --- a/app/services/incident_management/timeline_events/base_service.rb +++ b/app/services/incident_management/timeline_events/base_service.rb @@ -24,6 +24,23 @@ module IncidentManagement def error_in_save(timeline_event) error(timeline_event.errors.full_messages.to_sentence) end + + def track_timeline_event(event, project) + namespace = project.namespace + track_usage_event(event, user.id) + + return unless Feature.enabled?(:route_hll_to_snowplow_phase2, namespace) + + Gitlab::Tracking.event( + self.class.to_s, + event, + project: project, + namespace: namespace, + user: user, + label: 'redis_hll_counters.incident_management.incident_management_total_unique_counts_monthly', + context: [Gitlab::Tracking::ServicePingContext.new(data_source: :redis_hll, event: event).to_context] + ) + end end end end diff --git a/app/services/incident_management/timeline_events/create_service.rb b/app/services/incident_management/timeline_events/create_service.rb index 71ff5b64515..3dd9bc172e2 100644 --- a/app/services/incident_management/timeline_events/create_service.rb +++ b/app/services/incident_management/timeline_events/create_service.rb @@ -106,7 +106,7 @@ module IncidentManagement create_timeline_event_tag_links(timeline_event, params[:timeline_event_tag_names]) - track_usage_event(:incident_management_timeline_event_created, user.id) + track_timeline_event("incident_management_timeline_event_created", project) success(timeline_event) else diff --git a/app/services/incident_management/timeline_events/destroy_service.rb b/app/services/incident_management/timeline_events/destroy_service.rb index e1c6bbbdb85..aba46cdda27 100644 --- a/app/services/incident_management/timeline_events/destroy_service.rb +++ b/app/services/incident_management/timeline_events/destroy_service.rb @@ -18,7 +18,7 @@ module IncidentManagement if timeline_event.destroy add_system_note(incident, user) - track_usage_event(:incident_management_timeline_event_deleted, user.id) + track_timeline_event('incident_management_timeline_event_deleted', project) success(timeline_event) else error_in_save(timeline_event) diff --git a/app/services/incident_management/timeline_events/update_service.rb b/app/services/incident_management/timeline_events/update_service.rb index 0e424f86e1a..dd67c6238c8 100644 --- a/app/services/incident_management/timeline_events/update_service.rb +++ b/app/services/incident_management/timeline_events/update_service.rb @@ -43,7 +43,7 @@ module IncidentManagement if timeline_event_saved add_system_note(timeline_event) - track_usage_event(:incident_management_timeline_event_edited, user.id) + track_timeline_event('incident_management_timeline_event_edited', timeline_event.project) success(timeline_event) else error_in_save(timeline_event) diff --git a/app/services/issues/base_service.rb b/app/services/issues/base_service.rb index 28ea6b0ebf8..10407e99715 100644 --- a/app/services/issues/base_service.rb +++ b/app/services/issues/base_service.rb @@ -114,6 +114,11 @@ module Issues Milestones::IssuesCountService.new(milestone).delete_cache end + + override :allowed_create_params + def allowed_create_params(params) + super(params).except(:issue_type, :work_item_type_id, :work_item_type) + end end end diff --git a/app/services/issues/update_service.rb b/app/services/issues/update_service.rb index 0aed9e3ba40..71cc5581ae6 100644 --- a/app/services/issues/update_service.rb +++ b/app/services/issues/update_service.rb @@ -146,7 +146,7 @@ module Issues # don't enqueue immediately to prevent todos removal in case of a mistake TodosDestroyer::ConfidentialIssueWorker.perform_in(Todo::WAIT_FOR_DELETE, issue.id) if issue.confidential? create_confidentiality_note(issue) - track_usage_event(:incident_management_incident_change_confidential, current_user.id) + track_incident_action(current_user, issue, :incident_change_confidential) end end diff --git a/app/services/todo_service.rb b/app/services/todo_service.rb index 5b0ef44dad4..9ae31f8ac58 100644 --- a/app/services/todo_service.rb +++ b/app/services/todo_service.rb @@ -166,8 +166,9 @@ class TodoService # When user marks a target as todo def mark_todo(target, current_user) - attributes = attributes_for_todo(target.project, target, current_user, Todo::MARKED) - create_todos(current_user, attributes) + project = target.project + attributes = attributes_for_todo(project, target, current_user, Todo::MARKED) + create_todos(current_user, attributes, project&.namespace, project) end def todo_exist?(issuable, current_user) @@ -214,8 +215,9 @@ class TodoService end def create_request_review_todo(target, author, reviewers) - attributes = attributes_for_todo(target.project, target, author, Todo::REVIEW_REQUESTED) - create_todos(reviewers, attributes) + project = target.project + attributes = attributes_for_todo(project, target, author, Todo::REVIEW_REQUESTED) + create_todos(reviewers, attributes, project.namespace, project) end def create_member_access_request(member) @@ -225,12 +227,20 @@ class TodoService approvers = source.access_request_approvers_to_be_notified.map(&:user) return true if approvers.empty? - create_todos(approvers, attributes) + if source.instance_of? Project + project = source + namespace = project.namespace + else + project = nil + namespace = source + end + + create_todos(approvers, attributes, namespace, project) end private - def create_todos(users, attributes) + def create_todos(users, attributes, namespace, project) users = Array(users) return if users.empty? @@ -256,7 +266,7 @@ class TodoService todos = users.map do |user| issue_type = attributes.delete(:issue_type) - track_todo_creation(user, issue_type) + track_todo_creation(user, issue_type, namespace, project) Todo.create(attributes.merge(user_id: user.id)) end @@ -296,9 +306,10 @@ class TodoService def create_assignment_todo(target, author, old_assignees = []) if target.assignees.any? + project = target.project assignees = target.assignees - old_assignees - attributes = attributes_for_todo(target.project, target, author, Todo::ASSIGNED) - create_todos(assignees, attributes) + attributes = attributes_for_todo(project, target, author, Todo::ASSIGNED) + create_todos(assignees, attributes, project.namespace, project) end end @@ -313,22 +324,24 @@ class TodoService # Create Todos for directly addressed users directly_addressed_users = filter_directly_addressed_users(parent, note || target, author, skip_users) attributes = attributes_for_todo(parent, target, author, Todo::DIRECTLY_ADDRESSED, note) - create_todos(directly_addressed_users, attributes) + create_todos(directly_addressed_users, attributes, parent&.namespace, parent) # Create Todos for mentioned users mentioned_users = filter_mentioned_users(parent, note || target, author, skip_users + directly_addressed_users) attributes = attributes_for_todo(parent, target, author, Todo::MENTIONED, note) - create_todos(mentioned_users, attributes) + create_todos(mentioned_users, attributes, parent&.namespace, parent) end def create_build_failed_todo(merge_request, todo_author) - attributes = attributes_for_todo(merge_request.project, merge_request, todo_author, Todo::BUILD_FAILED) - create_todos(todo_author, attributes) + project = merge_request.project + attributes = attributes_for_todo(project, merge_request, todo_author, Todo::BUILD_FAILED) + create_todos(todo_author, attributes, project.namespace, project) end def create_unmergeable_todo(merge_request, todo_author) - attributes = attributes_for_todo(merge_request.project, merge_request, todo_author, Todo::UNMERGEABLE) - create_todos(todo_author, attributes) + project = merge_request.project + attributes = attributes_for_todo(project, merge_request, todo_author, Todo::UNMERGEABLE) + create_todos(todo_author, attributes, project.namespace, project) end def attributes_for_target(target) @@ -392,10 +405,23 @@ class TodoService PendingTodosFinder.new(users, criteria).execute end - def track_todo_creation(user, issue_type) + def track_todo_creation(user, issue_type, namespace, project) return unless issue_type == 'incident' - track_usage_event(:incident_management_incident_todo, user.id) + event = "incident_management_incident_todo" + track_usage_event(event, user.id) + + return unless Feature.enabled?(:route_hll_to_snowplow_phase2, namespace) + + Gitlab::Tracking.event( + self.class.to_s, + event, + project: project, + namespace: namespace, + user: user, + label: 'redis_hll_counters.incident_management.incident_management_total_unique_counts_monthly', + context: [Gitlab::Tracking::ServicePingContext.new(data_source: :redis_hll, event: event).to_context] + ) end def attributes_for_access_request_todos(source, author, action, note = nil) diff --git a/app/workers/all_queues.yml b/app/workers/all_queues.yml index 89d25502c6b..bba5ef37051 100644 --- a/app/workers/all_queues.yml +++ b/app/workers/all_queues.yml @@ -1659,6 +1659,15 @@ :weight: 1 :idempotent: true :tags: [] +- :name: package_repositories:packages_debian_process_package_file + :worker_name: Packages::Debian::ProcessPackageFileWorker + :feature_category: :package_registry + :has_external_dependencies: false + :urgency: :low + :resource_boundary: :unknown + :weight: 1 + :idempotent: true + :tags: [] - :name: package_repositories:packages_go_sync_packages :worker_name: Packages::Go::SyncPackagesWorker :feature_category: :package_registry diff --git a/app/workers/packages/debian/process_package_file_worker.rb b/app/workers/packages/debian/process_package_file_worker.rb new file mode 100644 index 00000000000..587c0b78c9c --- /dev/null +++ b/app/workers/packages/debian/process_package_file_worker.rb @@ -0,0 +1,52 @@ +# frozen_string_literal: true + +module Packages + module Debian + class ProcessPackageFileWorker + include ApplicationWorker + include ::Packages::FIPS + include Gitlab::Utils::StrongMemoize + + data_consistency :always + + deduplicate :until_executed + idempotent! + + queue_namespace :package_repositories + feature_category :package_registry + + def perform(package_file_id, user_id, distribution_name, component_name) + raise DisabledError, 'Debian registry is not FIPS compliant' if Gitlab::FIPS.enabled? + + @package_file_id = package_file_id + @user_id = user_id + @distribution_name = distribution_name + @component_name = component_name + + return unless package_file && user && distribution_name && component_name + # return if file has already been processed + return unless package_file.debian_file_metadatum&.unknown? + + ::Packages::Debian::ProcessPackageFileService.new(package_file, user, distribution_name, component_name).execute + rescue StandardError => e + raise if e.instance_of?(DisabledError) + + Gitlab::ErrorTracking.log_exception(e, package_file_id: @package_file_id, user_id: @user_id, + distribution_name: @distribution_name, component_name: @component_name) + package_file.destroy! + end + + private + + def package_file + ::Packages::PackageFile.find_by_id(@package_file_id) + end + strong_memoize_attr :package_file + + def user + ::User.find_by_id(@user_id) + end + strong_memoize_attr :user + end + end +end diff --git a/config/events/1669814629_StatusPage__PublishService_incident_management_incident_published.yml b/config/events/1669814629_StatusPage__PublishService_incident_management_incident_published.yml new file mode 100644 index 00000000000..9e6f699786b --- /dev/null +++ b/config/events/1669814629_StatusPage__PublishService_incident_management_incident_published.yml @@ -0,0 +1,24 @@ +--- +description: Mirrored Service Ping Redis metric. Count of unique users that published incidents per month +category: StatusPage::PublishService +action: incident_management_incident_published +label_description: "Mirrored Service Ping total metric key_path: redis_hll_counters.incident_management.incident_management_total_unique_counts_monthly" +property_description: +value_description: +extra_properties: +identifiers: +- project +- user +- namespace +product_section: ops +product_stage: monitor +product_group: monitor +product_category: +milestone: "15.7" +introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/105223 +distributions: +- ee +tiers: +- premium +- ultimate + diff --git a/config/events/1669815074_Mutations__AlertManagement__Alerts__Todo__Create_incident_management_alert_todo.yml b/config/events/1669815074_Mutations__AlertManagement__Alerts__Todo__Create_incident_management_alert_todo.yml new file mode 100644 index 00000000000..f94db886c51 --- /dev/null +++ b/config/events/1669815074_Mutations__AlertManagement__Alerts__Todo__Create_incident_management_alert_todo.yml @@ -0,0 +1,26 @@ +--- +description: Migrated Service Ping metric. Count of unique users adding alerts to the TODO list +category: Mutations::AlertManagement::Alerts::Todo::Create +action: incident_management_alert_todo +label_description: "Mirrored Service Ping total metric key_path: redis_hll_counters.incident_management.incident_management_total_unique_counts_monthly" +property_description: +value_description: +extra_properties: +identifiers: +- project +- user +- namespace +product_section: ops +product_stage: monitor +product_group: monitor +product_category: +milestone: "15.7" +introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/105223/diffs +distributions: +- ce +- ee +tiers: +- free +- premium +- ultimate + diff --git a/config/events/1669817378_Mutations__AlertManagement__Alerts__SetAssignees_incident_management_alert_assigned.yml b/config/events/1669817378_Mutations__AlertManagement__Alerts__SetAssignees_incident_management_alert_assigned.yml new file mode 100644 index 00000000000..4b2c786149f --- /dev/null +++ b/config/events/1669817378_Mutations__AlertManagement__Alerts__SetAssignees_incident_management_alert_assigned.yml @@ -0,0 +1,26 @@ +--- +description: Count of unique users assigning an alert per week. Migrated form Service Ping metric +category: Mutations::AlertManagement::Alerts::SetAssignees +action: incident_management_alert_assigned +label_description: "Mirrored Service Ping total metric key_path: redis_hll_counters.incident_management.incident_management_total_unique_counts_monthly" +property_description: +value_description: +extra_properties: +identifiers: +- project +- user +- namespace +product_section: ops +product_stage: monitor +product_group: monitor +product_category: +milestone: "15.7" +introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/105223 +distributions: +- ce +- ee +tiers: +- free +- premium +- ultimate + diff --git a/config/events/1669817630_Mutations__AlertManagement__CreateAlertIssue_incident_management_incident_created.yml b/config/events/1669817630_Mutations__AlertManagement__CreateAlertIssue_incident_management_incident_created.yml new file mode 100644 index 00000000000..28bd7ba89c6 --- /dev/null +++ b/config/events/1669817630_Mutations__AlertManagement__CreateAlertIssue_incident_management_incident_created.yml @@ -0,0 +1,26 @@ +--- +description: Migrated from Service Ping metric. Count of unique users creating incidents +category: Mutations::AlertManagement::CreateAlertIssue +action: incident_management_incident_created +label_description: "Mirrored Service Ping total metric key_path: redis_hll_counters.incident_management.incident_management_total_unique_counts_monthly" +property_description: +value_description: +extra_properties: +identifiers: +- project +- user +- namespace +product_section: ops +product_stage: monitor +product_group: monitor +product_category: +milestone: "15.7" +introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/105223 +distributions: +- ce +- ee +tiers: +- free +- premium +- ultimate + diff --git a/config/events/1669817815_Mutations__AlertManagement__UpdateAlertStatus_incident_management_alert_status_change.yml b/config/events/1669817815_Mutations__AlertManagement__UpdateAlertStatus_incident_management_alert_status_change.yml new file mode 100644 index 00000000000..409d1186348 --- /dev/null +++ b/config/events/1669817815_Mutations__AlertManagement__UpdateAlertStatus_incident_management_alert_status_change.yml @@ -0,0 +1,26 @@ +--- +description: Count of unique users changing alert's status. Migrated from Service Ping metric +category: Mutations::AlertManagement::UpdateAlertStatus +action: incident_management_alert_status_changed +label_description: "Mirrored Service Ping total metric key_path: redis_hll_counters.incident_management.incident_management_total_unique_counts_monthly" +property_description: +value_description: +extra_properties: +identifiers: +- project +- user +- namespace +product_section: ops +product_stage: monitor +product_group: monitor +product_category: +milestone: "15.7" +introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/105223 +distributions: +- ce +- ee +tiers: +- free +- premium +- ultimate + diff --git a/config/events/1669818009_IncidentManagement__TimelineEvents__CreateService_incident_management_timeline_event_.yml b/config/events/1669818009_IncidentManagement__TimelineEvents__CreateService_incident_management_timeline_event_.yml new file mode 100644 index 00000000000..b3033c4aa3b --- /dev/null +++ b/config/events/1669818009_IncidentManagement__TimelineEvents__CreateService_incident_management_timeline_event_.yml @@ -0,0 +1,27 @@ +--- +description: Count of unique users created timeline events +category: IncidentManagement::TimelineEvents::CreateService +action: incident_management_timeline_event_created +label_description: "Mirrored Service Ping total metric key_path: redis_hll_counters.incident_management.incident_management_total_unique_counts_monthly" +property_description: +value_description: +extra_properties: +identifiers: +- project +- user +- namespace +product_section: ops +product_stage: monitor +product_group: respond +product_category: incident_management +value_type: number +milestone: "15.7" +introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/105223 +distributions: +- ce +- ee +tiers: +- free +- premium +- ultimate + diff --git a/config/events/1669902189_IncidentManagement__TimelineEvents__DestroyService_incident_management_timeline_event.yml b/config/events/1669902189_IncidentManagement__TimelineEvents__DestroyService_incident_management_timeline_event.yml new file mode 100644 index 00000000000..a314f3c7b8e --- /dev/null +++ b/config/events/1669902189_IncidentManagement__TimelineEvents__DestroyService_incident_management_timeline_event.yml @@ -0,0 +1,26 @@ +--- +category: IncidentManagement::TimelineEvents::DestroyService +action: incident_management_timeline_event_deleted +label_description: "Mirrored Service Ping total metric key_path: redis_hll_counters.incident_management.incident_management_total_unique_counts_monthly" +property_description: +value_description: +extra_properties: +identifiers: +- project +- user +- namespace +description: "Event migrates from Service Ping metric. Count of unique users deleted timeline events" +product_section: ops +product_stage: monitor +product_group: respond +product_category: incident_management +milestone: "15.7" +introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/105223 +distributions: +- ce +- ee +tiers: +- free +- premium +- ultimate + diff --git a/config/events/1669902383_IncidentManagement__TimelineEvents__UpdateService_incident_management_timeline_event_.yml b/config/events/1669902383_IncidentManagement__TimelineEvents__UpdateService_incident_management_timeline_event_.yml new file mode 100644 index 00000000000..afab1a0f531 --- /dev/null +++ b/config/events/1669902383_IncidentManagement__TimelineEvents__UpdateService_incident_management_timeline_event_.yml @@ -0,0 +1,26 @@ +--- +category: IncidentManagement::TimelineEvents::UpdateService +action: incident_management_timeline_event_edited +label_description: "Mirrored Service Ping total metric key_path: redis_hll_counters.incident_management.incident_management_total_unique_counts_monthly" +property_description: +value_description: +extra_properties: +identifiers: +- project +- user +- namespace +description: "Event migrated form Service Ping metric. Count of unique users edited timeline events" +product_section: ops +product_stage: monitor +product_group: respond +product_category: incident_management +milestone: "15.7" +introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/105223 +distributions: +- ce +- ee +tiers: +- free +- premium +- ultimate + diff --git a/config/events/1669902538_IssueLinks__CreateService_incident_management_incident_relate.yml b/config/events/1669902538_IssueLinks__CreateService_incident_management_incident_relate.yml new file mode 100644 index 00000000000..00ac7581617 --- /dev/null +++ b/config/events/1669902538_IssueLinks__CreateService_incident_management_incident_relate.yml @@ -0,0 +1,26 @@ +--- +category: IssueLinks::CreateService +action: incident_management_incident_relate +label_description: "Mirrored Service Ping total metric key_path: redis_hll_counters.incident_management.incident_management_total_unique_counts_monthly" +property_description: +value_description: +extra_properties: +identifiers: +- project +- user +- namespace +description: "Count of unique users adding issues per that are related to an incident. Migrated from Service Ping" +product_section: ops +product_stage: monitor +product_group: monitor +product_category: +milestone: "15.7" +introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/105223 +distributions: +- ce +- ee +tiers: +- free +- premium +- ultimate + diff --git a/config/events/1669902705_IssueLinks__DestroyService_incident_management_incident_unrelate.yml b/config/events/1669902705_IssueLinks__DestroyService_incident_management_incident_unrelate.yml new file mode 100644 index 00000000000..4870e2b1f04 --- /dev/null +++ b/config/events/1669902705_IssueLinks__DestroyService_incident_management_incident_unrelate.yml @@ -0,0 +1,26 @@ +--- +category: IssueLinks::DestroyService +action: incident_management_incident_unrelate +label_description: "Mirrored Service Ping total metric key_path: redis_hll_counters.incident_management.incident_management_total_unique_counts_monthly" +property_description: +value_description: +extra_properties: +identifiers: +- project +- user +- namespace +milestone: "15.7" +description: "Count of unique users removing issue that are related to an incident. Migrated from Service Ping metric" +product_section: ops +product_stage: monitor +product_group: monitor +product_category: +introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/105223 +distributions: +- ce +- ee +tiers: +- free +- premium +- ultimate + diff --git a/config/events/1669902889_Issues__CloseService_incident_management_incident_closed.yml b/config/events/1669902889_Issues__CloseService_incident_management_incident_closed.yml new file mode 100644 index 00000000000..8e6f54876b2 --- /dev/null +++ b/config/events/1669902889_Issues__CloseService_incident_management_incident_closed.yml @@ -0,0 +1,26 @@ +--- +category: Issues::CloseService +action: incident_management_incident_closed +label_description: "Mirrored Service Ping total metric key_path: redis_hll_counters.incident_management.incident_management_total_unique_counts_monthly" +property_description: +value_description: +extra_properties: +identifiers: +- project +- user +- namespace +description: "Count of users closing incidents. Migrated from Service Ping metric." +product_section: ops +product_stage: monitor +product_group: monitor +product_category: +milestone: "15.7" +introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/105223 +distributions: +- ce +- ee +tiers: +- free +- premium +- ultimate + diff --git a/config/events/1669903092_Issues__ReopenService_incident_management_incident_reopened.yml b/config/events/1669903092_Issues__ReopenService_incident_management_incident_reopened.yml new file mode 100644 index 00000000000..33118e11051 --- /dev/null +++ b/config/events/1669903092_Issues__ReopenService_incident_management_incident_reopened.yml @@ -0,0 +1,26 @@ +--- +category: Issues::ReopenService +action: incident_management_incident_reopened +label_description: "Mirrored Service Ping total metric key_path: redis_hll_counters.incident_management.incident_management_total_unique_counts_monthly" +property_description: +value_description: +extra_properties: +identifiers: +- project +- user +- namespace +description: "Count of unique users reopening incidents. Migrated from Service Ping metric." +product_section: ops +product_stage: monitor +product_group: monitor +product_category: +milestone: "15.7" +introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/105223 +distributions: +- ce +- ee +tiers: +- free +- premium +- ultimate + diff --git a/config/events/1669903273_Issues__UpdateService_incident_management_incident_change_confidential.yml b/config/events/1669903273_Issues__UpdateService_incident_management_incident_change_confidential.yml new file mode 100644 index 00000000000..2992667da31 --- /dev/null +++ b/config/events/1669903273_Issues__UpdateService_incident_management_incident_change_confidential.yml @@ -0,0 +1,26 @@ +--- +category: Issues::UpdateService +action: incident_management_incident_change_confidential +label_description: "Mirrored Service Ping total metric key_path: redis_hll_counters.incident_management.incident_management_total_unique_counts_monthly" +property_description: +value_description: +extra_properties: +identifiers: +- project +- user +- namespace +description: "Count of unique users changing incidents to confidential. Event migrated from Service Ping metric." +product_section: ops +product_stage: monitor +product_group: monitor +product_category: +milestone: "15.7" +introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/105223 +distributions: +- ce +- ee +tiers: +- free +- premium +- ultimate + diff --git a/config/events/1669903414_Issues__ZoomLinkService_incident_management_incident_zoom_meeting.yml b/config/events/1669903414_Issues__ZoomLinkService_incident_management_incident_zoom_meeting.yml new file mode 100644 index 00000000000..5dc7506bc21 --- /dev/null +++ b/config/events/1669903414_Issues__ZoomLinkService_incident_management_incident_zoom_meeting.yml @@ -0,0 +1,26 @@ +--- +category: Issues::ZoomLinkService +action: incident_management_incident_zoom_meeting +label_description: "Mirrored Service Ping total metric key_path: redis_hll_counters.incident_management.incident_management_total_unique_counts_monthly" +property_description: +value_description: +extra_properties: +identifiers: +- project +- user +- namespace +description: "Count of unique users creating Zoom meetings about incidents. Event migrated from Service Ping metric." +product_section: ops +product_stage: monitor +product_group: monitor +product_category: +milestone: "15.7" +introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/105223 +distributions: +- ce +- ee +tiers: +- free +- premium +- ultimate + diff --git a/config/events/1669903530_Notes__CreateService_incident_management_incident_comment.yml b/config/events/1669903530_Notes__CreateService_incident_management_incident_comment.yml new file mode 100644 index 00000000000..f7b619e3277 --- /dev/null +++ b/config/events/1669903530_Notes__CreateService_incident_management_incident_comment.yml @@ -0,0 +1,26 @@ +--- +category: Notes::CreateService +action: incident_management_incident_comment +label_description: "Mirrored Service Ping total metric key_path: redis_hll_counters.incident_management.incident_management_total_unique_counts_monthly" +property_description: +value_description: +extra_properties: +identifiers: +- project +- user +- namespace +description: "Count of unique users adding comments on incidents. Event migrated from Service Ping metric" +product_section: ops +product_stage: monitor +product_group: monitor +product_category: +milestone: "15.7" +introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/105223 +distributions: +- ce +- ee +tiers: +- free +- premium +- ultimate + diff --git a/config/events/1669903650_TodoService_incident_management_incident_todo.yml b/config/events/1669903650_TodoService_incident_management_incident_todo.yml new file mode 100644 index 00000000000..b8eee5ce23e --- /dev/null +++ b/config/events/1669903650_TodoService_incident_management_incident_todo.yml @@ -0,0 +1,26 @@ +--- +category: TodoService +action: incident_management_incident_todo +label_description: "Mirrored Service Ping total metric key_path: redis_hll_counters.incident_management.incident_management_total_unique_counts_monthly" +property_description: +value_description: +extra_properties: +identifiers: +- project +- user +- namespace +description: "Count of unique users adding incidents to the TODO list. Event migrated from Service Ping metric" +product_section: ops +product_stage: monitor +product_group: monitor +product_category: +milestone: "15.7" +introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/105223 +distributions: +- ce +- ee +tiers: +- free +- premium +- ultimate + diff --git a/config/events/1670570965_Issues__UpdateService_incident_management_incident_assigned.yml b/config/events/1670570965_Issues__UpdateService_incident_management_incident_assigned.yml new file mode 100644 index 00000000000..22c1a41127b --- /dev/null +++ b/config/events/1670570965_Issues__UpdateService_incident_management_incident_assigned.yml @@ -0,0 +1,26 @@ +--- +description: Count of unique users assiging incidents per +category: Issues::UpdateService +action: incident_management_incident_assigned +label_description: "Mirrored Service Ping total metric key_path: redis_hll_counters.incident_management.incident_management_total_unique_counts_monthly" +property_description: +value_description: +extra_properties: +identifiers: +- project +- user +- namespace +product_section: ops +product_stage: monitor +product_group: monitor +product_category: +milestone: "15.7" +introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/105223 +distributions: +- ce +- ee +tiers: +- free +- premium +- ultimate + diff --git a/config/metrics/counts_28d/20221108101211_merge_request_authors_monthly.yml b/config/metrics/counts_28d/20221108101211_merge_request_authors_monthly.yml index 5987bde2d14..4e9d58bddad 100644 --- a/config/metrics/counts_28d/20221108101211_merge_request_authors_monthly.yml +++ b/config/metrics/counts_28d/20221108101211_merge_request_authors_monthly.yml @@ -6,9 +6,11 @@ product_stage: create product_group: code_review product_category: code_review value_type: number -status: active +status: removed milestone: "15.6" introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/103334 +removed_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/106449 +milestone_removed: "15.7" time_frame: 28d data_source: database data_category: optional diff --git a/doc/api/graphql/reference/index.md b/doc/api/graphql/reference/index.md index e93aa09d28a..682a974fb4d 100644 --- a/doc/api/graphql/reference/index.md +++ b/doc/api/graphql/reference/index.md @@ -18772,6 +18772,7 @@ Represents a requirement. | `titleHtml` | [`String`](#string) | GitLab Flavored Markdown rendering of `title`. | | `updatedAt` | [`Time!`](#time) | Timestamp of when the requirement was last updated. | | `userPermissions` | [`RequirementPermissions!`](#requirementpermissions) | Permissions for the current user on the resource. | +| `workItemIid` | [`ID!`](#id) | Work item IID of the requirement, will replace current IID as identifier soon. | #### Fields with arguments diff --git a/doc/api/index.md b/doc/api/index.md index c75ccc0020b..ef054318c5c 100644 --- a/doc/api/index.md +++ b/doc/api/index.md @@ -26,12 +26,6 @@ Contributions are welcome. For an introduction and basic steps, see [How to make GitLab API calls](https://www.youtube.com/watch?v=0LsMC3ZiXkA). -## SCIM API **(PREMIUM SAAS)** - -GitLab provides a [SCIM API](scim.md) that both implements -[the RFC7644 protocol](https://www.rfc-editor.org/rfc/rfc7644) and provides the -`/Users` endpoint. The base URL is `/api/scim/v2/groups/:group_path/Users/`. - ## GraphQL API A GraphQL API is available in GitLab. diff --git a/doc/api/scim.md b/doc/api/scim.md index 006af7a6eff..0ee9779ccbd 100644 --- a/doc/api/scim.md +++ b/doc/api/scim.md @@ -8,6 +8,9 @@ info: To determine the technical writer assigned to the Stage/Group associated w > [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/98354) in GitLab 15.5. +GitLab provides an SCIM API that both implements [the RFC7644 protocol](https://tools.ietf.org/html/rfc7644) +and provides the `/Users` endpoint. The base URL is `/api/scim/v2/groups/:group_path/Users/`. + To use this API, [Group SSO](../user/group/saml_sso/index.md) must be enabled for the group. This API is only in use where [SCIM for Group SSO](../user/group/saml_sso/scim_setup.md) is enabled. It's a prerequisite to the creation of SCIM identities. diff --git a/doc/api/tags.md b/doc/api/tags.md index 35085baf93f..099448d5609 100644 --- a/doc/api/tags.md +++ b/doc/api/tags.md @@ -176,3 +176,56 @@ Parameters: | ---------- | -------------- | -------- | --------------------------------------------------------------------------------------------------------------- | | `id` | integer or string | yes | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user | | `tag_name` | string | yes | The name of a tag | + +## Get X.509 signature of a tag + +> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/106578) in GitLab 15.7. + +Get the [X.509 signature from a tag](../user/project/repository/x509_signed_commits/index.md#sign-commits-and-tags-with-x509-certificates), +if it is signed. Unsigned tags return a `404 Not Found` response. + +```plaintext +GET /projects/:id/repository/tags/:tag_name/signature +``` + +Parameters: + +| Attribute | Type | Required | Description | +| --------- | ---- | -------- | ----------- | +| `id` | integer or string | yes | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user. | +| `tag_name` | string | yes | The name of a tag. | + +```shell +curl --header "PRIVATE-TOKEN: " "https://gitlab.example.com/api/v4/projects/1/repository/tags/v1.1.1/signature" +``` + +Example response if tag is X.509 signed: + +```json +{ + "signature_type": "X509", + "verification_status": "unverified", + "x509_certificate": { + "id": 1, + "subject": "CN=gitlab@example.org,OU=Example,O=World", + "subject_key_identifier": "BC:BC:BC:BC:BC:BC:BC:BC:BC:BC:BC:BC:BC:BC:BC:BC:BC:BC:BC:BC", + "email": "gitlab@example.org", + "serial_number": 278969561018901340486471282831158785578, + "certificate_status": "good", + "x509_issuer": { + "id": 1, + "subject": "CN=PKI,OU=Example,O=World", + "subject_key_identifier": "AB:AB:AB:AB:AB:AB:AB:AB:AB:AB:AB:AB:AB:AB:AB:AB:AB:AB:AB:AB", + "crl_url": "http://example.com/pki.crl" + } + } +} +``` + +Example response if tag is unsigned: + +```json +{ + "message": "404 GPG Signature Not Found" +} +``` diff --git a/doc/architecture/blueprints/gitlab_observability_backend/metrics/index.md b/doc/architecture/blueprints/gitlab_observability_backend/metrics/index.md index 8485a36f7b0..a6efe68310e 100644 --- a/doc/architecture/blueprints/gitlab_observability_backend/metrics/index.md +++ b/doc/architecture/blueprints/gitlab_observability_backend/metrics/index.md @@ -1,6 +1,6 @@ --- status: proposed -creation-date: 2022-11-09 +creation-date: "2022-11-09" authors: [ "@ankitbhatnagar" ] coach: "@mappelman" approvers: [ "@sebastienpahl", "@nicholasklick" ] diff --git a/doc/user/group/access_and_permissions.md b/doc/user/group/access_and_permissions.md index 13a1fd31ee4..a7358db54df 100644 --- a/doc/user/group/access_and_permissions.md +++ b/doc/user/group/access_and_permissions.md @@ -228,7 +228,10 @@ projects in a group, allowing tighter control over project membership. For example, if you want to lock the group for an [Audit Event](../../administration/audit_events.md), you can guarantee that project membership cannot be modified during the audit. -You can still invite groups or to add members to groups, implicitly giving members access to projects in the **locked** group. +If group membership lock is enabled, the group owner can still: + +- Invite groups or add members to groups to give them access to projects in the **locked** group. +- Change the role of group members. The setting does not cascade. Projects in subgroups observe the subgroup configuration, ignoring the parent group. @@ -239,8 +242,10 @@ To prevent members from being added to projects in a group: 1. Under **Membership**, select **Users cannot be added to projects in this group**. 1. Select **Save changes**. -All users who previously had permissions can no longer add members to a group. -API requests to add a new user to a project are not possible. +After you lock the membership for a group: + +- All users who previously had permissions can no longer add members to a group. +- API requests to add a new user to a project are not possible. ## Manage group memberships via LDAP **(PREMIUM SELF)** diff --git a/doc/user/markdown.md b/doc/user/markdown.md index d15268a938f..b5049dfb66d 100644 --- a/doc/user/markdown.md +++ b/doc/user/markdown.md @@ -1,6 +1,6 @@ --- -stage: Create -group: Source Code +stage: Plan +group: Project Management info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments --- diff --git a/doc/user/search/img/basic_search_results_v15_1.png b/doc/user/search/img/basic_search_results_v15_1.png deleted file mode 100644 index 0de0b976d7d845a8672f35a8a455221772df2f43..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17833 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%0AhvZyoDj|F<$!@B zwn9T6+5{+|zjYaG0sfi31vulRZUBf2zLWTImCP&pT@6k;O|3HDC!YL^|YJ+nqOZ|gfd zo|G*n1W#+-&jW~@p}^b$_MPZ*xR)EorRnD|k``DXlOQwYdGw9Q0wBI{;&*Xc@L>|* zr>mW^)FU}LmpNFuN!VokD$ib)730_g`pR^JqCv?=%qJ-RGH^yNf0xTr^t?BcB)?~= z$=PbfN6AM9waept$+ZxAdqw)bm&EE<+luuzJD69!@qqPZnTFkD6Ebxjz&#ih=W}I3 z=vRO^z%!7^dT&$$K*)axj3m%My6g&^2*sl-06dNa?T?YT`?Z43E+p8z8!`|R@v~vN zv@lt~F^w2$E=sZ}-lAaiHK03u&RnH?H&kGFMeGSdu(4}MR7W*IOOZmusV>5zP*fPyuPnIHqK zRfur{`GiYard(xHLpOS#ya*gumvq9ttUa4*jC3athD2MMErqUO z-l2@tBX-R^+4R~0leE~U_8|a;x8ZEFP>95tMVC5OulzG#r>yG0yB!#a^4>f5dd$5Dnpi9h^Cru%v+8-C@^R+0?;Xajv#(uu0%Bh74EFZg1(j7-$B3aFDN@hDh01bF&wUQJZ(gHvjgbW%tTKfdIqXQ@PT(sY?) zdk-j?vfviLb;Wme7b0n8N~OMBZDVl8N}oJ5_S2t(P+Ksu=QU|`ZbgKN;UPI2F%}SD zlpw5qgK{3sbN_li+viT7DfJ@S!tZ;DHW1Gp!|k_6sm=hqD@qUu+?Cz(>EAkR@kRI@^G-#+$L;Hrr z>+W8BRQ>_D0kK;|KHp)>`<_#3)AHJ^gf3YWL|W$F!{%2c=JIP?FI@A_czEYiEMO&m z_`C$y*1{!7eFU8X<%KPKmf~p{r=^(+JHB{b!d`(Q4oSwvZ%?!-e(H^pJgE>U#iQ1o zf#zM#e15^2+B1sfXDdTpU7n(-`b?)d_Kq|VJ<>SHWPkPDdS{@ZyGClzH>+AdIAkn=cyBqRg!-^pnqb(&GNjTeEu=2R(tfUbZupxLw6WH-bF#XM8CuAqos@nHL zBUc^R;uESZhJHtSSbM!{t67e_qOg&i1mfc_AXb*kAyiL9o<5bvF-{Y>hG;9L6P=yqP3!J`784y zjdMoEfHCjnkE@+oMQ4(dNS!2WCPt%SIP!@-QnoCc463#G^vJcU=QR?wOD2Z3n-)4> z6#`Vin^Q5hqky9eoOBDeswES6?YNU!t=+lF{A?M9hW8CE6UU^T8RJsFuP*ig@Ck+n z05F@D(eq_b2U2G}2po9o9nb(c z?7X7s^aoJU8%Y46p^bwh0BL_i41jpY%X|%#@Zc~A0CK$u=@tMM^lJ$L0NQf%){Gfo zC=}7}i+S4Eb*n?ct?`@U?&=3H={QM;u-)k$*Auha@O}R|-nTX7%SzRV#EGtlYcu_- z7+(a47DG@j$4@7il!<<77WJf*(zCXl%L8+JhF1kW5`MpiS{JxPf;rpi?np&WtahVY zi)uWT>_)G7#`GsSP@+Y(r-jam@d2*_w|&NGBRohMWWy}=IV()!XKREa7JTA@wMB#o z`;8^TlbKn9A_!;C4W*OiQk#zWtAJ39I~ii1XG=r;xo(#?d!(60A{a9e#D~Y>e9QAq zlS8ztuK0aosP_c!%lea z+$rh%f4VpN|0fs~EXlk*ac83UMMANE@_C>#Is0&7!`}do5QX1&!To#0k1Q@!h{cu+ Q@H>x+&(&lrq)q()7o13Ar2qf` diff --git a/doc/user/search/img/search_navbar_v15_7.png b/doc/user/search/img/search_navbar_v15_7.png new file mode 100644 index 0000000000000000000000000000000000000000..9175347b36f435093886fff49b6bed764b128032 GIT binary patch literal 26983 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 z

!oFB_nrb-xU|<~DsQrnTy*H72=~uQcE8;Uf8DW;6AWR>@>vac)M(iZ0U}E3V$LCjE(qg6rW$`8u9YRjZqS`@5o0si3r}$x-s{NT_lMF8=%1SW%LI zKFixz+ZozT3sm)XD~U2|M}dRncmK6z|MkG>zuWq4$YrfhlijFOrmb9~-YJxjp@Z#L zqPoWM@NwIizt;Rux)^7!7fca(ZvoLK>e}IxG#5(@US8Yv)dgQ_(?ygJXQ&0&MRL)` zmi=;joHAqrc2$(t84Zq7oO0_|qGWuA{mESEZ{*sF4EBiVCVAJPkB7(c(Ps0>{W>u_hZ zvmDB3vb%k*#M}E13d5w-7zQC*T}EG@kA7gVo|iSuq?5tH(M-PRRLZXGied$=O++? z0T-&InV{GV4dS#qhfb{uW74bnt~IruJ0fW?HN2!}36rTjSXL(e%Wq=y)H+9V=-Jok z(CVd{yB1F!!YtFsCYoDpnzz%oOIo_}Oe1FMw`lZ}JHJs_(3L3!-eNP8%?2X2y6yWy zY_8_Ed~&AtaAer4(SKF03sgDZE5##KG(X3jCcrduTgB#>ja}5_WKaLp=BHDYM3A!O zDFOXkwW@c)g9)DU!M({@JWr4>`#lqU?OemBW94n-xl6-;nJn*I!`YiM)e zKsEU_ewFF&*8>PIenDt_YaOfxf6_U=Y1F-WwOKv`_kP+DZgwT$y1!^pAA%5%uxyvB z9B2g;l7hXxD`U7jy~TK7Ql9MIY@NT8oVr-lzzn{H2nra1hV5N49q%5#N7F59hHRHC z4pg^lqf0$l9;|zdqHJ9Q;EZMCv#PqG#_0Z3u)BE_FPj_)Oc_&tfm&geoI^yXJcOv( zJ9g%1y(7-lm%(vSR!qE{*s7MhnY3#l98hqG zM=MZib@ZyRkGcpg#244?p=hA|e#7;zhK(1h5=0K`C_;@^UXZ8yto2_I5s9F_2pT0` z>{{cv!{x6}esAung`dn^c z6Z=!%91V`Lf7EH_h_@3E4c$k3_f0)s=KD-fGtNr}D%m3^i;1z_&5Nzl>RE_;B~EQ* zLiJa(9ad~rbL8sD&H|MAiS?G6p?1>?yLz%2xYg?TMZgSPbyhjEgtro>=HCj@qW1GR zXI{ZV9T3|~{)=TG!hj;z8dSvY5Zk|jL8-jAP^9fLlbYYZK6+FzkpDDDFhPB43G?S| zGJ*>oD4tm|_*c2=YVg8gG6+w7awM#%NYmWY)SBwSi-CiqYA6lzxJDM6t#Cz=_U_DMbW zv3m_Wz9JcGhR-RqFjir#Vqy=yC{T2Is_iMP!Yb$4@|1Zd(YOD5&;@gErr*C=ccOHm ztP^tDKD;;zomr0nB-SHC~{&maB#`ki6B2e7_(N}xPCe>OTTZG|l+z+2k$@kSNj8vq= zaf6jK)f5?x`gBKx?&2)|Ja3J==WYmkc84U~Z1d8RBnfcKBelW?kzD$|OmlBFKmVTe zN?X%&j#{N#Vo)i=8`6aij;>@q5UQIyc-mQe*)){n=*lDc1zBO9oJZ-xmEV;ULkOKH zRBf9p^x&zEXwj(|bD7-;-?Yr(oh_Q$FzHLpta@V zg{)xt3!Xsk$h}X6)CjGC)LOpD2bc!DzO$kS(Ed9XuIGhu_7divz;D4mO+9X0r>@&( zwoH-R%O!rbPXq9TaR|8{c-PA$DiJIUx(SW@iNgZmI&oNd{nIq3e+q;wF2GV;!_YyB}wcH2WGy_1{~!rf@Q+Q;8k_M zi0t=+vMOLo+ToV|znLmlp`P?rt7e`0^r+_My7Lr=3lJxiiZjj<}B3r?oeV&;N92>z4J->f%CU z+9O0zUJ<8!u%0R?(WsGf>6@O*xEy6gyaP1-&uz!= z%yT}>;m7$u;w(wv`dBKNJ7))hOv&!F)-syKMS&5GM+#suRIM7kS_y_;Pd?P1VG1c> z=1!IX*G5ep+5|;>=q2pGITe^mKwc$@(|g4E`T=y>;^dp%^Lg(RKYrgAg5IJx0>0An z9p!H4hb7EEOjQ7C@Q9#CqC88iD#KEG25^x$(vS0W3}{!4sAsuo?PlJx{`ck@?6McB zpWv{GphN=0p1nIfo?+6O3ZM*n_(+{HoMawsDMbO_mv!t<0qSqyAc#i{l(ggmy!3(Z zgUq_%&>T&D4t5-(&0#J!v$Ym)yBNg6h~g}|qF%U8MfMTi^oeNCr$xytGifuA{`w?K zBlVMT)We4^rBnaPEL1^Ln{_ma0RP7FT zGgn;2K=?L9JImNUFQRCf5p$0b@0xwG_~1HZtJZ!zv=m@o^<&S z_NMT|b<5eiUeDLuIm1I z!nVW-Z0DZV_2PxKu^5#!kF4P6p|@2g1~;YETU&BA-~*O3?Pyx>gt8iLs7`n=dvYhX zV~VlYg?Q|!1ms+dt<>1S!pOnO&&Dwu6tjoqt`)85fk$Ft8!#9CE5|*-W=*-|J`-Bm zlvgR)v>PR7=%2m!upD$$ZWGolS@)U^tdu!#aaxYnH$ufOh3pSQuDvDXot_*V*J^OA zSdeeJ|I(}Bhe{yQ?9;*B`x`4b-$3+55$rs9!uLxlk?EQCzUXa?*6yZ9-fl7i>c|60 zJ^YN#vCpP(4SkN8ISgmfVGFQDpkl= z5TBe^X3hKN>QqHZ2Wt+O$FWS*TtrmS$3=rBEfd|JjNa$_ruNSF`jTDdlJcpbmm5>h z>WFS86Q0)@X__d2*79u{>sf8Cxjwht(gKt(nG<<)gxMY?^0z%er?xheR<=ozeeDgD zVD#NI)1)vqotN-A=}%*-N!yMD5~EA1);r^VSi$T5vE1%US?=xr&N_i#9zfkci|p#S z82rlH-5NM28VP{U%9|OYqNplXuifaYK-$Yo4$G;4qRoYxKVdPxrr0`1=oxJhR5(|< z@B49Y)MeB81b;xnKAVrk@Nmy)gV?|Z>|HF=gU4j$R~=|aYWCz_ zza2zJRx2tY_+qyvR}>5OYESypn?Jw~TOyjgFO=Ft9#>hn z{RpHo>77b_SOY~ZkNpnOhj3aNJ9e13>g-BLJ|LW__htX9QOFz$j?E`>y)NiSwm8sa zb_+Ss^2ek)NbKj-zjoOhR^{fp$=XxcQrmGlcp`s~T+oaAipCom*I%G$l$@{RSUP@J zxA6PFQE@C6%FrkqnSTb3*w{N<)n5>;Z0fHF$A@DmG~LU7R<^(Z(^7S;QZ#Jnq%X13 z>Ce7mqdx3awQtD=J!+xBOg=qyqnUhox)LsI>cx0vI!IV4?6p(@vt77$=+$CYsdEt9 zoGuDR9u}6B|1a7zvsN(@EMuF7`q%wz#GK8(4@dVy_fNmR3Jl-8)Ag7-csNQ3@}6XL z63atJrJRt<6r#IM{+F=Mb+3u=A<1~m73xuAMo4~FRjI8lz5cw9tunGM%yVnXV@7VA zp5xe2kN7|CSRn&j8@e!!VazGx_3SU{(+HxRI1=U#FI`8jTF*x1(+HHyc%JLte7L5; zb)2$M*EiyDAd}r0qHwvMudx+^&X#>50EyJa<6jwr_9jxXA5K4qh-M9`ZLuH(OZ98~ zT()QFbg8SIpgqb-g9-0rN6x4XM|-WLU17wV<+y#`T(yC4@auDa&{(%l0Tnwg?H13B z4S5`cTJg(;rY6>Y#;UnGqde~BnVyD!#KO|~Gz5x_^TZ(VqH}N&5Le@twK135ukM$F z(3k1LB+(>WkEe(k<$G-CkVloyTx9S)PuI_=dpzkBc9_c%gPt8z(u zk8eMoacJ|3y4lEEK7ZK&LRQ0sPdXTD3TT+Msy=#AULaL{d=}9-uKt_L^CjA5K-*i0 zP)&`)3l#wg>6+FTDb}M+gucEnmlmj zCDq1}Hu9$QgLv6xtg?b4Li$4@Z&i2aqOiJvS)!y)W@S=0_S4yDSB?c!W&X6>%Id|7 zT*n*1*fW8m+?=GqZGvjGSW5yS@n9CgI87+h`;)BHud(nt0A#mrnAz+^EAGMFNd*VZ#JSFgwg(igflhr_pi9%WpsJ9oB5oSNCU96wUxxHT$ z%Hg(M=?syyZ+9m@Itr;;8-nV7*p)IzVg|o4y+$q8s($W5leIYK_g@DpIDgEF@n91(IA93zSU8tU=$BON1hO0(fmb<;X0^ zltFYV1n9^AUB)c6LWQx#vK7C40l!JFabE0HV76rR3*)9DtDV`pBlE*QbQL;a6fE%d z)t4q=a2Bl&2%oC9y6OD|q=Y!w?cJ7eN_0F>2F(P7foGmDJ8~R1d?!2uWa@464nrCO z{+6}MLBXTb?^RY{)U};?h2(&4ipnNWr_pi$CKu7hm{|Vr28j9M7q32$9s$Kc_QJ(f zI|n28B0BMnV84my5lLU>H&V9lzhGNf;90X^eZavGz zJfucEbjB5XI#az>U=_dXK>{j~+MWWT#MEuTFNkYrPJ8Y)GtJ{@rUXFkKlMevo8=(y zmb^cOr(e}xNsJQqkx?ze?P%6Tg5PW$+i|8hwkYJHL)h6T4p;8FVEIoyW>X{VWu4{c zNM!fp?2ebsi51vM7gaj;hw`hx#Wa5XHpF)o+0$zd-xFmpR)l!DZkxMyI_C+-A54_* z3}=&+Xw_-izU9Sro=7#9rL#p&n9*5K~_rEK%HZ<-DzMTAbO z>UVYdKUXOTqbgM^j6Ye-d7$1aqZF_`zCGvo=JPi*Bx#5BdUKp%xgb@Ry|8gdmNi1Pprm^a}YZs=2oGSeT!w9roeC_+3;I6 z%pNcgR1@bQ%d-TnQgONQ@C|k z{JkN@0FX!V-zfPlzag2I-*BLNIGH8G20$~Qc)U}idB+*#6}mI%P;W=d&L))F>eDN{ zY&JoxbViVTo$BzQJ5xlq0u+aoH5tHZ#KK^#2hpp6^#AhIc!=h^2Ev z>%X0DpMi~4Rj4u}o^L?Ayry|k({uF>Nf?3urq?7KY6X&ZBK2m;MNk%_rbGGB@ZVhS zN8a*JX~`%qF%hBNm1cvXsruDr#v3AZf|C>DB#n#@e5i6$O_qr8_QA@p0P(y~Ij(|X z7kBA?ooPSsbYEuMMd14EI{(w>A}AmW4HK4JF?mtj479nquRlGpLgccXB^HWfX4=!8 znY^Tc!h_t!d?6HWT`nL|v2VCmTws`?PLCgq%<+h{`;AXNq449^C&sP(SFFs7p$Rca z&;Qh|F4Qp#qkhv556m`o_Uv0sWMH#!@|IcaSPNzR4$4)bC=QBY-bU4g1IRuX z-0Pb@8g-e8$f7Oaa0+=<`Xw>gIgTz3f!il{@6&%^G(h zM1I)cFO}+&nBkZMi;w-X;kO;lF;2H-qC_FnOv1gVD>m$jiDWD>;z zaIdIDR(D?2!b`T*?&!J0=`Ywrl?)A#*}BOTAzxv=>}uY%>GxGmMXOgArv-o=R_||9 zZYUO-j#_CC-BCypLL~=kxL-Hi8!K?c=1J(z{4R;JA);L*i0zt`C!$Sh9?O7s_25GH zrLO)IB3a(!yKD@`dNG>WcE6|gWH4C-g-Z?_=~j)e&b1INojo?m8pHtAx4P}TauYL9 zVVSWkHED_3>*LdjpnzbABc3qZa;ba&4v~PA8&p+4Oq<#pWtzA9a1-<_u`b6qX-y$e zf&8SSBiA`;*B8xeZ=LhMCy^0LQ>|QIku$c(jtYh_^fUint6%fho~7e6`9!SDvIff2 z&5v+)tF7h=O1@ke3HlZyH>s^ZxHKP7hBwZNTs`8zzcQ{{s{%N_S%BlqB>xI%9y|ci znPbsY>KXE!zk6iHN3dioF?qym=>{!jqEI|}yWZn8P$p@LosGEXxqSb`N+CB&C=+@! zvk`*i#!EF#&56afZqEF3#>;tD-LqNzcI1D`#QzU9dZ|K)^Arq^Ec%KE%QO#LP~mi! z{|p8skDONL8$FjzqOb1ZPM#hm(@9)wS6932@RIRQUB8MEBRfK)?v{b9O{%mB1w0Bq z7eZyf_z5+9B&voYunj=_c?{d*$djyjh2j3#YAbbw6OUabDG?SZoPP3OZ|U2f)gv?Y z8tYZ^21*H-_4wZz{oP+W$D0JaK;UtQZ$h#2B0SLpv&p2+X59TUuy*^wn%rW1Dj+|^ zi7DqueF8n+uc`6~7T)Q=Jb-+Rc*o5*_ z=d?8Msr}z7RqOH|#9-EA!KH0|Kx~aB=HfT)lcZOv&1k~sXtk-{)pn*$jTcDAN5(nN zz%5GgJlr`$6|;l2;~eAG`yEkWO;_oYzX7Oj+4at3>z_t*<#Peae{*ZC8(?+;8hzJS zYc*+e8}a(|q+#wWwZI-QDU6sYN8WF)P}R|Ls(W7E*&m>-835GZO2=Y|4$_)`uCD1o zsZaiw%z#+s@l(E(id!-MpnBC+qT4_8lbz?L@?=(gpYF;_++FS?R*}%wQ!m{E=yA5N z|AqF0oZ6B^wyO}HphqNWn`0%iyMoyJF0;flh03CijqXR6Z(|b1+v&?bJE8}4S;KX8 z&g%P?%IwI^6p4bzER?o3ScT8H043YLG3B-L|4_G%#~jBC#^agvKk9p9V$<@(0PgsS zCJfd56k81tSq*U+vC+;)j?acNccRj zuTapC3ou?Zw2Ooi9y~I9IoaZeg^xZXI7mS?d3#bcYMLWSS2|jZAsY^hoL=7EsRW<- zywBO^nqAW$Kv)Ii_ZLlEtYtvBoORdb-cY9KSXHR({!XYP3{=ATc>t1kunj+{+W_!H zn3bl!u5r(u@LB}8HRSwdmN{M@ zHmdj9V1>^94ZeQZ|8=EUvw3_g|1l0!m2AQubaS&(X7-ez0#Rc(MaieX?>MaYI6EY! z*N0^>cHIEY=m#1p$mAr?vTWwgR?Qxrtr_C;iPe%z&oXaX+`Q)JOq2eluJyj^JdbE- z(}MDk+GvdPO#r-$Ss)kS<~@guyMO3*QUhCXAU99s;3fgtOxWrup1+gSg#yd9^Y_5F z@-&BuInJ2Iq`z+*3C2NuuOKggaAJBy>10|}*RD_IZq|>wm#PgNdSrYlKR3U@FNsg< zU6V3?n_a@5eoPA$w3mlftZXb9ocxBTtiy&*4tLNh^?Otvw5C4GEpoZxyrv{wY+*WR zUoOgqA6=K7{_)@#0xh6Rf_t3Wiz-~6>5_O|Ppl_jHybc2=7>U1x$`#`PDovxK6fO3 zA*>Nu|0m-cogue1dIRbD6VYaKHFX9^*GB<^5=DcjJq$O)EdEiOsCC^dt3tgNkFpXy zoX7uHFL;{}XX$Qhz)&2im9nQ*1B2S7CeAA@i=x|Fhbjq}EpmN!L{h~C@S-%7Qolgb z%;&FBYUe9F7JVTeLie!Jtj6W_pZK*vJaSze)yy5>c^UZh|6}j1qpHrn|6xT`5J4;y zkS=Kv0qGWyQo0f8?k;HrB$bes?!GigcS+w%cX#LS+!>tD%;)ROk9q!ip0%FuTC-;9 z1>g6)_t|@&efECs*Y-?!+>m?q5hciWCi0OEK77;=bRAw-jD2wxBbQOHPfq(gVat#A zarI$o5_f&I4pj2wN;+bW@CDU++E<31w)it-0QV)))LA#T;=}A2YVudNoA3&Y5U5n9 z$vOI;X?H4pecmv~Rc8yX(t(|;R6}Z42L%b7Y|c(fGiwP|F^)Y8H$Z1vvBB^wD%?Jv z;rygDM=wZyXXxB_gj_&CxkTG|*swR(fsINNGKLNU?tWbhTUPV=j^w_y>K7ItuS2K` z`w{lb#iF6m^eU<2M3Q{Td%l}}&rGK@ZhFyLwWL$1j78RwY$87^}q#+p!_&w&QPwx6* z6^TJB&o%C_T~xJZRKF6VNAfa)>`BiJw8xoDrSB${S_26x;XhHFhp zbXT9N4Ejc1-%)5x3vq5;jKO2Gi6iOR!->Snel*5H<6uxqO>J@i+W?@DPQQUc0MY4z z;=hb$F}ye187)jbXRKtoI9qEzfAn^aD&qF8)SyzQT&Z3J`d;EaI>n8~yxDcdmBw^O zNa^fD%22_#i(VaqOrt@yyOE=%{qHcKpy4&(>%ogb-`rypFSOO$Zf4=*;2Q0*VCg~? z_Vg_wG}jc>3}ZPA%@*z10D78Gp?>_Z_xZ2D@pk| zCl2L!*mR(&Nx*3hIMi26Mk8_6v}d9qzDxm!2eMb!>%O84<@V-Pv54m$q@q!Lwp%kn zUDLV}DM9}ERHSTF?w_2ToQ}3liq}RH@6!%SUb~Z8WqRuQl}~>#D=A4hw6(DD6Lzol zxTAJ+*Hb0oqORrY^E1kQUdr$Eq7M$^k@%7DxNqMZ<~bS3xdHc$do}=}x}}mj`0`i< zQ+;=NFbS~ewQ+Xl*{y*BQX|w~-+?{0`kg;|Te4Yuq2O?VJuQPFw3e_bw0>Gc`ELPcMTF#)~*Rww8Fw!wjU3%5{mSJh- z!<$BL=jG>LQe5-h)Pfv^K2NeZ!I>Fz&PkfsYQ>4{C6!%JqC@RJCoj#~@;V1qLHS(y zL=ba#7KX|{b+&6-hbiGdbLHQBtZS0Kn{|kK8r=1Cjm>8AZaaU3XT!LV)e7+2^Qrn8ttmWce9HfiYc$>LfM%*76; z@vzFK?pgDCl9EVBz|2(jGRzhMU=XF?U6@C?-n$w@XnoH@PGpybwaQumY4dD;%q>Id zlyPu0VAfYGK}J8`Y_MJS?`BLf5p*Jq3TEE0?V7KahP&EThR5c?R0cimudEQBIOS~2f^sgi68?z}rdAYex=?z|?f?ZpYDJumpm2jW_s&7<9d zYQ!1WliF_i3EjCq2dmys;2K^qb*HNDS34X6%=&N4 zGZ+kg&>PIweA>9S3K}0kwPB4RF;aGEFo#Upx?_<*?Gzrkre;WIK#q2X9M}#>w9ifs z$vb4z8m@%%N$i-eo!IhX(hL^J-bq&)UgN6QO;7D_4f1Z&;eMzc;Smq!_QsoOelje$ zuPQcK*h09r3bX27g)v$`HllSrvf%MsPGK$9g-s;cDkzGtP@965 zHZ;O#ohUT%)W&U8Pv>5kzk4Jb+bC+O_BA46XxLP+hv^ zAX(h-P5Ye31>x{X)LUB$O^j=)G{yi{j^UcjmR|}IpF-L%vJ5d2_m{_I6?b(Ov&>=2 zn^COMtWWE8vKlP89_nw;f5K@FCKlznv&I?6>EW9|!8T)+rNmNct8`$GjzT)Drhww$ zhw`9Z+;qA=Xgm)PUul(K6dLtP+&)N6d1!6lg7$+%_%p+2KnyrZ=&`UleXbL5F!s$S zNIp*2>c!qb9=p?t`-pK7y#t#Z+sVcx?;=k&4rP^!zG(sINwZ$xi!=#V&0uP9d%87y z9P=aj)W>M7f*+^}(+2j7RL(C{(mb^5VtkdMv22>wp84r*l0gL_@mL3J>P&STcWdwa z8dw{Qr)h6riSh8ATcoi$k)PGA>sNm(@p62&IfB=zX;z;eC6Ix1BvAf#=aei)jh;(! zP3H=odc%YFvCcXjOAMYzN;LSO2KO>H;2|rD^R6`3;HlA-W^xEI^E95n-bOjQ`u5V#Dx9rnX}FolG3k zo2u-*eD{2~JE;1Ui_E@=cy`MqsRzJ8ZD-fYEd@-ic8x$KdqoZg$w~u_9Cl=Fp@;I1 z$iC*3=crVE!<=Gy=`_MuS%ERx#Una7GM;LBEnTtrDh|7uh}NdIv^m;f>(+i7h=hAO zamr_|h*6JLXf%zK)grTl&doWhu;uwKRdhF=upcg`Hy6h$%RQHA_Cs<;fkByW7b!Vf z(TB}*TLKC`KBP_*Nif#Ceb`LdvT$}>X)sIGP<~BP?6!AzsO|33u)ys%a%lc1K(ATq*meFXlG%8RdYiP;asg?b#|>NNA- z*Z7$x(XYB}2i*Q9(5Xr@q#=bQz`N<^5 zJh<3bq8rt+cCq1GJsd!wA0F9f^?7_oPc1~l4k}jH3v33vhrGVXXH_R1@mxv&Xb3*d z52sgs1T)rv?iNtcaX?1M%%8)CUS-jBwfmmvUArAm^Zdgo4iDA-2pr!J``zNqF zrwV0dv|8Hrh{*SlOuaiA1SkVYe&f~oV2zx+;EAIt9>XRC;BxvpQ4K`Q`SWo{JQj(f z4QUt~o4ORyrF}1CH%UbuQtfv2(D={DoOV^I-N`}K+PYbtOc`TACSBu!D9eKrZ{*ng z?$Epf`o4PPkcNVq2gUvf)xogN&KtihEzOC2O6pwHVV)jA3w1^tneY z@~$&@c|~epIp)MJ=F2r|?dM)6hqo4C>Oq^y9m~6RdhQKMHIq6Sh9M2LY(?c17Bkb| z5nPiyzIH!SCH}Tv-IlX|Dv1s~dSNuT;i@t{t0$lL%@oTvi^>;is3&OjyRyfKt=UKI zExH>wMPz5Qwkk}G$|++CpjFaXD7O!{=f=;>l{xks{jo*C_ycR5R#=lqgK4GRsS&y= zi@^@B>u_nGJhS#9m5CuVvGk1DOvazn+R^c*M3xqCTQ^HXm7O9+l7?A|9zqci0B9{w>d;+$27U?x*0A^vOu=V{*(TOxe-pXPy ze&!V$>!(Cp^LhPYu`mEMxph+zZ?v*cms`@4Y|!U>Of?>;q?S8KwNLdX2|v0yCY>%5 zkLPs2UBb!~q@hr(OMT;0KjYi{tgY?Zp*(fn9-ig#XL2X9`BFj@%4LNnq36)GX(c=y`|pr0Laq7530i1*V>&?cl~3X%+Q~# z-$yY3(WQOqIB1KxKM!LY-aEOz?Xkd-rN)}2Q1q?R-k>(l@pzxPIbh>8EdzP*QnEF z4ul==ulHI`LLBzj*y#>t@=WprcvZdUXEa(u-tH_|y^WUPcp2t^GrRsB-qa7UsNVLk z5b|P?pUUTJh&2?|3|HsoW&vc&Fhgvtrp+^V=bB+ELZvPkDEZJ9K+c3u!<71DPL=c9 zwAS@>sg-Hrq2n}>jB@fv>}(c;6z%>(DbPv4uKbW{>EjvSYoz$q)K{3AJx^bmiF8M?7MAR%mjV=n1{jwo$3o|@2`Xz|+05|FXVB)%hhFDKm=ga%4wJ(n(WXWZ@389-o5={B^MODpKc#Foq0>wi z<@8AoK=8h|t7|+e!%!QHo$F9+4Wm|206kmv7U4Lvdeu(X+$n=k1;nk`qu6YN(eDgF z68a}+K^{jZ%|!mK8%3d}Hh`a}rwzZy3$05U;6kK?H|wHXAP&{6jyvakM0FrldMUZI z?-vLAmZxcjcLMm#XHZ4~V8Z87G;&gJs%^T4dR9R79_ZsLBKrQmlP;kNc`|f6?C!9+ zM#5O7a{`zZq1%63*s|3|JDX48x^&d6$m3R;kd?qRQT^=xSrXqbHWU_CxR!GgNnd0e zoU@ms>O3SFGfsjiWQ(3HbzX zl^W#Z}`G} zQ>UGUJR7u_*XCMX41GN^Um1)Eqe}G^(UiJdOUiGrly>y`f}8OxBmYs_`HtAtwdCkf zb?yOBh*l#eLc`h-3b4zW*MH&s$M~SEua_u%Yj`iiYKESxk3apRrbL&gbzqSxKe7xw`bD zlojASu+hKwS``GgJ~=r0?xtoFOQUqq7DatM$w6eeh6%rBbU7NzhyrNJ=a9Ik-!sTJ z9@;P($OTY%PwVbRe@0=qKN4xbM=y5ETiV*ZQ=MbQZluCiQkd>V*rdxt0HR4*tv&6f zqRAnSf|jm<9FXo#YM#~u(zhzUXT_4DE}^W0pShkZT~V} zeSSssF=xx9dDA|6%w4Z&Dh4mZEdO$0@tlV)%+A9>C3Xz3_M22vTJh#wZe;$DCBPM1 zLeRO5vc=@Rv)IeZ?$yUK_tIJGprQ<9AJNy?ztmPDZr*=0Mf_3OX|ELLkcuki?%HTI znRb*nNmTG*IGIo|F_$CVen+n*hpc*|Uz+UlP&|<#Ov_wo43xwV{P=peU0FcweoviU zUH2GI#vKAZ1J^ef5_o@>aaio+K(;dN&CjXy4|E*gr|g45)LYU`hefI#jBD9|g@mA> zN&K;TIA(`Dj&-lRPBTx%_F(Md``6~mRy z@ylD3Eln71!S-mQOZTL@m{1IdugX}O^rMt{f9?wLzA-4269(Y6IF{k2o_jI&Iwm2S zcXdPVk+-DS+*(?(7DEy>oRSBQWIC_BPp?&XSY=r0qmJO{PN7a0Dptvku~(I*7$)y6 zEOR8LcNx!QUw+wBba=a^IrzrvPSLF}W6qQw{p{|tJB|`Pf;9T%b|R-`xZx~2 zF_?E6AC`%^hnFG{p>Hjf~GdsHKA_uI>!gY*sY_c0qyF88dl<3kLGc|o%EN}YLx8-1en9j z(loIZutMQZ=D+?!ha$UU##7^Yg9ezEM*~aThqGa=wL!@r-H1@Dceb}9sg>Ha(i+l0 zifC%qjFugM_ZIV`KtpMQK)^TSFS^&5jk8TCBiL+x6hulohDVLzc9(J@g91pgJXx#^ za!8T2L!7dad$uh z(#0y#GZFC%8K$&?ki-GqSx)t$i;0Lo;f?Y7Pmg3vmbAYeY>t`}(L){|Fj!@jna`u; zp$A{{J(>E*0lKGYHa>ZEW7xzFe+uS3*ti>Ys}bD8WJ~iI2X(BIVY4hqoyZ%djjr|B zOa`<9pue0(iLN?GvX?dIVQy5Qozb@SJq%VrN#r|q>+OD6nj}h4_-TXr_dQ0Fq7re3 z>~qUWLUxB8@AviI1W%TOZxOuL%27oDja1igY)!ZiHU?<-qF28_Z-gN)So)4$Gxjlm zTVWr%)}P)yHVlbQ+LoFqZlH6dl-nvI3^FO(v8awJ!U@~~{lm+Hdq}RvTqAdF1A7?g zn&;_FIl<6CkLqi*?WY=7@0JtfZ#(};6mpwk)1I80ZaPOEnAA8Y3xp_2a4;#?R!Kk9!1EW^5I@p=f z`9qK0AsBB0cZBXE`E|=&ZyKLIz&!pEo<#ksec=Zxthy#x?=;S@;QM+ox?N1gR_p_% zM&G+ZRYF+Nat;e3Lzv-bZ1;JF!i>jSYOqZc1a6B+o(-G|Al;VN2xoJWdVQDE$42X{ zeVirx)`;DX56zgvtDXeDI4R@=1(uVq%he92Dr`+>0pDJ2oy#BX!uBmr&xFg)XFeH_ z>Q+4cEckNxMn23gti%z6(A*pSjNXSlN<7*FxC@C=CofH_8Slx3nN-(KAC|;Ni+Qm_ z%Heg5W46SUUOX-$NNd}n%G$A24wQ&Hd=6tb_LR(ujscY(DaM0>cYAH_v67z!U5-b+ z_)DBe9mJ?�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

&OXI z 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

Waj|H?I8@x9f}c} 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 { VariablesYaml, ProjectPathYaml, IdTokensYaml, + SecretsYaml, }), )('schema validates %s', (_, input) => { // We construct a new "JSON" from each main key that is inside a @@ -122,6 +125,7 @@ describe('negative tests', () => { ProjectPathIncludeLeadSlashYaml, ProjectPathIncludeNoSlashYaml, ProjectPathIncludeTailSlashYaml, + SecretsNegativeYaml, TriggerNegative, HooksNegative, }), diff --git a/spec/frontend/editor/schema/ci/yaml_tests/negative_tests/secrets.yml b/spec/frontend/editor/schema/ci/yaml_tests/negative_tests/secrets.yml new file mode 100644 index 00000000000..14ba930b394 --- /dev/null +++ b/spec/frontend/editor/schema/ci/yaml_tests/negative_tests/secrets.yml @@ -0,0 +1,39 @@ +job_with_secrets_without_vault: + script: + - echo $TEST_DB_PASSWORD + secrets: + TEST_DB_PASSWORD: + token: $TEST_TOKEN + +job_with_secrets_with_extra_properties: + script: + - echo $TEST_DB_PASSWORD + secrets: + TEST_DB_PASSWORD: + vault: test/db/password + extra_prop: TEST + +job_with_secrets_with_invalid_vault_property: + script: + - echo $TEST_DB_PASSWORD + secrets: + TEST_DB_PASSWORD: + vault: + invalid: TEST + +job_with_secrets_with_missing_required_vault_property: + script: + - echo $TEST_DB_PASSWORD + secrets: + TEST_DB_PASSWORD: + vault: + path: gitlab + +job_with_secrets_with_missing_required_engine_property: + script: + - echo $TEST_DB_PASSWORD + secrets: + TEST_DB_PASSWORD: + vault: + engine: + path: kv diff --git a/spec/frontend/editor/schema/ci/yaml_tests/positive_tests/secrets.yml b/spec/frontend/editor/schema/ci/yaml_tests/positive_tests/secrets.yml new file mode 100644 index 00000000000..083cb4348ed --- /dev/null +++ b/spec/frontend/editor/schema/ci/yaml_tests/positive_tests/secrets.yml @@ -0,0 +1,28 @@ +valid_job_with_secrets: + script: + - echo $TEST_DB_PASSWORD + secrets: + TEST_DB_PASSWORD: + vault: test/db/password + +valid_job_with_secrets_and_token: + script: + - echo $TEST_DB_PASSWORD + secrets: + TEST_DB_PASSWORD: + vault: test/db/password + token: $TEST_TOKEN + +valid_job_with_secrets_with_every_vault_keyword: + script: + - echo $TEST_DB_PASSWORD + secrets: + TEST_DB_PASSWORD: + vault: + engine: + name: test-engine + path: test + path: test/db + field: password + file: true + token: $TEST_TOKEN diff --git a/spec/graphql/mutations/alert_management/alerts/set_assignees_spec.rb b/spec/graphql/mutations/alert_management/alerts/set_assignees_spec.rb index 31abbabe385..125e15b70cf 100644 --- a/spec/graphql/mutations/alert_management/alerts/set_assignees_spec.rb +++ b/spec/graphql/mutations/alert_management/alerts/set_assignees_spec.rb @@ -56,6 +56,15 @@ RSpec.describe Mutations::AlertManagement::Alerts::SetAssignees do context 'when operation mode is not specified' do it_behaves_like 'successful resolution' it_behaves_like 'an incident management tracked event', :incident_management_alert_assigned + + it_behaves_like 'Snowplow event tracking with RedisHLL context' do + let(:feature_flag_name) { :route_hll_to_snowplow_phase2 } + let(:namespace) { project.namespace.reload } + let(:category) { described_class.to_s } + let(:user) { current_user } + let(:action) { 'incident_management_alert_assigned' } + let(:label) { 'redis_hll_counters.incident_management.incident_management_total_unique_counts_monthly' } + end end context 'when user does not have permission to update alerts' do diff --git a/spec/graphql/mutations/alert_management/alerts/todo/create_spec.rb b/spec/graphql/mutations/alert_management/alerts/todo/create_spec.rb index ea5e21ec4b8..bcb7c74fa09 100644 --- a/spec/graphql/mutations/alert_management/alerts/todo/create_spec.rb +++ b/spec/graphql/mutations/alert_management/alerts/todo/create_spec.rb @@ -19,6 +19,15 @@ RSpec.describe Mutations::AlertManagement::Alerts::Todo::Create do it_behaves_like 'an incident management tracked event', :incident_management_alert_todo + it_behaves_like 'Snowplow event tracking with RedisHLL context' do + let(:feature_flag_name) { :route_hll_to_snowplow_phase2 } + let(:namespace) { project.namespace.reload } + let(:category) { described_class.to_s } + let(:user) { current_user } + let(:action) { 'incident_management_alert_todo' } + let(:label) { 'redis_hll_counters.incident_management.incident_management_total_unique_counts_monthly' } + end + context 'when user does not have permissions' do let(:current_user) { nil } diff --git a/spec/graphql/mutations/alert_management/create_alert_issue_spec.rb b/spec/graphql/mutations/alert_management/create_alert_issue_spec.rb index 4758ac526a5..e49596b37c9 100644 --- a/spec/graphql/mutations/alert_management/create_alert_issue_spec.rb +++ b/spec/graphql/mutations/alert_management/create_alert_issue_spec.rb @@ -30,6 +30,15 @@ RSpec.describe Mutations::AlertManagement::CreateAlertIssue do it_behaves_like 'an incident management tracked event', :incident_management_incident_created it_behaves_like 'an incident management tracked event', :incident_management_alert_create_incident + + it_behaves_like 'Snowplow event tracking with RedisHLL context' do + let(:feature_flag_name) { :route_hll_to_snowplow_phase2 } + let(:namespace) { project.namespace.reload } + let(:category) { described_class.to_s } + let(:user) { current_user } + let(:action) { 'incident_management_incident_created' } + let(:label) { 'redis_hll_counters.incident_management.incident_management_total_unique_counts_monthly' } + end end context 'when CreateAlertIssue responds with an error' do @@ -46,6 +55,15 @@ RSpec.describe Mutations::AlertManagement::CreateAlertIssue do errors: ['An issue already exists'] ) end + + it_behaves_like 'Snowplow event tracking with RedisHLL context' do + let(:feature_flag_name) { :route_hll_to_snowplow_phase2 } + let(:namespace) { project.namespace.reload } + let(:category) { described_class.to_s } + let(:user) { current_user } + let(:action) { 'incident_management_incident_created' } + let(:label) { 'redis_hll_counters.incident_management.incident_management_total_unique_counts_monthly' } + end end end diff --git a/spec/graphql/mutations/alert_management/update_alert_status_spec.rb b/spec/graphql/mutations/alert_management/update_alert_status_spec.rb index 2c2518e046a..22ad93df79b 100644 --- a/spec/graphql/mutations/alert_management/update_alert_status_spec.rb +++ b/spec/graphql/mutations/alert_management/update_alert_status_spec.rb @@ -35,6 +35,15 @@ RSpec.describe Mutations::AlertManagement::UpdateAlertStatus do let(:user) { current_user } end + it_behaves_like 'Snowplow event tracking with RedisHLL context' do + let(:feature_flag_name) { :route_hll_to_snowplow_phase2 } + let(:namespace) { project.namespace } + let(:category) { described_class.to_s } + let(:user) { current_user } + let(:action) { 'incident_management_alert_status_changed' } + let(:label) { 'redis_hll_counters.incident_management.incident_management_total_unique_counts_monthly' } + end + context 'error occurs when updating' do it 'returns the alert with errors' do # Stub an error on the alert diff --git a/spec/helpers/groups/observability_helper_spec.rb b/spec/helpers/groups/observability_helper_spec.rb index 4393f4e9bec..6d0a8631f78 100644 --- a/spec/helpers/groups/observability_helper_spec.rb +++ b/spec/helpers/groups/observability_helper_spec.rb @@ -10,17 +10,17 @@ RSpec.describe Groups::ObservabilityHelper do context 'if observability_path is missing from params' do it 'returns the iframe src for action: dashboards' do allow(helper).to receive(:params).and_return({ action: 'dashboards' }) - expect(helper.observability_iframe_src(group)).to eq("#{observability_url}/#{group.id}/") + expect(helper.observability_iframe_src(group)).to eq("#{observability_url}/-/#{group.id}/") end it 'returns the iframe src for action: manage' do allow(helper).to receive(:params).and_return({ action: 'manage' }) - expect(helper.observability_iframe_src(group)).to eq("#{observability_url}/#{group.id}/dashboards") + expect(helper.observability_iframe_src(group)).to eq("#{observability_url}/-/#{group.id}/dashboards") end it 'returns the iframe src for action: explore' do allow(helper).to receive(:params).and_return({ action: 'explore' }) - expect(helper.observability_iframe_src(group)).to eq("#{observability_url}/#{group.id}/explore") + expect(helper.observability_iframe_src(group)).to eq("#{observability_url}/-/#{group.id}/explore") end end @@ -28,7 +28,7 @@ RSpec.describe Groups::ObservabilityHelper do context 'if observability_path is valid' do it 'returns the iframe src by injecting the observability path' do allow(helper).to receive(:params).and_return({ action: '/explore', observability_path: '/foo?bar=foobar' }) - expect(helper.observability_iframe_src(group)).to eq("#{observability_url}/#{group.id}/foo?bar=foobar") + expect(helper.observability_iframe_src(group)).to eq("#{observability_url}/-/#{group.id}/foo?bar=foobar") end end @@ -40,7 +40,7 @@ RSpec.describe Groups::ObservabilityHelper do "/test?groupId=" }) expect(helper.observability_iframe_src(group)).to eq( - "#{observability_url}/#{group.id}/test?groupId=alert('attack!')" + "#{observability_url}/-/#{group.id}/test?groupId=alert('attack!')" ) end end diff --git a/spec/lib/feature_spec.rb b/spec/lib/feature_spec.rb index af13c19c4aa..c087931d36a 100644 --- a/spec/lib/feature_spec.rb +++ b/spec/lib/feature_spec.rb @@ -162,6 +162,13 @@ RSpec.describe Feature, stub_feature_flags: false do stub_feature_flag_definition(:enabled_feature_flag, default_enabled: true) end + context 'when using redis cache', :use_clean_rails_redis_caching do + it 'does not make recursive feature-flag calls' do + expect(described_class).to receive(:enabled?).once.and_call_original + described_class.enabled?(:disabled_feature_flag) + end + end + context 'when self-recursive' do before do allow(Feature).to receive(:with_feature).and_wrap_original do |original, name, &block| diff --git a/spec/lib/gitlab/usage/metrics/instrumentations/count_merge_request_authors_metric_spec.rb b/spec/lib/gitlab/usage/metrics/instrumentations/count_merge_request_authors_metric_spec.rb deleted file mode 100644 index 92459e92eac..00000000000 --- a/spec/lib/gitlab/usage/metrics/instrumentations/count_merge_request_authors_metric_spec.rb +++ /dev/null @@ -1,25 +0,0 @@ -# frozen_string_literal: true - -require 'spec_helper' - -RSpec.describe Gitlab::Usage::Metrics::Instrumentations::CountMergeRequestAuthorsMetric do - let(:expected_value) { 1 } - let(:start) { 30.days.ago.to_s(:db) } - let(:finish) { 2.days.ago.to_s(:db) } - - let(:expected_query) do - "SELECT COUNT(DISTINCT \"merge_requests\".\"author_id\") FROM \"merge_requests\"" \ - " WHERE \"merge_requests\".\"created_at\" BETWEEN '#{start}' AND '#{finish}'" - end - - before do - user = create(:user) - user2 = create(:user) - - create(:merge_request, created_at: 1.year.ago, author: user) - create(:merge_request, created_at: 1.week.ago, author: user2) - create(:merge_request, created_at: 1.week.ago, author: user2) - end - - it_behaves_like 'a correct instrumented metric value and query', { time_frame: '28d' } -end diff --git a/spec/requests/api/graphql/mutations/work_items/update_spec.rb b/spec/requests/api/graphql/mutations/work_items/update_spec.rb index c71c2ae6c39..14cb18d04b8 100644 --- a/spec/requests/api/graphql/mutations/work_items/update_spec.rb +++ b/spec/requests/api/graphql/mutations/work_items/update_spec.rb @@ -632,7 +632,7 @@ RSpec.describe 'Update a work item', feature_category: :team_planning do end context 'when unsupported widget input is sent' do - let_it_be(:test_case) { create(:work_item_type, :default, :test_case, name: 'some_test_case_name') } + let_it_be(:test_case) { create(:work_item_type, :default, :test_case) } let_it_be(:work_item) { create(:work_item, work_item_type: test_case, project: project) } let(:input) do @@ -642,7 +642,7 @@ RSpec.describe 'Update a work item', feature_category: :team_planning do end it_behaves_like 'a mutation that returns top-level errors', - errors: ["Following widget keys are not supported by some_test_case_name type: [:hierarchy_widget]"] + errors: ["Following widget keys are not supported by Test Case type: [:hierarchy_widget]"] end end end diff --git a/spec/requests/api/tags_spec.rb b/spec/requests/api/tags_spec.rb index 0ba0b718ad0..b02c7135b7b 100644 --- a/spec/requests/api/tags_spec.rb +++ b/spec/requests/api/tags_spec.rb @@ -479,4 +479,60 @@ RSpec.describe API::Tags, feature_category: :source_code_management do end end end + + describe 'GET /projects/:id/repository/tags/:tag_name/signature' do + let_it_be(:project) { create(:project, :repository, :public) } + let(:project_id) { project.id } + let(:route) { "/projects/#{project_id}/repository/tags/#{tag_name}/signature" } + + context 'when tag does not exist' do + let(:tag_name) { 'unknown' } + + it_behaves_like '404 response' do + let(:request) { get api(route, current_user) } + let(:message) { '404 Tag Not Found' } + end + end + + context 'unsigned tag' do + let(:tag_name) { 'v1.1.0' } + + it_behaves_like '404 response' do + let(:request) { get api(route, current_user) } + let(:message) { '404 Signature Not Found' } + end + end + + context 'x509 signed tag' do + let(:tag_name) { 'v1.1.1' } + let(:tag) { project.repository.find_tag(tag_name) } + let(:signature) { tag.signature } + let(:x509_certificate) { signature.x509_certificate } + let(:x509_issuer) { x509_certificate.x509_issuer } + + it 'returns correct JSON' do + get api(route, current_user) + + expect(response).to have_gitlab_http_status(:ok) + expect(json_response).to eq( + 'signature_type' => 'X509', + 'verification_status' => signature.verification_status.to_s, + 'x509_certificate' => { + 'id' => x509_certificate.id, + 'subject' => x509_certificate.subject, + 'subject_key_identifier' => x509_certificate.subject_key_identifier, + 'email' => x509_certificate.email, + 'serial_number' => x509_certificate.serial_number, + 'certificate_status' => x509_certificate.certificate_status, + 'x509_issuer' => { + 'id' => x509_issuer.id, + 'subject' => x509_issuer.subject, + 'subject_key_identifier' => x509_issuer.subject_key_identifier, + 'crl_url' => x509_issuer.crl_url + } + } + ) + end + end + end end diff --git a/spec/requests/groups/observability_controller_spec.rb b/spec/requests/groups/observability_controller_spec.rb index 70ebe2d22e8..46690d60539 100644 --- a/spec/requests/groups/observability_controller_spec.rb +++ b/spec/requests/groups/observability_controller_spec.rb @@ -73,21 +73,21 @@ RSpec.describe Groups::ObservabilityController, feature_category: :tracing do describe 'GET #dashboards' do let(:path) { group_observability_dashboards_path(group) } - let(:expected_observability_path) { "#{observability_url}/#{group.id}/" } + let(:expected_observability_path) { "#{observability_url}/-/#{group.id}/" } it_behaves_like 'observability route request' end describe 'GET #manage' do let(:path) { group_observability_manage_path(group) } - let(:expected_observability_path) { "#{observability_url}/#{group.id}/dashboards" } + let(:expected_observability_path) { "#{observability_url}/-/#{group.id}/dashboards" } it_behaves_like 'observability route request' end describe 'GET #explore' do let(:path) { group_observability_explore_path(group) } - let(:expected_observability_path) { "#{observability_url}/#{group.id}/explore" } + let(:expected_observability_path) { "#{observability_url}/-/#{group.id}/explore" } it_behaves_like 'observability route request' end diff --git a/spec/services/incident_management/timeline_events/create_service_spec.rb b/spec/services/incident_management/timeline_events/create_service_spec.rb index b10862a78b5..a3810879c65 100644 --- a/spec/services/incident_management/timeline_events/create_service_spec.rb +++ b/spec/services/incident_management/timeline_events/create_service_spec.rb @@ -55,6 +55,15 @@ RSpec.describe IncidentManagement::TimelineEvents::CreateService do end it_behaves_like 'an incident management tracked event', :incident_management_timeline_event_created + + it_behaves_like 'Snowplow event tracking with RedisHLL context' do + let(:feature_flag_name) { :route_hll_to_snowplow_phase2 } + let(:namespace) { project.namespace.reload } + let(:category) { described_class.to_s } + let(:user) { current_user } + let(:action) { 'incident_management_timeline_event_created' } + let(:label) { 'redis_hll_counters.incident_management.incident_management_total_unique_counts_monthly' } + end end subject(:execute) { service.execute } @@ -276,6 +285,15 @@ RSpec.describe IncidentManagement::TimelineEvents::CreateService do it_behaves_like 'an incident management tracked event', :incident_management_timeline_event_created + it_behaves_like 'Snowplow event tracking with RedisHLL context' do + let(:feature_flag_name) { :route_hll_to_snowplow_phase2 } + let(:namespace) { project.namespace.reload } + let(:category) { described_class.to_s } + let(:user) { current_user } + let(:action) { 'incident_management_timeline_event_created' } + let(:label) { 'redis_hll_counters.incident_management.incident_management_total_unique_counts_monthly' } + end + it 'successfully creates a database record', :aggregate_failures do expect { execute }.to change { ::IncidentManagement::TimelineEvent.count }.by(1) end diff --git a/spec/services/incident_management/timeline_events/destroy_service_spec.rb b/spec/services/incident_management/timeline_events/destroy_service_spec.rb index e1b258960ae..f90ff72a2bf 100644 --- a/spec/services/incident_management/timeline_events/destroy_service_spec.rb +++ b/spec/services/incident_management/timeline_events/destroy_service_spec.rb @@ -65,6 +65,15 @@ RSpec.describe IncidentManagement::TimelineEvents::DestroyService do end it_behaves_like 'an incident management tracked event', :incident_management_timeline_event_deleted + + it_behaves_like 'Snowplow event tracking with RedisHLL context' do + let(:feature_flag_name) { :route_hll_to_snowplow_phase2 } + let(:namespace) { project.namespace.reload } + let(:category) { described_class.to_s } + let(:user) { current_user } + let(:action) { 'incident_management_timeline_event_deleted' } + let(:label) { 'redis_hll_counters.incident_management.incident_management_total_unique_counts_monthly' } + end end end end diff --git a/spec/services/incident_management/timeline_events/update_service_spec.rb b/spec/services/incident_management/timeline_events/update_service_spec.rb index 8ccc6ded6d0..076ba059114 100644 --- a/spec/services/incident_management/timeline_events/update_service_spec.rb +++ b/spec/services/incident_management/timeline_events/update_service_spec.rb @@ -48,6 +48,14 @@ RSpec.describe IncidentManagement::TimelineEvents::UpdateService do end it_behaves_like 'an incident management tracked event', :incident_management_timeline_event_edited + + it_behaves_like 'Snowplow event tracking with RedisHLL context' do + let(:feature_flag_name) { :route_hll_to_snowplow_phase2 } + let(:namespace) { project.namespace.reload } + let(:category) { described_class.to_s } + let(:action) { 'incident_management_timeline_event_edited' } + let(:label) { 'redis_hll_counters.incident_management.incident_management_total_unique_counts_monthly' } + end end shared_examples 'error response' do |message| diff --git a/spec/services/issue_links/create_service_spec.rb b/spec/services/issue_links/create_service_spec.rb index 9cb5980716a..88e8470658d 100644 --- a/spec/services/issue_links/create_service_spec.rb +++ b/spec/services/issue_links/create_service_spec.rb @@ -41,6 +41,14 @@ RSpec.describe IssueLinks::CreateService do it_behaves_like 'an incident management tracked event', :incident_management_incident_relate do let(:current_user) { user } end + + it_behaves_like 'Snowplow event tracking with RedisHLL context' do + let(:feature_flag_name) { :route_hll_to_snowplow_phase2 } + let(:namespace) { issue.namespace } + let(:category) { described_class.to_s } + let(:action) { 'incident_management_incident_relate' } + let(:label) { 'redis_hll_counters.incident_management.incident_management_total_unique_counts_monthly' } + end end end end diff --git a/spec/services/issue_links/destroy_service_spec.rb b/spec/services/issue_links/destroy_service_spec.rb index a478a2c1448..ecb53b5cd31 100644 --- a/spec/services/issue_links/destroy_service_spec.rb +++ b/spec/services/issue_links/destroy_service_spec.rb @@ -25,6 +25,14 @@ RSpec.describe IssueLinks::DestroyService do it_behaves_like 'an incident management tracked event', :incident_management_incident_unrelate do let(:current_user) { user } end + + it_behaves_like 'Snowplow event tracking with RedisHLL context' do + let(:feature_flag_name) { :route_hll_to_snowplow_phase2 } + let(:namespace) { issue_b.namespace } + let(:category) { described_class.to_s } + let(:action) { 'incident_management_incident_unrelate' } + let(:label) { 'redis_hll_counters.incident_management.incident_management_total_unique_counts_monthly' } + end end end end diff --git a/spec/services/issues/close_service_spec.rb b/spec/services/issues/close_service_spec.rb index dcb17c95f3b..8e5717090b4 100644 --- a/spec/services/issues/close_service_spec.rb +++ b/spec/services/issues/close_service_spec.rb @@ -99,6 +99,14 @@ RSpec.describe Issues::CloseService do it_behaves_like 'an incident management tracked event', :incident_management_incident_closed + it_behaves_like 'Snowplow event tracking with RedisHLL context' do + let(:feature_flag_name) { :route_hll_to_snowplow_phase2 } + let(:namespace) { issue.namespace } + let(:category) { described_class.to_s } + let(:action) { 'incident_management_incident_closed' } + let(:label) { 'redis_hll_counters.incident_management.incident_management_total_unique_counts_monthly' } + end + it 'creates a new escalation resolved escalation status', :aggregate_failures do expect { service.execute(issue) }.to change { IncidentManagement::IssuableEscalationStatus.where(issue: issue).count }.by(1) diff --git a/spec/services/issues/create_service_spec.rb b/spec/services/issues/create_service_spec.rb index 7b51f9db8cd..7ab2046b6be 100644 --- a/spec/services/issues/create_service_spec.rb +++ b/spec/services/issues/create_service_spec.rb @@ -9,21 +9,22 @@ RSpec.describe Issues::CreateService do let_it_be_with_reload(:project) { create(:project, :public, group: group) } let_it_be(:user) { create(:user) } + let(:opts) { { title: 'title' } } let(:spam_params) { double } + let(:service) { described_class.new(project: project, current_user: user, params: opts, spam_params: spam_params) } it_behaves_like 'rate limited service' do let(:key) { :issues_create } let(:key_scope) { %i[project current_user external_author] } let(:application_limit_key) { :issues_create_limit } let(:created_model) { Issue } - let(:service) { described_class.new(project: project, current_user: user, params: { title: 'title' }, spam_params: double) } end describe '#execute' do let_it_be(:assignee) { create(:user) } let_it_be(:milestone) { create(:milestone, project: project) } - let(:result) { described_class.new(project: project, current_user: user, params: opts, spam_params: spam_params).execute } + let(:result) { service.execute } let(:issue) { result[:issue] } before do @@ -54,6 +55,7 @@ RSpec.describe Issues::CreateService do let(:opts) do { title: 'Awesome issue', + issue_type: :task, description: 'please fix', assignee_ids: [assignee.id], label_ids: labels.map(&:id), @@ -118,10 +120,26 @@ RSpec.describe Issues::CreateService do expect(issue.labels).to match_array(labels) expect(issue.milestone).to eq(milestone) expect(issue.due_date).to eq(Date.tomorrow) - expect(issue.work_item_type.base_type).to eq('issue') + expect(issue.work_item_type.base_type).to eq('task') expect(issue.issue_customer_relations_contacts).to be_empty end + context 'when the work item type is not allowed to create' do + before do + allow_next_instance_of(::Issues::BuildService) do |instance| + allow(instance).to receive(:create_issue_type_allowed?).twice.and_return(false) + end + end + + it 'ignores the type and creates default issue' do + expect(result).to be_success + expect(issue).to be_persisted + expect(issue).to be_a(::Issue) + expect(issue.work_item_type.base_type).to eq('issue') + expect(issue.issue_type).to eq('issue') + end + end + it 'calls NewIssueWorker with correct arguments' do expect(NewIssueWorker).to receive(:perform_async).with(Integer, user.id, 'Issue') diff --git a/spec/services/issues/reopen_service_spec.rb b/spec/services/issues/reopen_service_spec.rb index 6013826f9b1..529b3ff266b 100644 --- a/spec/services/issues/reopen_service_spec.rb +++ b/spec/services/issues/reopen_service_spec.rb @@ -74,6 +74,14 @@ RSpec.describe Issues::ReopenService do it_behaves_like 'an incident management tracked event', :incident_management_incident_reopened + it_behaves_like 'Snowplow event tracking with RedisHLL context' do + let(:feature_flag_name) { :route_hll_to_snowplow_phase2 } + let(:namespace) { issue.namespace } + let(:category) { described_class.to_s } + let(:action) { 'incident_management_incident_reopened' } + let(:label) { 'redis_hll_counters.incident_management.incident_management_total_unique_counts_monthly' } + end + it 'creates a timeline event' do expect(IncidentManagement::TimelineEvents::CreateService) .to receive(:reopen_incident) diff --git a/spec/services/issues/update_service_spec.rb b/spec/services/issues/update_service_spec.rb index f1ee62fd589..70fc6ffc38f 100644 --- a/spec/services/issues/update_service_spec.rb +++ b/spec/services/issues/update_service_spec.rb @@ -60,7 +60,7 @@ RSpec.describe Issues::UpdateService, :mailer do description: 'Also please fix', assignee_ids: [user2.id], state_event: 'close', - label_ids: [label.id], + label_ids: [label&.id], due_date: Date.tomorrow, discussion_locked: true, severity: 'low', @@ -189,6 +189,27 @@ RSpec.describe Issues::UpdateService, :mailer do subject { update_issue(confidential: true) } it_behaves_like 'an incident management tracked event', :incident_management_incident_change_confidential + + it_behaves_like 'Snowplow event tracking with RedisHLL context' do + let(:feature_flag_name) { :route_hll_to_snowplow_phase2 } + let(:namespace) { issue.namespace } + let(:category) { described_class.to_s } + let(:label) { 'redis_hll_counters.incident_management.incident_management_total_unique_counts_monthly' } + let(:action) { 'incident_management_incident_change_confidential' } + let(:opts) do + { + title: 'New title', + description: 'Also please fix', + assignee_ids: [user2.id], + state_event: 'close', + due_date: Date.tomorrow, + discussion_locked: true, + severity: 'low', + milestone_id: milestone.id, + add_contacts: [contact.email] + } + end + end end end @@ -673,6 +694,14 @@ RSpec.describe Issues::UpdateService, :mailer do let(:current_user) { user } it_behaves_like 'an incident management tracked event', :incident_management_incident_assigned + + it_behaves_like 'Snowplow event tracking with RedisHLL context' do + let(:feature_flag_name) { :route_hll_to_snowplow_phase2 } + let(:namespace) { issue.namespace } + let(:category) { described_class.to_s } + let(:label) { 'redis_hll_counters.incident_management.incident_management_total_unique_counts_monthly' } + let(:action) { "incident_management_incident_assigned" } + end end end diff --git a/spec/services/issues/zoom_link_service_spec.rb b/spec/services/issues/zoom_link_service_spec.rb index d662d9fa978..ad1f91ab5e6 100644 --- a/spec/services/issues/zoom_link_service_spec.rb +++ b/spec/services/issues/zoom_link_service_spec.rb @@ -95,6 +95,14 @@ RSpec.describe Issues::ZoomLinkService do let(:current_user) { user } it_behaves_like 'an incident management tracked event', :incident_management_incident_zoom_meeting + + it_behaves_like 'Snowplow event tracking with RedisHLL context' do + let(:feature_flag_name) { :route_hll_to_snowplow_phase2 } + let(:namespace) { issue.namespace } + let(:category) { described_class.to_s } + let(:action) { 'incident_management_incident_zoom_meeting' } + let(:label) { 'redis_hll_counters.incident_management.incident_management_total_unique_counts_monthly' } + end end context 'with insufficient issue update permissions' do diff --git a/spec/services/notes/create_service_spec.rb b/spec/services/notes/create_service_spec.rb index 4922e72b7a4..2f1c5a5b0f3 100644 --- a/spec/services/notes/create_service_spec.rb +++ b/spec/services/notes/create_service_spec.rb @@ -102,6 +102,14 @@ RSpec.describe Notes::CreateService do it_behaves_like 'an incident management tracked event', :incident_management_incident_comment do let(:current_user) { user } end + + it_behaves_like 'Snowplow event tracking with RedisHLL context' do + let(:feature_flag_name) { :route_hll_to_snowplow_phase2 } + let(:namespace) { issue.namespace } + let(:category) { described_class.to_s } + let(:action) { 'incident_management_incident_comment' } + let(:label) { 'redis_hll_counters.incident_management.incident_management_total_unique_counts_monthly' } + end end describe 'event tracking', :snowplow do diff --git a/spec/services/packages/debian/process_package_file_service_spec.rb b/spec/services/packages/debian/process_package_file_service_spec.rb index f3d6cdee7b4..571861f42cf 100644 --- a/spec/services/packages/debian/process_package_file_service_spec.rb +++ b/spec/services/packages/debian/process_package_file_service_spec.rb @@ -109,7 +109,8 @@ RSpec.describe Packages::Debian::ProcessPackageFileService do end context 'with already processed package file' do - let!(:package_file) { create(:debian_package_file) } + let_it_be(:package_file) { create(:debian_package_file) } + let(:component_name) { 'main' } it 'raise ArgumentError', :aggregate_failures do diff --git a/spec/services/todo_service_spec.rb b/spec/services/todo_service_spec.rb index 56440d7b5f5..c4ed34a693e 100644 --- a/spec/services/todo_service_spec.rb +++ b/spec/services/todo_service_spec.rb @@ -209,6 +209,15 @@ RSpec.describe TodoService do it_behaves_like 'an incident management tracked event', :incident_management_incident_todo do let(:current_user) { john_doe } end + + it_behaves_like 'Snowplow event tracking with RedisHLL context' do + let(:feature_flag_name) { :route_hll_to_snowplow_phase2 } + let(:namespace) { project.namespace } + let(:category) { described_class.to_s } + let(:action) { 'incident_management_incident_todo' } + let(:label) { 'redis_hll_counters.incident_management.incident_management_total_unique_counts_monthly' } + let(:user) { john_doe } + end end end @@ -1251,6 +1260,19 @@ RSpec.describe TodoService do end describe '#create_member_access_request' do + context 'snowplow event tracking' do + it 'does not track snowplow event when todos are for access request for project', :snowplow do + user = create(:user) + project = create(:project) + requester = create(:project_member, project: project, user: assignee) + project.add_owner(user) + + expect_no_snowplow_event + + service.create_member_access_request(requester) + end + end + context 'when the group has more than 10 owners' do it 'creates todos for 10 recently active group owners' do group = create(:group, :public) diff --git a/spec/workers/packages/debian/process_package_file_worker_spec.rb b/spec/workers/packages/debian/process_package_file_worker_spec.rb new file mode 100644 index 00000000000..532bfb096a3 --- /dev/null +++ b/spec/workers/packages/debian/process_package_file_worker_spec.rb @@ -0,0 +1,138 @@ +# frozen_string_literal: true + +require 'spec_helper' + +RSpec.describe Packages::Debian::ProcessPackageFileWorker, type: :worker, feature_category: :package_registry do + let_it_be(:user) { create(:user) } + let_it_be_with_reload(:distribution) { create(:debian_project_distribution, :with_file, codename: 'unstable') } + + let(:incoming) { create(:debian_incoming, project: distribution.project) } + let(:distribution_name) { distribution.codename } + let(:worker) { described_class.new } + + describe '#perform' do + let(:package_file_id) { package_file.id } + let(:user_id) { user.id } + + subject { worker.perform(package_file_id, user_id, distribution_name, component_name) } + + shared_examples 'returns early without error' do + it 'returns early without error' do + expect(Gitlab::ErrorTracking).not_to receive(:log_exception) + expect(::Packages::Debian::ProcessPackageFileService).not_to receive(:new) + + subject + end + end + + using RSpec::Parameterized::TableSyntax + + where(:case_name, :expected_file_type, :file_name, :component_name) do + 'with a deb' | 'deb' | 'libsample0_1.2.3~alpha2_amd64.deb' | 'main' + 'with an udeb' | 'udeb' | 'sample-udeb_1.2.3~alpha2_amd64.udeb' | 'contrib' + end + + with_them do + context 'with Debian package file' do + let(:package_file) { incoming.package_files.with_file_name(file_name).first } + + context 'with mocked service' do + it 'calls ProcessPackageFileService' do + expect(Gitlab::ErrorTracking).not_to receive(:log_exception) + expect_next_instance_of(::Packages::Debian::ProcessPackageFileService) do |service| + expect(service).to receive(:execute) + .with(no_args) + end + + subject + end + end + + context 'with non existing user' do + let(:user_id) { non_existing_record_id } + + it_behaves_like 'returns early without error' + end + + context 'with nil user id' do + let(:user_id) { nil } + + it_behaves_like 'returns early without error' + end + + context 'when the service raises an error' do + let(:package_file) { incoming.package_files.with_file_name('sample_1.2.3~alpha2.tar.xz').first } + + it 'removes package file', :aggregate_failures do + expect(Gitlab::ErrorTracking).to receive(:log_exception).with( + instance_of(ArgumentError), + package_file_id: package_file_id, + user_id: user_id, + distribution_name: distribution_name, + component_name: component_name + ) + expect { subject } + .to not_change(Packages::Package, :count) + .and change { Packages::PackageFile.count }.by(-1) + .and change { incoming.package_files.count }.from(7).to(6) + + expect { package_file.reload }.to raise_error(ActiveRecord::RecordNotFound) + end + end + + it_behaves_like 'an idempotent worker' do + let(:job_args) { [package_file.id, user.id, distribution_name, component_name] } + + it 'sets the Debian file type as deb', :aggregate_failures do + expect(Gitlab::ErrorTracking).not_to receive(:log_exception) + + # Using subject inside this block will process the job multiple times + expect { subject } + .to change { Packages::Package.count }.from(1).to(2) + .and not_change(Packages::PackageFile, :count) + .and change { incoming.package_files.count }.from(7).to(6) + .and change { + package_file&.debian_file_metadatum&.reload&.file_type + }.from('unknown').to(expected_file_type) + + created_package = Packages::Package.last + expect(created_package.name).to eq 'sample' + expect(created_package.version).to eq '1.2.3~alpha2' + expect(created_package.creator).to eq user + end + end + end + end + + context 'with already processed package file' do + let_it_be(:package_file) { create(:debian_package_file) } + + let(:component_name) { 'main' } + + it_behaves_like 'returns early without error' + end + + context 'with a deb' do + let(:package_file) { incoming.package_files.with_file_name('libsample0_1.2.3~alpha2_amd64.deb').first } + let(:component_name) { 'main' } + + context 'with FIPS mode enabled', :fips_mode do + it 'raises an error' do + expect { subject }.to raise_error(::Packages::FIPS::DisabledError) + end + end + + context 'with non existing package file' do + let(:package_file_id) { non_existing_record_id } + + it_behaves_like 'returns early without error' + end + + context 'with nil package file id' do + let(:package_file_id) { nil } + + it_behaves_like 'returns early without error' + end + end + end +end diff --git a/workhorse/internal/upload/rewrite.go b/workhorse/internal/upload/rewrite.go index 7b9ac6b996e..ad9623f569c 100644 --- a/workhorse/internal/upload/rewrite.go +++ b/workhorse/internal/upload/rewrite.go @@ -67,11 +67,8 @@ func rewriteFormFilesFromMultipart(r *http.Request, writer *multipart.Writer, fi // Create multipart reader reader, err := r.MultipartReader() if err != nil { - if err == http.ErrNotMultipart { - // We want to be able to recognize http.ErrNotMultipart elsewhere so no fmt.Errorf - return http.ErrNotMultipart - } - return fmt.Errorf("get multipart reader: %v", err) + // We want to be able to recognize these errors elsewhere so no fmt.Errorf + return err } multipartUploadRequests.WithLabelValues(filter.Name()).Inc() diff --git a/workhorse/internal/upload/uploads.go b/workhorse/internal/upload/uploads.go index f214e1ac297..32e51fea9e5 100644 --- a/workhorse/internal/upload/uploads.go +++ b/workhorse/internal/upload/uploads.go @@ -51,7 +51,7 @@ func interceptMultipartFiles(w http.ResponseWriter, r *http.Request, h http.Hand err := rewriteFormFilesFromMultipart(r, writer, filter, fa, p) if err != nil { switch err { - case ErrInjectedClientParam: + case ErrInjectedClientParam, http.ErrMissingBoundary: helper.CaptureAndFail(w, r, err, "Bad Request", http.StatusBadRequest) case ErrTooManyFilesUploaded: helper.CaptureAndFail(w, r, err, err.Error(), http.StatusBadRequest) diff --git a/workhorse/internal/upload/uploads_test.go b/workhorse/internal/upload/uploads_test.go index 3655e9fc8c9..cc786079e36 100644 --- a/workhorse/internal/upload/uploads_test.go +++ b/workhorse/internal/upload/uploads_test.go @@ -352,6 +352,18 @@ func TestInvalidFileNames(t *testing.T) { } } +func TestBadMultipartHeader(t *testing.T) { + httpRequest, err := http.NewRequest("POST", "/example", bytes.NewReader(nil)) + require.NoError(t, err) + + // Invalid header: missing boundary + httpRequest.Header.Set("Content-Type", "multipart/form-data") + + response := httptest.NewRecorder() + testInterceptMultipartFiles(t, response, httpRequest, nilHandler, &SavedFileTracker{Request: httpRequest}) + require.Equal(t, 400, response.Code) +} + func TestContentDispositionRewrite(t *testing.T) { testhelper.ConfigureSecret()