require 'active_support'
require 'active_support/core_ext/date'
require 'active_support/core_ext/date_time'
require 'active_support/core_ext/enumerable'
require 'active_support/core_ext/integer'
require 'active_support/core_ext/numeric'
require 'active_support/core_ext/object/blank'
require 'active_support/core_ext/string/indent'
require 'active_support/core_ext/string/inflections'
require 'active_support/inflector'
require 'cgi'
require 'colorize'
require 'cvss_suite'
require 'date'
require 'English'
require 'erb'
require 'etc'
require 'fileutils'
require 'forwardable'
require 'gitlab'
require 'graphql/client'
require 'http'
require 'json'
require 'open3'
require 'ostruct'
require 'parallel'
require 'rugged'
require 'semantic_logger'
require 'stringio'
require 'time'
require 'uri'
require 'yaml'

$LOAD_PATH.unshift(__dir__)

require 'release_tools/version'
require 'release_tools/product_milestone'
require 'release_tools/product_version'
require 'release_tools/project/base_project'
require 'release_tools/project/cells_tissue'
require 'release_tools/project/chat_ops'
require 'release_tools/project/cng_image'
require 'release_tools/project/gl_security/security_communications/communications'
require 'release_tools/project/cves'
require 'release_tools/project/deployer'
require 'release_tools/project/git'
require 'release_tools/project/gitaly'
require 'release_tools/project/gitlab_ce'
require 'release_tools/project/gitlab_ee'
require 'release_tools/project/gitlab_elasticsearch_indexer'
require 'release_tools/project/gitlab_operator'
require 'release_tools/project/gitlab_pages'
require 'release_tools/project/gitlab_shell'
require 'release_tools/project/helm_gitlab'
require 'release_tools/project/infrastructure/gitlab_dedicated/team'
require 'release_tools/project/infrastructure/production'
require 'release_tools/project/infrastructure/release_environment'
require 'release_tools/project/jihu'
require 'release_tools/project/kas'
require 'release_tools/project/merge_train'
require 'release_tools/project/omnibus_gitlab'
require 'release_tools/project/quality/base'
require 'release_tools/project/quality/canary'
require 'release_tools/project/quality/staging'
require 'release_tools/project/quality/staging_canary'
require 'release_tools/project/quality/production'
require 'release_tools/project/release/metadata'
require 'release_tools/project/release/tasks'
require 'release_tools/project/release_tools'
require 'release_tools/project/www_gitlab_com'

require 'release_tools/parallel_methods'

require 'release_tools/tracker/deployment'
require 'release_tools/tracker/merge_request_labeler'
require 'release_tools/tracker/merge_request_updater'
require 'release_tools/internal_release/issue_helper'
require 'release_tools/security/merge_request_helper'
require 'release_tools/security/issue_helper'
require 'release_tools/issuable'
require 'release_tools/issue'

require 'release_tools/shared_status'
require 'release_tools/feature'
require 'release_tools/logger'
require 'release_tools/bot'
require 'release_tools/error_tracking'
require 'release_tools/managed_versioning'
require 'release_tools/mimir'
require 'release_tools/preflight'
require 'release_tools/retriable'
require 'release_tools/slack'
require 'release_tools/security/component_branch_helper'

