Commit 25f0847f authored by Peter Leitzen's avatar Peter Leitzen

Merge branch '227202-create-gitlab-issue-from-pagerduty-incident-part-2' into 'master'

Create GitLab issues from PagerDuty webhook payload (Part 2)

See merge request gitlab-org/gitlab!36603
parents e89b0d15 72b83885
...@@ -11,11 +11,7 @@ module Projects ...@@ -11,11 +11,7 @@ module Projects
prepend_before_action :project_without_auth prepend_before_action :project_without_auth
def create def create
result = ServiceResponse.success(http_status: :accepted) result = webhook_processor.execute(params[:token])
unless Feature.enabled?(:pagerduty_webhook, @project)
result = ServiceResponse.error(message: 'Unauthorized', http_status: :unauthorized)
end
head result.http_status head result.http_status
end end
...@@ -26,6 +22,14 @@ module Projects ...@@ -26,6 +22,14 @@ module Projects
@project ||= Project @project ||= Project
.find_by_full_path("#{params[:namespace_id]}/#{params[:project_id]}") .find_by_full_path("#{params[:namespace_id]}/#{params[:project_id]}")
end end
def webhook_processor
::IncidentManagement::PagerDuty::ProcessWebhookService.new(project, nil, payload)
end
def payload
@payload ||= params.permit![:pager_duty_incident].to_h
end
end end
end end
end end
...@@ -12,7 +12,7 @@ module IncidentManagement ...@@ -12,7 +12,7 @@ module IncidentManagement
attr_encrypted :pagerduty_token, attr_encrypted :pagerduty_token,
mode: :per_attribute_iv, mode: :per_attribute_iv,
key: Settings.attr_encrypted_db_key_base_truncated, key: ::Settings.attr_encrypted_db_key_base_truncated,
algorithm: 'aes-256-gcm', algorithm: 'aes-256-gcm',
encode: false, # No need to encode for binary column https://github.com/attr-encrypted/attr_encrypted#the-encode-encode_iv-encode_salt-and-default_encoding-options encode: false, # No need to encode for binary column https://github.com/attr-encrypted/attr_encrypted#the-encode-encode_iv-encode_salt-and-default_encoding-options
encode_iv: false encode_iv: false
......
# frozen_string_literal: true
module IncidentManagement
module PagerDuty
class ProcessWebhookService < BaseService
include Gitlab::Utils::StrongMemoize
include IncidentManagement::Settings
# https://developer.pagerduty.com/docs/webhooks/webhook-behavior/#size-limit
PAGER_DUTY_PAYLOAD_SIZE_LIMIT = 55.kilobytes
# https://developer.pagerduty.com/docs/webhooks/v2-overview/#webhook-types
PAGER_DUTY_PROCESSABLE_EVENT_TYPES = %w(incident.trigger).freeze
def execute(token)
return forbidden unless webhook_setting_active?
return unauthorized unless valid_token?(token)
return bad_request unless valid_payload_size?
process_incidents
accepted
end
private
def process_incidents
pager_duty_processable_events.each do |event|
::IncidentManagement::PagerDuty::ProcessIncidentWorker.perform_async(project.id, event['incident'])
end
end
def pager_duty_processable_events
strong_memoize(:pager_duty_processable_events) do
::PagerDuty::WebhookPayloadParser
.call(params.to_h)
.filter { |msg| msg['event'].in?(PAGER_DUTY_PROCESSABLE_EVENT_TYPES) }
end
end
def webhook_setting_active?
Feature.enabled?(:pagerduty_webhook, project) &&
incident_management_setting.pagerduty_active?
end
def valid_token?(token)
token && incident_management_setting.pagerduty_token == token
end
def valid_payload_size?
Gitlab::Utils::DeepSize.new(params, max_size: PAGER_DUTY_PAYLOAD_SIZE_LIMIT).valid?
end
def accepted
ServiceResponse.success(http_status: :accepted)
end
def forbidden
ServiceResponse.error(message: 'Forbidden', http_status: :forbidden)
end
def unauthorized
ServiceResponse.error(message: 'Unauthorized', http_status: :unauthorized)
end
def bad_request
ServiceResponse.error(message: 'Bad Request', http_status: :bad_request)
end
end
end
end
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
--- ---
- :name: authorized_project_update:authorized_project_update_project_create - :name: authorized_project_update:authorized_project_update_project_create
:feature_category: :authentication_and_authorization :feature_category: :authentication_and_authorization
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
...@@ -13,7 +13,7 @@ ...@@ -13,7 +13,7 @@
:tags: [] :tags: []
- :name: authorized_project_update:authorized_project_update_project_group_link_create - :name: authorized_project_update:authorized_project_update_project_group_link_create
:feature_category: :authentication_and_authorization :feature_category: :authentication_and_authorization
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
...@@ -21,7 +21,7 @@ ...@@ -21,7 +21,7 @@
:tags: [] :tags: []
- :name: authorized_project_update:authorized_project_update_user_refresh_over_user_range - :name: authorized_project_update:authorized_project_update_user_refresh_over_user_range
:feature_category: :authentication_and_authorization :feature_category: :authentication_and_authorization
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
...@@ -29,7 +29,7 @@ ...@@ -29,7 +29,7 @@
:tags: [] :tags: []
- :name: authorized_project_update:authorized_project_update_user_refresh_with_low_urgency - :name: authorized_project_update:authorized_project_update_user_refresh_with_low_urgency
:feature_category: :authentication_and_authorization :feature_category: :authentication_and_authorization
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
...@@ -37,87 +37,87 @@ ...@@ -37,87 +37,87 @@
:tags: [] :tags: []
- :name: auto_devops:auto_devops_disable - :name: auto_devops:auto_devops_disable
:feature_category: :auto_devops :feature_category: :auto_devops
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 2 :weight: 2
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: auto_merge:auto_merge_process - :name: auto_merge:auto_merge_process
:feature_category: :continuous_delivery :feature_category: :continuous_delivery
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :cpu :resource_boundary: :cpu
:weight: 3 :weight: 3
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: chaos:chaos_cpu_spin - :name: chaos:chaos_cpu_spin
:feature_category: :not_owned :feature_category: :not_owned
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 2 :weight: 2
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: chaos:chaos_db_spin - :name: chaos:chaos_db_spin
:feature_category: :not_owned :feature_category: :not_owned
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 2 :weight: 2
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: chaos:chaos_kill - :name: chaos:chaos_kill
:feature_category: :not_owned :feature_category: :not_owned
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 2 :weight: 2
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: chaos:chaos_leak_mem - :name: chaos:chaos_leak_mem
:feature_category: :not_owned :feature_category: :not_owned
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 2 :weight: 2
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: chaos:chaos_sleep - :name: chaos:chaos_sleep
:feature_category: :not_owned :feature_category: :not_owned
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 2 :weight: 2
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: container_repository:cleanup_container_repository - :name: container_repository:cleanup_container_repository
:feature_category: :container_registry :feature_category: :container_registry
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: container_repository:delete_container_repository - :name: container_repository:delete_container_repository
:feature_category: :container_registry :feature_category: :container_registry
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: cronjob:admin_email - :name: cronjob:admin_email
:feature_category: :source_code_management :feature_category: :source_code_management
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: cronjob:authorized_project_update_periodic_recalculate - :name: cronjob:authorized_project_update_periodic_recalculate
:feature_category: :source_code_management :feature_category: :source_code_management
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
...@@ -125,79 +125,79 @@ ...@@ -125,79 +125,79 @@
:tags: [] :tags: []
- :name: cronjob:ci_archive_traces_cron - :name: cronjob:ci_archive_traces_cron
:feature_category: :continuous_integration :feature_category: :continuous_integration
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: cronjob:container_expiration_policy - :name: cronjob:container_expiration_policy
:feature_category: :container_registry :feature_category: :container_registry
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: cronjob:environments_auto_stop_cron - :name: cronjob:environments_auto_stop_cron
:feature_category: :continuous_delivery :feature_category: :continuous_delivery
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: cronjob:expire_build_artifacts - :name: cronjob:expire_build_artifacts
:feature_category: :continuous_integration :feature_category: :continuous_integration
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: cronjob:gitlab_usage_ping - :name: cronjob:gitlab_usage_ping
:feature_category: :collection :feature_category: :collection
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: cronjob:import_export_project_cleanup - :name: cronjob:import_export_project_cleanup
:feature_category: :importers :feature_category: :importers
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: cronjob:import_stuck_project_import_jobs - :name: cronjob:import_stuck_project_import_jobs
:feature_category: :importers :feature_category: :importers
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :cpu :resource_boundary: :cpu
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: cronjob:issue_due_scheduler - :name: cronjob:issue_due_scheduler
:feature_category: :issue_tracking :feature_category: :issue_tracking
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: cronjob:jira_import_stuck_jira_import_jobs - :name: cronjob:jira_import_stuck_jira_import_jobs
:feature_category: :importers :feature_category: :importers
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :cpu :resource_boundary: :cpu
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: cronjob:metrics_dashboard_schedule_annotations_prune - :name: cronjob:metrics_dashboard_schedule_annotations_prune
:feature_category: :metrics :feature_category: :metrics
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
...@@ -205,39 +205,39 @@ ...@@ -205,39 +205,39 @@
:tags: [] :tags: []
- :name: cronjob:namespaces_prune_aggregation_schedules - :name: cronjob:namespaces_prune_aggregation_schedules
:feature_category: :source_code_management :feature_category: :source_code_management
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :cpu :resource_boundary: :cpu
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: cronjob:pages_domain_removal_cron - :name: cronjob:pages_domain_removal_cron
:feature_category: :pages :feature_category: :pages
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :cpu :resource_boundary: :cpu
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: cronjob:pages_domain_ssl_renewal_cron - :name: cronjob:pages_domain_ssl_renewal_cron
:feature_category: :pages :feature_category: :pages
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: cronjob:pages_domain_verification_cron - :name: cronjob:pages_domain_verification_cron
:feature_category: :pages :feature_category: :pages
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: cronjob:partition_creation - :name: cronjob:partition_creation
:feature_category: :database :feature_category: :database
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
...@@ -245,127 +245,127 @@ ...@@ -245,127 +245,127 @@
:tags: [] :tags: []
- :name: cronjob:personal_access_tokens_expiring - :name: cronjob:personal_access_tokens_expiring
:feature_category: :authentication_and_authorization :feature_category: :authentication_and_authorization
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: cronjob:pipeline_schedule - :name: cronjob:pipeline_schedule
:feature_category: :continuous_integration :feature_category: :continuous_integration
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :cpu :resource_boundary: :cpu
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: cronjob:prune_old_events - :name: cronjob:prune_old_events
:feature_category: :users :feature_category: :users
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: cronjob:prune_web_hook_logs - :name: cronjob:prune_web_hook_logs
:feature_category: :integrations :feature_category: :integrations
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: cronjob:remove_expired_group_links - :name: cronjob:remove_expired_group_links
:feature_category: :authentication_and_authorization :feature_category: :authentication_and_authorization
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: cronjob:remove_expired_members - :name: cronjob:remove_expired_members
:feature_category: :authentication_and_authorization :feature_category: :authentication_and_authorization
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :cpu :resource_boundary: :cpu
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: cronjob:remove_unreferenced_lfs_objects - :name: cronjob:remove_unreferenced_lfs_objects
:feature_category: :git_lfs :feature_category: :git_lfs
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: cronjob:repository_archive_cache - :name: cronjob:repository_archive_cache
:feature_category: :source_code_management :feature_category: :source_code_management
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: cronjob:repository_check_dispatch - :name: cronjob:repository_check_dispatch
:feature_category: :source_code_management :feature_category: :source_code_management
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: cronjob:requests_profiles - :name: cronjob:requests_profiles
:feature_category: :source_code_management :feature_category: :source_code_management
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: cronjob:schedule_migrate_external_diffs - :name: cronjob:schedule_migrate_external_diffs
:feature_category: :source_code_management :feature_category: :source_code_management
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: cronjob:stuck_ci_jobs - :name: cronjob:stuck_ci_jobs
:feature_category: :continuous_integration :feature_category: :continuous_integration
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :cpu :resource_boundary: :cpu
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: cronjob:stuck_export_jobs - :name: cronjob:stuck_export_jobs
:feature_category: :importers :feature_category: :importers
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :cpu :resource_boundary: :cpu
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: cronjob:stuck_merge_jobs - :name: cronjob:stuck_merge_jobs
:feature_category: :source_code_management :feature_category: :source_code_management
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: cronjob:trending_projects - :name: cronjob:trending_projects
:feature_category: :source_code_management :feature_category: :source_code_management
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: cronjob:update_container_registry_info - :name: cronjob:update_container_registry_info
:feature_category: :container_registry :feature_category: :container_registry
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
...@@ -373,11 +373,11 @@ ...@@ -373,11 +373,11 @@
:tags: [] :tags: []
- :name: cronjob:users_create_statistics - :name: cronjob:users_create_statistics
:feature_category: :users :feature_category: :users
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: cronjob:x509_issuer_crl_check - :name: cronjob:x509_issuer_crl_check
:feature_category: :source_code_management :feature_category: :source_code_management
...@@ -389,27 +389,27 @@ ...@@ -389,27 +389,27 @@
:tags: [] :tags: []
- :name: deployment:deployments_finished - :name: deployment:deployments_finished
:feature_category: :continuous_delivery :feature_category: :continuous_delivery
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :cpu :resource_boundary: :cpu
:weight: 3 :weight: 3
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: deployment:deployments_forward_deployment - :name: deployment:deployments_forward_deployment
:feature_category: :continuous_delivery :feature_category: :continuous_delivery
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 3 :weight: 3
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: deployment:deployments_success - :name: deployment:deployments_success
:feature_category: :continuous_delivery :feature_category: :continuous_delivery
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :cpu :resource_boundary: :cpu
:weight: 3 :weight: 3
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: gcp_cluster:cluster_configure_istio - :name: gcp_cluster:cluster_configure_istio
:feature_category: :kubernetes_management :feature_category: :kubernetes_management
...@@ -417,7 +417,7 @@ ...@@ -417,7 +417,7 @@
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: gcp_cluster:cluster_install_app - :name: gcp_cluster:cluster_install_app
:feature_category: :kubernetes_management :feature_category: :kubernetes_management
...@@ -425,7 +425,7 @@ ...@@ -425,7 +425,7 @@
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: gcp_cluster:cluster_patch_app - :name: gcp_cluster:cluster_patch_app
:feature_category: :kubernetes_management :feature_category: :kubernetes_management
...@@ -433,7 +433,7 @@ ...@@ -433,7 +433,7 @@
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: gcp_cluster:cluster_provision - :name: gcp_cluster:cluster_provision
:feature_category: :kubernetes_management :feature_category: :kubernetes_management
...@@ -441,15 +441,15 @@ ...@@ -441,15 +441,15 @@
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: gcp_cluster:cluster_update_app - :name: gcp_cluster:cluster_update_app
:feature_category: :kubernetes_management :feature_category: :kubernetes_management
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: gcp_cluster:cluster_upgrade_app - :name: gcp_cluster:cluster_upgrade_app
:feature_category: :kubernetes_management :feature_category: :kubernetes_management
...@@ -457,7 +457,7 @@ ...@@ -457,7 +457,7 @@
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: gcp_cluster:cluster_wait_for_app_installation - :name: gcp_cluster:cluster_wait_for_app_installation
:feature_category: :kubernetes_management :feature_category: :kubernetes_management
...@@ -465,15 +465,15 @@ ...@@ -465,15 +465,15 @@
:urgency: :low :urgency: :low
:resource_boundary: :cpu :resource_boundary: :cpu
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: gcp_cluster:cluster_wait_for_app_update - :name: gcp_cluster:cluster_wait_for_app_update
:feature_category: :kubernetes_management :feature_category: :kubernetes_management
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: gcp_cluster:cluster_wait_for_ingress_ip_address - :name: gcp_cluster:cluster_wait_for_ingress_ip_address
:feature_category: :kubernetes_management :feature_category: :kubernetes_management
...@@ -481,23 +481,23 @@ ...@@ -481,23 +481,23 @@
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: gcp_cluster:clusters_applications_activate_service - :name: gcp_cluster:clusters_applications_activate_service
:feature_category: :kubernetes_management :feature_category: :kubernetes_management
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: gcp_cluster:clusters_applications_deactivate_service - :name: gcp_cluster:clusters_applications_deactivate_service
:feature_category: :kubernetes_management :feature_category: :kubernetes_management
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: gcp_cluster:clusters_applications_uninstall - :name: gcp_cluster:clusters_applications_uninstall
:feature_category: :kubernetes_management :feature_category: :kubernetes_management
...@@ -505,7 +505,7 @@ ...@@ -505,7 +505,7 @@
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: gcp_cluster:clusters_applications_wait_for_uninstall_app - :name: gcp_cluster:clusters_applications_wait_for_uninstall_app
:feature_category: :kubernetes_management :feature_category: :kubernetes_management
...@@ -513,7 +513,7 @@ ...@@ -513,7 +513,7 @@
:urgency: :low :urgency: :low
:resource_boundary: :cpu :resource_boundary: :cpu
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: gcp_cluster:clusters_cleanup_app - :name: gcp_cluster:clusters_cleanup_app
:feature_category: :kubernetes_management :feature_category: :kubernetes_management
...@@ -521,7 +521,7 @@ ...@@ -521,7 +521,7 @@
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: gcp_cluster:clusters_cleanup_project_namespace - :name: gcp_cluster:clusters_cleanup_project_namespace
:feature_category: :kubernetes_management :feature_category: :kubernetes_management
...@@ -529,7 +529,7 @@ ...@@ -529,7 +529,7 @@
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: gcp_cluster:clusters_cleanup_service_account - :name: gcp_cluster:clusters_cleanup_service_account
:feature_category: :kubernetes_management :feature_category: :kubernetes_management
...@@ -537,7 +537,7 @@ ...@@ -537,7 +537,7 @@
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: gcp_cluster:wait_for_cluster_creation - :name: gcp_cluster:wait_for_cluster_creation
:feature_category: :kubernetes_management :feature_category: :kubernetes_management
...@@ -545,7 +545,7 @@ ...@@ -545,7 +545,7 @@
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: github_importer:github_import_import_diff_note - :name: github_importer:github_import_import_diff_note
:feature_category: :importers :feature_category: :importers
...@@ -553,7 +553,7 @@ ...@@ -553,7 +553,7 @@
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: github_importer:github_import_import_issue - :name: github_importer:github_import_import_issue
:feature_category: :importers :feature_category: :importers
...@@ -561,7 +561,7 @@ ...@@ -561,7 +561,7 @@
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: github_importer:github_import_import_lfs_object - :name: github_importer:github_import_import_lfs_object
:feature_category: :importers :feature_category: :importers
...@@ -569,7 +569,7 @@ ...@@ -569,7 +569,7 @@
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: github_importer:github_import_import_note - :name: github_importer:github_import_import_note
:feature_category: :importers :feature_category: :importers
...@@ -577,7 +577,7 @@ ...@@ -577,7 +577,7 @@
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: github_importer:github_import_import_pull_request - :name: github_importer:github_import_import_pull_request
:feature_category: :importers :feature_category: :importers
...@@ -585,103 +585,103 @@ ...@@ -585,103 +585,103 @@
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: github_importer:github_import_refresh_import_jid - :name: github_importer:github_import_refresh_import_jid
:feature_category: :importers :feature_category: :importers
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: github_importer:github_import_stage_finish_import - :name: github_importer:github_import_stage_finish_import
:feature_category: :importers :feature_category: :importers
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: github_importer:github_import_stage_import_base_data - :name: github_importer:github_import_stage_import_base_data
:feature_category: :importers :feature_category: :importers
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: github_importer:github_import_stage_import_issues_and_diff_notes - :name: github_importer:github_import_stage_import_issues_and_diff_notes
:feature_category: :importers :feature_category: :importers
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: github_importer:github_import_stage_import_lfs_objects - :name: github_importer:github_import_stage_import_lfs_objects
:feature_category: :importers :feature_category: :importers
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: github_importer:github_import_stage_import_notes - :name: github_importer:github_import_stage_import_notes
:feature_category: :importers :feature_category: :importers
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: github_importer:github_import_stage_import_pull_requests - :name: github_importer:github_import_stage_import_pull_requests
:feature_category: :importers :feature_category: :importers
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: github_importer:github_import_stage_import_repository - :name: github_importer:github_import_stage_import_repository
:feature_category: :importers :feature_category: :importers
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: hashed_storage:hashed_storage_migrator - :name: hashed_storage:hashed_storage_migrator
:feature_category: :source_code_management :feature_category: :source_code_management
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: hashed_storage:hashed_storage_project_migrate - :name: hashed_storage:hashed_storage_project_migrate
:feature_category: :source_code_management :feature_category: :source_code_management
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: hashed_storage:hashed_storage_project_rollback - :name: hashed_storage:hashed_storage_project_rollback
:feature_category: :source_code_management :feature_category: :source_code_management
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: hashed_storage:hashed_storage_rollbacker - :name: hashed_storage:hashed_storage_rollbacker
:feature_category: :source_code_management :feature_category: :source_code_management
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: incident_management:clusters_applications_check_prometheus_health - :name: incident_management:clusters_applications_check_prometheus_health
:feature_category: :incident_management :feature_category: :incident_management
...@@ -701,159 +701,159 @@ ...@@ -701,159 +701,159 @@
:tags: [] :tags: []
- :name: incident_management:incident_management_process_alert - :name: incident_management:incident_management_process_alert
:feature_category: :incident_management :feature_category: :incident_management
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 2 :weight: 2
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: incident_management:incident_management_process_prometheus_alert - :name: incident_management:incident_management_process_prometheus_alert
:feature_category: :incident_management :feature_category: :incident_management
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :cpu :resource_boundary: :cpu
:weight: 2 :weight: 2
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: jira_importer:jira_import_advance_stage - :name: jira_importer:jira_import_advance_stage
:feature_category: :importers :feature_category: :importers
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: jira_importer:jira_import_import_issue - :name: jira_importer:jira_import_import_issue
:feature_category: :importers :feature_category: :importers
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: jira_importer:jira_import_stage_finish_import - :name: jira_importer:jira_import_stage_finish_import
:feature_category: :importers :feature_category: :importers
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: jira_importer:jira_import_stage_import_attachments - :name: jira_importer:jira_import_stage_import_attachments
:feature_category: :importers :feature_category: :importers
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: jira_importer:jira_import_stage_import_issues - :name: jira_importer:jira_import_stage_import_issues
:feature_category: :importers :feature_category: :importers
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: jira_importer:jira_import_stage_import_labels - :name: jira_importer:jira_import_stage_import_labels
:feature_category: :importers :feature_category: :importers
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: jira_importer:jira_import_stage_import_notes - :name: jira_importer:jira_import_stage_import_notes
:feature_category: :importers :feature_category: :importers
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: jira_importer:jira_import_stage_start_import - :name: jira_importer:jira_import_stage_start_import
:feature_category: :importers :feature_category: :importers
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: mail_scheduler:mail_scheduler_issue_due - :name: mail_scheduler:mail_scheduler_issue_due
:feature_category: :issue_tracking :feature_category: :issue_tracking
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 2 :weight: 2
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: mail_scheduler:mail_scheduler_notification_service - :name: mail_scheduler:mail_scheduler_notification_service
:feature_category: :issue_tracking :feature_category: :issue_tracking
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :cpu :resource_boundary: :cpu
:weight: 2 :weight: 2
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: object_pool:object_pool_create - :name: object_pool:object_pool_create
:feature_category: :gitaly :feature_category: :gitaly
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: object_pool:object_pool_destroy - :name: object_pool:object_pool_destroy
:feature_category: :gitaly :feature_category: :gitaly
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: object_pool:object_pool_join - :name: object_pool:object_pool_join
:feature_category: :gitaly :feature_category: :gitaly
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :cpu :resource_boundary: :cpu
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: object_pool:object_pool_schedule_join - :name: object_pool:object_pool_schedule_join
:feature_category: :gitaly :feature_category: :gitaly
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: object_storage:object_storage_background_move - :name: object_storage:object_storage_background_move
:feature_category: :not_owned :feature_category: :not_owned
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: object_storage:object_storage_migrate_uploads - :name: object_storage:object_storage_migrate_uploads
:feature_category: :not_owned :feature_category: :not_owned
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: pipeline_background:archive_trace - :name: pipeline_background:archive_trace
:feature_category: :continuous_integration :feature_category: :continuous_integration
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: pipeline_background:ci_build_report_result - :name: pipeline_background:ci_build_report_result
:feature_category: :continuous_integration :feature_category: :continuous_integration
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
...@@ -861,15 +861,15 @@ ...@@ -861,15 +861,15 @@
:tags: [] :tags: []
- :name: pipeline_background:ci_build_trace_chunk_flush - :name: pipeline_background:ci_build_trace_chunk_flush
:feature_category: :continuous_integration :feature_category: :continuous_integration
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: pipeline_background:ci_daily_build_group_report_results - :name: pipeline_background:ci_daily_build_group_report_results
:feature_category: :continuous_integration :feature_category: :continuous_integration
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
...@@ -893,7 +893,7 @@ ...@@ -893,7 +893,7 @@
:tags: [] :tags: []
- :name: pipeline_cache:expire_job_cache - :name: pipeline_cache:expire_job_cache
:feature_category: :continuous_integration :feature_category: :continuous_integration
:has_external_dependencies: :has_external_dependencies:
:urgency: :high :urgency: :high
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 3 :weight: 3
...@@ -901,7 +901,7 @@ ...@@ -901,7 +901,7 @@
:tags: [] :tags: []
- :name: pipeline_cache:expire_pipeline_cache - :name: pipeline_cache:expire_pipeline_cache
:feature_category: :continuous_integration :feature_category: :continuous_integration
:has_external_dependencies: :has_external_dependencies:
:urgency: :high :urgency: :high
:resource_boundary: :cpu :resource_boundary: :cpu
:weight: 3 :weight: 3
...@@ -909,152 +909,152 @@ ...@@ -909,152 +909,152 @@
:tags: [] :tags: []
- :name: pipeline_creation:create_pipeline - :name: pipeline_creation:create_pipeline
:feature_category: :continuous_integration :feature_category: :continuous_integration
:has_external_dependencies: :has_external_dependencies:
:urgency: :high :urgency: :high
:resource_boundary: :cpu :resource_boundary: :cpu
:weight: 4 :weight: 4
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: pipeline_creation:run_pipeline_schedule - :name: pipeline_creation:run_pipeline_schedule
:feature_category: :continuous_integration :feature_category: :continuous_integration
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 4 :weight: 4
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: pipeline_default:build_coverage - :name: pipeline_default:build_coverage
:feature_category: :continuous_integration :feature_category: :continuous_integration
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 3 :weight: 3
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: pipeline_default:build_trace_sections - :name: pipeline_default:build_trace_sections
:feature_category: :continuous_integration :feature_category: :continuous_integration
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 3 :weight: 3
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: pipeline_default:ci_create_cross_project_pipeline - :name: pipeline_default:ci_create_cross_project_pipeline
:feature_category: :continuous_integration :feature_category: :continuous_integration
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :cpu :resource_boundary: :cpu
:weight: 3 :weight: 3
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: pipeline_default:ci_pipeline_bridge_status - :name: pipeline_default:ci_pipeline_bridge_status
:feature_category: :continuous_integration :feature_category: :continuous_integration
:has_external_dependencies: :has_external_dependencies:
:urgency: :high :urgency: :high
:resource_boundary: :cpu :resource_boundary: :cpu
:weight: 3 :weight: 3
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: pipeline_default:pipeline_metrics - :name: pipeline_default:pipeline_metrics
:feature_category: :continuous_integration :feature_category: :continuous_integration
:has_external_dependencies: :has_external_dependencies:
:urgency: :high :urgency: :high
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 3 :weight: 3
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: pipeline_default:pipeline_notification - :name: pipeline_default:pipeline_notification
:feature_category: :continuous_integration :feature_category: :continuous_integration
:has_external_dependencies: :has_external_dependencies:
:urgency: :high :urgency: :high
:resource_boundary: :cpu :resource_boundary: :cpu
:weight: 3 :weight: 3
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: pipeline_default:pipeline_update_ci_ref_status - :name: pipeline_default:pipeline_update_ci_ref_status
:feature_category: :continuous_integration :feature_category: :continuous_integration
:has_external_dependencies: :has_external_dependencies:
:urgency: :high :urgency: :high
:resource_boundary: :cpu :resource_boundary: :cpu
:weight: 3 :weight: 3
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: pipeline_hooks:build_hooks - :name: pipeline_hooks:build_hooks
:feature_category: :continuous_integration :feature_category: :continuous_integration
:has_external_dependencies: :has_external_dependencies:
:urgency: :high :urgency: :high
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 2 :weight: 2
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: pipeline_hooks:pipeline_hooks - :name: pipeline_hooks:pipeline_hooks
:feature_category: :continuous_integration :feature_category: :continuous_integration
:has_external_dependencies: :has_external_dependencies:
:urgency: :high :urgency: :high
:resource_boundary: :cpu :resource_boundary: :cpu
:weight: 2 :weight: 2
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: pipeline_processing:build_finished - :name: pipeline_processing:build_finished
:feature_category: :continuous_integration :feature_category: :continuous_integration
:has_external_dependencies: :has_external_dependencies:
:urgency: :high :urgency: :high
:resource_boundary: :cpu :resource_boundary: :cpu
:weight: 5 :weight: 5
:idempotent: :idempotent:
:tags: :tags:
- :requires_disk_io - :requires_disk_io
- :name: pipeline_processing:build_queue - :name: pipeline_processing:build_queue
:feature_category: :continuous_integration :feature_category: :continuous_integration
:has_external_dependencies: :has_external_dependencies:
:urgency: :high :urgency: :high
:resource_boundary: :cpu :resource_boundary: :cpu
:weight: 5 :weight: 5
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: pipeline_processing:build_success - :name: pipeline_processing:build_success
:feature_category: :continuous_integration :feature_category: :continuous_integration
:has_external_dependencies: :has_external_dependencies:
:urgency: :high :urgency: :high
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 5 :weight: 5
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: pipeline_processing:ci_build_prepare - :name: pipeline_processing:ci_build_prepare
:feature_category: :continuous_integration :feature_category: :continuous_integration
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 5 :weight: 5
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: pipeline_processing:ci_build_schedule - :name: pipeline_processing:ci_build_schedule
:feature_category: :continuous_integration :feature_category: :continuous_integration
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :cpu :resource_boundary: :cpu
:weight: 5 :weight: 5
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: pipeline_processing:ci_resource_groups_assign_resource_from_resource_group - :name: pipeline_processing:ci_resource_groups_assign_resource_from_resource_group
:feature_category: :continuous_delivery :feature_category: :continuous_delivery
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 5 :weight: 5
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: pipeline_processing:pipeline_process - :name: pipeline_processing:pipeline_process
:feature_category: :continuous_integration :feature_category: :continuous_integration
:has_external_dependencies: :has_external_dependencies:
:urgency: :high :urgency: :high
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 5 :weight: 5
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: pipeline_processing:pipeline_update - :name: pipeline_processing:pipeline_update
:feature_category: :continuous_integration :feature_category: :continuous_integration
:has_external_dependencies: :has_external_dependencies:
:urgency: :high :urgency: :high
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 5 :weight: 5
...@@ -1062,7 +1062,7 @@ ...@@ -1062,7 +1062,7 @@
:tags: [] :tags: []
- :name: pipeline_processing:stage_update - :name: pipeline_processing:stage_update
:feature_category: :continuous_integration :feature_category: :continuous_integration
:has_external_dependencies: :has_external_dependencies:
:urgency: :high :urgency: :high
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 5 :weight: 5
...@@ -1070,7 +1070,7 @@ ...@@ -1070,7 +1070,7 @@
:tags: [] :tags: []
- :name: pipeline_processing:update_head_pipeline_for_merge_request - :name: pipeline_processing:update_head_pipeline_for_merge_request
:feature_category: :continuous_integration :feature_category: :continuous_integration
:has_external_dependencies: :has_external_dependencies:
:urgency: :high :urgency: :high
:resource_boundary: :cpu :resource_boundary: :cpu
:weight: 5 :weight: 5
...@@ -1078,71 +1078,71 @@ ...@@ -1078,71 +1078,71 @@
:tags: [] :tags: []
- :name: repository_check:repository_check_batch - :name: repository_check:repository_check_batch
:feature_category: :source_code_management :feature_category: :source_code_management
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: repository_check:repository_check_clear - :name: repository_check:repository_check_clear
:feature_category: :source_code_management :feature_category: :source_code_management
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: repository_check:repository_check_single_repository - :name: repository_check:repository_check_single_repository
:feature_category: :source_code_management :feature_category: :source_code_management
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: todos_destroyer:todos_destroyer_confidential_issue - :name: todos_destroyer:todos_destroyer_confidential_issue
:feature_category: :issue_tracking :feature_category: :issue_tracking
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: todos_destroyer:todos_destroyer_entity_leave - :name: todos_destroyer:todos_destroyer_entity_leave
:feature_category: :issue_tracking :feature_category: :issue_tracking
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: todos_destroyer:todos_destroyer_group_private - :name: todos_destroyer:todos_destroyer_group_private
:feature_category: :issue_tracking :feature_category: :issue_tracking
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: todos_destroyer:todos_destroyer_private_features - :name: todos_destroyer:todos_destroyer_private_features
:feature_category: :issue_tracking :feature_category: :issue_tracking
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: todos_destroyer:todos_destroyer_project_private - :name: todos_destroyer:todos_destroyer_project_private
:feature_category: :issue_tracking :feature_category: :issue_tracking
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: unassign_issuables:members_destroyer_unassign_issuables - :name: unassign_issuables:members_destroyer_unassign_issuables
:feature_category: :authentication_and_authorization :feature_category: :authentication_and_authorization
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
...@@ -1150,7 +1150,7 @@ ...@@ -1150,7 +1150,7 @@
:tags: [] :tags: []
- :name: update_namespace_statistics:namespaces_root_statistics - :name: update_namespace_statistics:namespaces_root_statistics
:feature_category: :source_code_management :feature_category: :source_code_management
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
...@@ -1158,7 +1158,7 @@ ...@@ -1158,7 +1158,7 @@
:tags: [] :tags: []
- :name: update_namespace_statistics:namespaces_schedule_aggregation - :name: update_namespace_statistics:namespaces_schedule_aggregation
:feature_category: :source_code_management :feature_category: :source_code_management
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
...@@ -1166,7 +1166,7 @@ ...@@ -1166,7 +1166,7 @@
:tags: [] :tags: []
- :name: authorized_keys - :name: authorized_keys
:feature_category: :source_code_management :feature_category: :source_code_management
:has_external_dependencies: :has_external_dependencies:
:urgency: :high :urgency: :high
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 2 :weight: 2
...@@ -1174,7 +1174,7 @@ ...@@ -1174,7 +1174,7 @@
:tags: [] :tags: []
- :name: authorized_projects - :name: authorized_projects
:feature_category: :authentication_and_authorization :feature_category: :authentication_and_authorization
:has_external_dependencies: :has_external_dependencies:
:urgency: :high :urgency: :high
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 2 :weight: 2
...@@ -1182,11 +1182,11 @@ ...@@ -1182,11 +1182,11 @@
:tags: [] :tags: []
- :name: background_migration - :name: background_migration
:feature_category: :database :feature_category: :database
:has_external_dependencies: :has_external_dependencies:
:urgency: :throttled :urgency: :throttled
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: chat_notification - :name: chat_notification
:feature_category: :chatops :feature_category: :chatops
...@@ -1194,11 +1194,11 @@ ...@@ -1194,11 +1194,11 @@
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 2 :weight: 2
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: create_commit_signature - :name: create_commit_signature
:feature_category: :source_code_management :feature_category: :source_code_management
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 2 :weight: 2
...@@ -1206,91 +1206,91 @@ ...@@ -1206,91 +1206,91 @@
:tags: [] :tags: []
- :name: create_evidence - :name: create_evidence
:feature_category: :release_evidence :feature_category: :release_evidence
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 2 :weight: 2
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: create_note_diff_file - :name: create_note_diff_file
:feature_category: :source_code_management :feature_category: :source_code_management
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: default - :name: default
:feature_category: :feature_category:
:has_external_dependencies: :has_external_dependencies:
:urgency: :urgency:
:resource_boundary: :resource_boundary:
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: delete_diff_files - :name: delete_diff_files
:feature_category: :source_code_management :feature_category: :source_code_management
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: delete_merged_branches - :name: delete_merged_branches
:feature_category: :source_code_management :feature_category: :source_code_management
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: delete_stored_files - :name: delete_stored_files
:feature_category: :not_owned :feature_category: :not_owned
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: delete_user - :name: delete_user
:feature_category: :authentication_and_authorization :feature_category: :authentication_and_authorization
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: design_management_new_version - :name: design_management_new_version
:feature_category: :design_management :feature_category: :design_management
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :memory :resource_boundary: :memory
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: detect_repository_languages - :name: detect_repository_languages
:feature_category: :source_code_management :feature_category: :source_code_management
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: email_receiver - :name: email_receiver
:feature_category: :issue_tracking :feature_category: :issue_tracking
:has_external_dependencies: :has_external_dependencies:
:urgency: :high :urgency: :high
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 2 :weight: 2
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: emails_on_push - :name: emails_on_push
:feature_category: :source_code_management :feature_category: :source_code_management
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :cpu :resource_boundary: :cpu
:weight: 2 :weight: 2
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: error_tracking_issue_link - :name: error_tracking_issue_link
:feature_category: :error_tracking :feature_category: :error_tracking
...@@ -1298,23 +1298,23 @@ ...@@ -1298,23 +1298,23 @@
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: expire_build_instance_artifacts - :name: expire_build_instance_artifacts
:feature_category: :continuous_integration :feature_category: :continuous_integration
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: export_csv - :name: export_csv
:feature_category: :issue_tracking :feature_category: :issue_tracking
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :cpu :resource_boundary: :cpu
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: external_service_reactive_caching - :name: external_service_reactive_caching
:feature_category: :not_owned :feature_category: :not_owned
...@@ -1322,107 +1322,107 @@ ...@@ -1322,107 +1322,107 @@
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: file_hook - :name: file_hook
:feature_category: :integrations :feature_category: :integrations
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: git_garbage_collect - :name: git_garbage_collect
:feature_category: :gitaly :feature_category: :gitaly
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: github_import_advance_stage - :name: github_import_advance_stage
:feature_category: :importers :feature_category: :importers
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: gitlab_shell - :name: gitlab_shell
:feature_category: :source_code_management :feature_category: :source_code_management
:has_external_dependencies: :has_external_dependencies:
:urgency: :high :urgency: :high
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 2 :weight: 2
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: group_destroy - :name: group_destroy
:feature_category: :subgroups :feature_category: :subgroups
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: group_export - :name: group_export
:feature_category: :importers :feature_category: :importers
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: group_import - :name: group_import
:feature_category: :importers :feature_category: :importers
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: import_issues_csv - :name: import_issues_csv
:feature_category: :issue_tracking :feature_category: :issue_tracking
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :cpu :resource_boundary: :cpu
:weight: 2 :weight: 2
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: invalid_gpg_signature_update - :name: invalid_gpg_signature_update
:feature_category: :source_code_management :feature_category: :source_code_management
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 2 :weight: 2
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: irker - :name: irker
:feature_category: :integrations :feature_category: :integrations
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: mailers - :name: mailers
:feature_category: :feature_category:
:has_external_dependencies: :has_external_dependencies:
:urgency: :urgency:
:resource_boundary: :resource_boundary:
:weight: 2 :weight: 2
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: merge - :name: merge
:feature_category: :source_code_management :feature_category: :source_code_management
:has_external_dependencies: :has_external_dependencies:
:urgency: :high :urgency: :high
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 5 :weight: 5
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: merge_request_mergeability_check - :name: merge_request_mergeability_check
:feature_category: :source_code_management :feature_category: :source_code_management
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
...@@ -1430,7 +1430,7 @@ ...@@ -1430,7 +1430,7 @@
:tags: [] :tags: []
- :name: metrics_dashboard_prune_old_annotations - :name: metrics_dashboard_prune_old_annotations
:feature_category: :metrics :feature_category: :metrics
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
...@@ -1438,87 +1438,87 @@ ...@@ -1438,87 +1438,87 @@
:tags: [] :tags: []
- :name: migrate_external_diffs - :name: migrate_external_diffs
:feature_category: :source_code_management :feature_category: :source_code_management
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: namespaceless_project_destroy - :name: namespaceless_project_destroy
:feature_category: :authentication_and_authorization :feature_category: :authentication_and_authorization
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: new_issue - :name: new_issue
:feature_category: :issue_tracking :feature_category: :issue_tracking
:has_external_dependencies: :has_external_dependencies:
:urgency: :high :urgency: :high
:resource_boundary: :cpu :resource_boundary: :cpu
:weight: 2 :weight: 2
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: new_merge_request - :name: new_merge_request
:feature_category: :source_code_management :feature_category: :source_code_management
:has_external_dependencies: :has_external_dependencies:
:urgency: :high :urgency: :high
:resource_boundary: :cpu :resource_boundary: :cpu
:weight: 2 :weight: 2
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: new_note - :name: new_note
:feature_category: :issue_tracking :feature_category: :issue_tracking
:has_external_dependencies: :has_external_dependencies:
:urgency: :high :urgency: :high
:resource_boundary: :cpu :resource_boundary: :cpu
:weight: 2 :weight: 2
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: pages - :name: pages
:feature_category: :pages :feature_category: :pages
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: pages_domain_ssl_renewal - :name: pages_domain_ssl_renewal
:feature_category: :pages :feature_category: :pages
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: pages_domain_verification - :name: pages_domain_verification
:feature_category: :pages :feature_category: :pages
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: phabricator_import_import_tasks - :name: phabricator_import_import_tasks
:feature_category: :importers :feature_category: :importers
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: post_receive - :name: post_receive
:feature_category: :source_code_management :feature_category: :source_code_management
:has_external_dependencies: :has_external_dependencies:
:urgency: :high :urgency: :high
:resource_boundary: :cpu :resource_boundary: :cpu
:weight: 5 :weight: 5
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: process_commit - :name: process_commit
:feature_category: :source_code_management :feature_category: :source_code_management
:has_external_dependencies: :has_external_dependencies:
:urgency: :high :urgency: :high
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 3 :weight: 3
...@@ -1526,35 +1526,35 @@ ...@@ -1526,35 +1526,35 @@
:tags: [] :tags: []
- :name: project_cache - :name: project_cache
:feature_category: :source_code_management :feature_category: :source_code_management
:has_external_dependencies: :has_external_dependencies:
:urgency: :high :urgency: :high
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: project_daily_statistics - :name: project_daily_statistics
:feature_category: :source_code_management :feature_category: :source_code_management
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: project_destroy - :name: project_destroy
:feature_category: :source_code_management :feature_category: :source_code_management
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: project_export - :name: project_export
:feature_category: :importers :feature_category: :importers
:has_external_dependencies: :has_external_dependencies:
:urgency: :throttled :urgency: :throttled
:resource_boundary: :memory :resource_boundary: :memory
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: project_service - :name: project_service
:feature_category: :integrations :feature_category: :integrations
...@@ -1562,11 +1562,11 @@ ...@@ -1562,11 +1562,11 @@
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: project_update_repository_storage - :name: project_update_repository_storage
:feature_category: :gitaly :feature_category: :gitaly
:has_external_dependencies: :has_external_dependencies:
:urgency: :throttled :urgency: :throttled
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
...@@ -1574,7 +1574,7 @@ ...@@ -1574,7 +1574,7 @@
:tags: [] :tags: []
- :name: prometheus_create_default_alerts - :name: prometheus_create_default_alerts
:feature_category: :incident_management :feature_category: :incident_management
:has_external_dependencies: :has_external_dependencies:
:urgency: :high :urgency: :high
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
...@@ -1582,7 +1582,7 @@ ...@@ -1582,7 +1582,7 @@
:tags: [] :tags: []
- :name: propagate_integration - :name: propagate_integration
:feature_category: :integrations :feature_category: :integrations
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
...@@ -1590,51 +1590,51 @@ ...@@ -1590,51 +1590,51 @@
:tags: [] :tags: []
- :name: propagate_service_template - :name: propagate_service_template
:feature_category: :source_code_management :feature_category: :source_code_management
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: reactive_caching - :name: reactive_caching
:feature_category: :not_owned :feature_category: :not_owned
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :cpu :resource_boundary: :cpu
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: rebase - :name: rebase
:feature_category: :source_code_management :feature_category: :source_code_management
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 2 :weight: 2
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: remote_mirror_notification - :name: remote_mirror_notification
:feature_category: :source_code_management :feature_category: :source_code_management
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 2 :weight: 2
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: repository_cleanup - :name: repository_cleanup
:feature_category: :source_code_management :feature_category: :source_code_management
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: repository_fork - :name: repository_fork
:feature_category: :source_code_management :feature_category: :source_code_management
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: repository_import - :name: repository_import
:feature_category: :importers :feature_category: :importers
...@@ -1642,15 +1642,15 @@ ...@@ -1642,15 +1642,15 @@
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: repository_remove_remote - :name: repository_remove_remote
:feature_category: :source_code_management :feature_category: :source_code_management
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: repository_update_remote_mirror - :name: repository_update_remote_mirror
:feature_category: :source_code_management :feature_category: :source_code_management
...@@ -1658,23 +1658,23 @@ ...@@ -1658,23 +1658,23 @@
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: self_monitoring_project_create - :name: self_monitoring_project_create
:feature_category: :metrics :feature_category: :metrics
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 2 :weight: 2
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: self_monitoring_project_delete - :name: self_monitoring_project_delete
:feature_category: :metrics :feature_category: :metrics
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 2 :weight: 2
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: service_desk_email_receiver - :name: service_desk_email_receiver
:feature_category: :issue_tracking :feature_category: :issue_tracking
...@@ -1686,23 +1686,23 @@ ...@@ -1686,23 +1686,23 @@
:tags: [] :tags: []
- :name: system_hook_push - :name: system_hook_push
:feature_category: :source_code_management :feature_category: :source_code_management
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: update_external_pull_requests - :name: update_external_pull_requests
:feature_category: :source_code_management :feature_category: :source_code_management
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 3 :weight: 3
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: update_highest_role - :name: update_highest_role
:feature_category: :authentication_and_authorization :feature_category: :authentication_and_authorization
:has_external_dependencies: :has_external_dependencies:
:urgency: :high :urgency: :high
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 2 :weight: 2
...@@ -1710,27 +1710,27 @@ ...@@ -1710,27 +1710,27 @@
:tags: [] :tags: []
- :name: update_merge_requests - :name: update_merge_requests
:feature_category: :source_code_management :feature_category: :source_code_management
:has_external_dependencies: :has_external_dependencies:
:urgency: :high :urgency: :high
:resource_boundary: :cpu :resource_boundary: :cpu
:weight: 3 :weight: 3
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: update_project_statistics - :name: update_project_statistics
:feature_category: :source_code_management :feature_category: :source_code_management
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: upload_checksum - :name: upload_checksum
:feature_category: :geo_replication :feature_category: :geo_replication
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: web_hook - :name: web_hook
:feature_category: :integrations :feature_category: :integrations
...@@ -1738,11 +1738,11 @@ ...@@ -1738,11 +1738,11 @@
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: [] :tags: []
- :name: x509_certificate_revoke - :name: x509_certificate_revoke
:feature_category: :source_code_management :feature_category: :source_code_management
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
......
...@@ -189,7 +189,7 @@ ...@@ -189,7 +189,7 @@
:tags: [] :tags: []
- :name: cronjob:iterations_update_status - :name: cronjob:iterations_update_status
:feature_category: :issue_tracking :feature_category: :issue_tracking
:has_external_dependencies: :has_external_dependencies:
:urgency: :low :urgency: :low
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
......
# frozen_string_literal: true
require 'spec_helper'
RSpec.describe Projects::IncidentManagement::PagerDutyIncidentsController do
let_it_be(:project) { create(:project) }
describe 'POST #create' do
let(:payload) { { messages: [] } }
def make_request
post :create, params: project_params, body: payload.to_json, as: :json
end
context 'when pagerduty_webhook feature enabled' do
before do
stub_feature_flags(pagerduty_webhook: project)
end
it 'responds with 202 Accepted' do
make_request
expect(response).to have_gitlab_http_status(:accepted)
end
end
context 'when pagerduty_webhook feature disabled' do
before do
stub_feature_flags(pagerduty_webhook: false)
end
it 'responds with 401 Unauthorized' do
make_request
expect(response).to have_gitlab_http_status(:unauthorized)
end
end
end
private
def project_params(opts = {})
opts.reverse_merge(namespace_id: project.namespace, project_id: project)
end
end
# frozen_string_literal: true
require 'spec_helper'
RSpec.describe 'PagerDuty webhook' do
let_it_be(:project) { create(:project) }
describe 'POST /incidents/pagerduty' do
let(:payload) { Gitlab::Json.parse(fixture_file('pager_duty/webhook_incident_trigger.json')) }
let(:webhook_processor_class) { ::IncidentManagement::PagerDuty::ProcessWebhookService }
let(:webhook_processor) { instance_double(webhook_processor_class) }
def make_request
headers = { 'Content-Type' => 'application/json' }
post project_incidents_pagerduty_url(project, token: 'VALID-TOKEN'), params: payload.to_json, headers: headers
end
before do
allow(webhook_processor_class).to receive(:new).and_return(webhook_processor)
allow(webhook_processor).to receive(:execute).and_return(ServiceResponse.success(http_status: :accepted))
end
it 'calls PagerDuty webhook processor with correct parameters' do
make_request
expect(webhook_processor_class).to have_received(:new).with(project, nil, payload)
expect(webhook_processor).to have_received(:execute).with('VALID-TOKEN')
end
it 'responds with 202 Accepted' do
make_request
expect(response).to have_gitlab_http_status(:accepted)
end
end
end
# frozen_string_literal: true
require 'spec_helper'
RSpec.describe IncidentManagement::PagerDuty::ProcessWebhookService do
let_it_be(:project, reload: true) { create(:project) }
describe '#execute' do
shared_examples 'does not process incidents' do
it 'does not process incidents' do
expect(::IncidentManagement::PagerDuty::ProcessIncidentWorker).not_to receive(:perform_async)
execute
end
end
let(:webhook_payload) { Gitlab::Json.parse(fixture_file('pager_duty/webhook_incident_trigger.json')) }
let(:token) { nil }
subject(:execute) { described_class.new(project, nil, webhook_payload).execute(token) }
context 'when pagerduty_webhook feature is enabled' do
before do
stub_feature_flags(pagerduty_webhook: project)
end
context 'when PagerDuty webhook setting is active' do
let_it_be(:incident_management_setting) { create(:project_incident_management_setting, project: project, pagerduty_active: true) }
context 'when token is valid' do
let(:token) { incident_management_setting.pagerduty_token }
context 'when webhook payload has acceptable size' do
it 'responds with Accepted' do
result = execute
expect(result).to be_success
expect(result.http_status).to eq(:accepted)
end
it 'processes issues' do
incident_payload = ::PagerDuty::WebhookPayloadParser.call(webhook_payload).first['incident']
expect(::IncidentManagement::PagerDuty::ProcessIncidentWorker)
.to receive(:perform_async)
.with(project.id, incident_payload)
.once
execute
end
end
context 'when webhook payload is too big' do
let(:deep_size) { instance_double(Gitlab::Utils::DeepSize, valid?: false) }
before do
allow(Gitlab::Utils::DeepSize)
.to receive(:new)
.with(webhook_payload, max_size: described_class::PAGER_DUTY_PAYLOAD_SIZE_LIMIT)
.and_return(deep_size)
end
it 'responds with Bad Request' do
result = execute
expect(result).to be_error
expect(result.http_status).to eq(:bad_request)
end
it_behaves_like 'does not process incidents'
end
context 'when webhook payload is blank' do
let(:webhook_payload) { nil }
it 'responds with Accepted' do
result = execute
expect(result).to be_success
expect(result.http_status).to eq(:accepted)
end
it_behaves_like 'does not process incidents'
end
end
context 'when token is invalid' do
let(:token) { 'invalid-token' }
it 'responds with Unauthorized' do
result = execute
expect(result).to be_error
expect(result.http_status).to eq(:unauthorized)
end
it_behaves_like 'does not process incidents'
end
end
context 'when both tokens are nil' do
let_it_be(:incident_management_setting) { create(:project_incident_management_setting, project: project, pagerduty_active: false) }
let(:token) { nil }
before do
incident_management_setting.update_column(:pagerduty_active, true)
end
it 'responds with Unauthorized' do
result = execute
expect(result).to be_error
expect(result.http_status).to eq(:unauthorized)
end
it_behaves_like 'does not process incidents'
end
context 'when PagerDuty webhook setting is not active' do
let_it_be(:incident_management_setting) { create(:project_incident_management_setting, project: project, pagerduty_active: false) }
it 'responds with Forbidden' do
result = execute
expect(result).to be_error
expect(result.http_status).to eq(:forbidden)
end
it_behaves_like 'does not process incidents'
end
end
context 'when pagerduty_webhook feature is disabled' do
before do
stub_feature_flags(pagerduty_webhook: false)
end
it 'responds with Forbidden' do
result = execute
expect(result).to be_error
expect(result.http_status).to eq(:forbidden)
end
it_behaves_like 'does not process incidents'
end
end
end
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment