lib/release_tools.rb (342 lines of code) (raw):

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