require 'release_tools/messaging'
require 'release_tools/auto_deploy'
require 'release_tools/auto_deploy/qa_notifier'
require 'release_tools/auto_deploy/coordinated_pipeline/reports/helper'
require 'release_tools/auto_deploy/coordinated_pipeline/reports/quality/fetcher'
require 'release_tools/auto_deploy/coordinated_pipeline/reports/quality/job'
require 'release_tools/auto_deploy/coordinated_pipeline/reports/quality/pipeline'
require 'release_tools/auto_deploy/coordinated_pipeline/reports/quality_failures'
require 'release_tools/auto_deploy/coordinated_pipeline/notifier'
require 'release_tools/auto_deploy/coordinated_pipeline/qa/quality'
require 'release_tools/auto_deploy/coordinated_pipeline/qa/notifier'
require 'release_tools/auto_deploy/coordinated_pipeline/qa/triager'
require 'release_tools/auto_deploy/deployment_pipeline/package_selection/latest'
require 'release_tools/auto_deploy/deployment_pipeline/package_selection/version_selector'
require 'release_tools/auto_deploy/deployment_pipeline/latest'
require 'release_tools/auto_deploy/deployment_pipeline/version'
require 'release_tools/auto_deploy/deployment_pipeline/sequencer'
require 'release_tools/auto_deploy/deployment_pipeline/service'
require 'release_tools/auto_deploy/deployment_pipeline/trigger'
require 'release_tools/auto_deploy/post_deploy_migrations/deployment_tracker'
require 'release_tools/auto_deploy/post_deploy_migrations/merge_request_labeler'
require 'release_tools/auto_deploy/post_deploy_migrations/notifier'
require 'release_tools/auto_deploy/post_deploy_migrations/prepare'
require 'release_tools/auto_deploy/post_deploy_migrations/qa/notifier'
require 'release_tools/auto_deploy/post_deploy_migrations/release_note'
require 'release_tools/branch'
require 'release_tools/branch_creation'
require 'release_tools/branch_status'
require 'release_tools/changelog_compiler'
require 'release_tools/chef/client'
require 'release_tools/consul/client'
require 'release_tools/cherry_pick'
require 'release_tools/cherry_pick/auto_deploy_notifier'
require 'release_tools/cherry_pick/auto_deploy_service'
require 'release_tools/cherry_pick/result'
require 'release_tools/cng_version'
require 'release_tools/commits'
require 'release_tools/component_versions'
require 'release_tools/deployments/blocker_issue'
require 'release_tools/deployments/blocker_annotations'
require 'release_tools/deployments/blocker_issue_fetcher'
require 'release_tools/deployments/blockers_report'
require 'release_tools/deployments/compare_release_versions'
require 'release_tools/deployments/blockers_calculator'
require 'release_tools/deployments/deployment_tracker'
require 'release_tools/deployments/grafana_annotator'
require 'release_tools/deployments/merge_request_labeler'
require 'release_tools/deployments/metadata'
require 'release_tools/deployments/sentry_tracker'
require 'release_tools/deployment_util'
require 'release_tools/docker_hub/verifier'
require 'release_tools/docker_hub/client'
require 'release_tools/docker_hub/tag'
require 'release_tools/dynamic_pipeline_base'
require 'release_tools/gemfile_parser'
require 'release_tools/gitlab_client'
require 'release_tools/gitlab_dev_client'
require 'release_tools/gitlab_graphql_queries'
require 'release_tools/gitlab_ops_client'
require 'release_tools/gitlab_operator/version_finder'
require 'release_tools/gitlab_release_client'
require 'release_tools/gitlab_releases_gem_client'
require 'release_tools/graphql_adapter'
require 'release_tools/helm/helm_version_finder'
require 'release_tools/helm/gitlab_version_finder'
require 'release_tools/helm/version_mapping'
require 'release_tools/merge_request'
require 'release_tools/internal_release/coordinator'
require 'release_tools/internal_release/dedicated_issue'
require 'release_tools/internal_release/finalize/package_availability_base_notifier'
require 'release_tools/internal_release/finalize/dedicated_notifier'
require 'release_tools/internal_release/finalize/release_managers_notifier'
require 'release_tools/internal_release/issue'
require 'release_tools/internal_release/metadata'
require 'release_tools/internal_release/prepare/component_branch_verifier'
require 'release_tools/internal_release/sync_to_dev_service'
require 'release_tools/internal_release/wait_dev_build_assets_job_service'
require 'release_tools/internal_release/release'
require 'release_tools/internal_release/release_dynamic_pipeline'
require 'release_tools/internal_release/update_version_file'
require 'release_tools/metadata/compare_service'
require 'release_tools/metadata/comparison'
require 'release_tools/metadata/presenter'
require 'release_tools/metrics'
require 'release_tools/monthly_issue'
require 'release_tools/omnibus_gitlab_version'
require 'release_tools/passing_build'
require 'release_tools/patch_release/blog_post/utils'
require 'release_tools/patch_release/blog_post/metadata'
require 'release_tools/patch_release/blog_post/security_issue_entry'
require 'release_tools/patch_release/blog_post/security_issue_section'
require 'release_tools/patch_release/blog_post/merge_request_content_generator'
require 'release_tools/patch_release/blog_post/file_commit'
require 'release_tools/patch_release/blog_post/merge_request'
require 'release_tools/patch_release/blog_merge_request'
require 'release_tools/patch_release/blog_post/merge_request_factory'
require 'release_tools/patch_release/coordinator'
require 'release_tools/patch_release/issue'
require 'release_tools/patch_release/security_issue'
require 'release_tools/patch_release/unreleased_commits'
require 'release_tools/patch_release/unreleased_merge_requests'
require 'release_tools/pick_into_label'
require 'release_tools/pipeline_schedule'
require 'release_tools/sync_remotes_merge_request'
require 'release_tools/prometheus/query'
require 'release_tools/prometheus/service_health'
require 'release_tools/prometheus/wraparound_vacuum_checks'
require 'release_tools/promotion/baking_time_foreword'
require 'release_tools/promotion/check'
require 'release_tools/promotion/checks/production_issue_tracker'
require 'release_tools/promotion/checks/active_deployments'
require 'release_tools/promotion/checks/active_gprd_deployments'
require 'release_tools/promotion/checks/active_gstg_deployments'
require 'release_tools/promotion/checks/active_incidents'
require 'release_tools/promotion/checks/canary_up'
require 'release_tools/promotion/checks/orchestrator_status'
require 'release_tools/promotion/checks/change_requests'
require 'release_tools/promotion/checks/gitlab_deployment_health'
require 'release_tools/promotion/checks/incident_rollback'
require 'release_tools/promotion/deployment_check_foreword'
require 'release_tools/promotion/deployment_check_report'
require 'release_tools/promotion/manager'
require 'release_tools/promotion/production_status'
require 'release_tools/promotion/status_note'
require 'release_tools/release_environment/environment'
require 'release_tools/release_environment/base_notifier'
require 'release_tools/release_environment/deploy_notifier'
require 'release_tools/release_environment/qa_notifier'
require 'release_tools/services/sync_refs_helper'
require 'release_tools/runtime'
require 'release_tools/monthly/finalize/update_protected_branches'
require 'release_tools/monthly/tag_day/component_branch_verifier'
require 'release_tools/monthly/release_day/notify_release_publish'
require 'release_tools/pre/notifier'
require 'release_tools/pre/prepare'
require 'release_tools/pre/release_note'
require 'release_tools/pipeline_tracer/job'
require 'release_tools/pipeline_tracer/metrics_service'
require 'release_tools/pipeline_tracer/pipeline'
require 'release_tools/pipeline_tracer/process_jobs'
require 'release_tools/pipeline_tracer/service'
require 'release_tools/public_release'
require 'release_tools/public_release/release'
require 'release_tools/public_release/gitlab_release'
require 'release_tools/public_release/gitlab_operator_release'
require 'release_tools/public_release/gitlab_pages_release'
require 'release_tools/public_release/omnibus_gitlab_release'
require 'release_tools/public_release/gitaly_release'
require 'release_tools/public_release/kas_release'
require 'release_tools/public_release/gitaly_master_release'
require 'release_tools/public_release/gitaly_monthly_release'
require 'release_tools/public_release/cng_image_release'
require 'release_tools/public_release/helm_gitlab_release'
require 'release_tools/public_release/upgrade_stop'
require 'release_tools/tasks/release/publish'
require 'release_tools/tasks/release/tag'
require 'release_tools/tasks/release_gitlab_net/deploy_validator'
require 'release_tools/release_managers/client'
require 'release_tools/release_managers/slack_client'
require 'release_tools/release_managers/definitions'
require 'release_tools/release_managers/sync_result'
require 'release_tools/release_managers/schedule'
require 'release_tools/release_metadata'
require 'release_tools/release_metadata_uploader'
require 'release_tools/remote_repository'
require 'release_tools/rollback/compare_service'
require 'release_tools/rollback/comparison'
require 'release_tools/rollback/presenter'
require 'release_tools/rollback/upcoming_deployments'
require 'release_tools/services/approve_service'
require 'release_tools/services/auto_merge_service'
require 'release_tools/services/auto_deploy_branch_service'
require 'release_tools/services/packages_status/base'
require 'release_tools/services/packages_status/availability'
require 'release_tools/services/packages_status/functionality'
require 'release_tools/services/omnibus_packages/base'
require 'release_tools/services/omnibus_packages/publishing'
require 'release_tools/services/omnibus_packages/tagging'
require 'release_tools/services/branches_status_service'
require 'release_tools/services/component_status_service'
require 'release_tools/services/create_version_service'
require 'release_tools/services/merge_when_pipeline_succeeds_service'
require 'release_tools/services/publish_service/base_publish_service'
require 'release_tools/services/publish_service/cng_publish_service'
require 'release_tools/services/publish_service/omnibus_publish_service'
require 'release_tools/services/publish_service/helm_chart_publish_service'
require 'release_tools/services/sync_remotes_service'
require 'release_tools/services/update_component_service'
require 'release_tools/time_util'
require 'release_tools/security/app_sec_issue'
require 'release_tools/security/blog_merge_request'
require 'release_tools/security/client'
require 'release_tools/security/cves_issue'
require 'release_tools/security/comms_task_issue'
require 'release_tools/security/dev_client'
require 'release_tools/security/components_update_task'
require 'release_tools/security/implementation_issue'
require 'release_tools/security/implementation_issue_validator'
require 'release_tools/security/implementation_issue_processor'
require 'release_tools/security/issue_crawler'
require 'release_tools/security/issues_fetcher'
require 'release_tools/security/managed_versioning_notification_service'
require 'release_tools/security/notify_stable_branch_creation'
require 'release_tools/security/pending_merge_notification_service'
require 'release_tools/security/pending_deploy_notification_service'
require 'release_tools/security/pending_issues_notification_service'
require 'release_tools/security/pipeline'
require 'release_tools/security/projects_validator'
require 'release_tools/security/related_issues_finder'
require 'release_tools/security/issue_links_validator'
require 'release_tools/security/issue_table/builder'
require 'release_tools/security/issue_table/service'
require 'release_tools/security/merge_requests_validator'
require 'release_tools/security/merge_request_validator'
require 'release_tools/security/merge_requests_merger'
require 'release_tools/security/merge_train_service'
require 'release_tools/security/merge_when_pipeline_succeeds_service'
require 'release_tools/security/mirror_status'
require 'release_tools/security/finalize/blog_post_validator'
require 'release_tools/security/finalize/check_canonical_tags_synced'
require 'release_tools/security/finalize/close_implementation_issues'
require 'release_tools/security/finalize/close_tracking_issue'
require 'release_tools/security/finalize/notify_release_complete'
require 'release_tools/security/finalize/notify_next_release_managers'
require 'release_tools/security/finalize/toggle_security_target_processor'
require 'release_tools/security/finalize/update_slack_bookmark'
require 'release_tools/security/finalize/sync_security_to_canonical'
require 'release_tools/security/prepare/component_branch_verifier'
require 'release_tools/security/prepare/fixes_verifier'
require 'release_tools/security/prepare/issue_creator'
require 'release_tools/security/prepare/notify_jihu'
require 'release_tools/security/publish/copy_blog_post_to_canonical'
require 'release_tools/security/publish/dynamic_pipeline'
require 'release_tools/security/publish/move_blog_post'
require 'release_tools/security/publish/deploy_blog_post'
require 'release_tools/security/publish/verify_blog_post'
require 'release_tools/security/release_preparation/generate_blog_post'
require 'release_tools/security/security_release_tracking_issue_notifier'
require 'release_tools/security/tag/dynamic_pipeline'
require 'release_tools/security/target_issue_notifier'
require 'release_tools/security/target_issues_processor'
require 'release_tools/security/tracking_issue'
require 'release_tools/security/security_mirror_notification_service'
require 'release_tools/security/sync_remotes_service'
require 'release_tools/security/sync_git_remotes_service'
require 'release_tools/trace_section'
require 'release_tools/update_gitaly_merge_request'
require 'release_tools/update_kas_merge_request'
require 'release_tools/update_paths/dynamic_pipeline'
require 'release_tools/update_paths/finish_notification'
require 'release_tools/warning'
require 'release_tools/version_client'
require 'release_tools/versions'

ReleaseTools::Preflight.check
