def METHOD_NAME(
    dry_run: bool,
) -> tuple[PromotionState, VCS, SaasFilesInventory, MergeRequestManager]:
    """
    Lets initialize everything that involves calls to external dependencies:
    - VCS -> Gitlab / Github queries
    - SaaSFileInventory -> qontract-server GQL query
    - DeploymentState -> S3 queries
    - MergeRequestManager -> Managing SAPM MRs with app-interface
    """
    vault_settings = get_app_interface_vault_settings()
    allow_deleting_mrs = get_feature_toggle_state(
        integration_name=f"{QONTRACT_INTEGRATION}-allow-deleting-mrs",
        default=False,
    )
    allow_opening_mrs = get_feature_toggle_state(
        integration_name=f"{QONTRACT_INTEGRATION}-allow-opening-mrs",
        default=False,
    )
    secret_reader = create_secret_reader(use_vault=vault_settings.vault)
    vcs = VCS(
        secret_reader=secret_reader,
        github_orgs=get_github_orgs(),
        gitlab_instances=get_gitlab_instances(),
        app_interface_repo_url=get_app_interface_repo_url(),
        dry_run=dry_run,
        allow_deleting_mrs=allow_deleting_mrs,
        allow_opening_mrs=allow_opening_mrs,
    )
    merge_request_manager = MergeRequestManager(
        vcs=vcs,
        renderer=Renderer(),
    )
    saas_files = get_saas_files()
    saas_inventory = SaasFilesInventory(saas_files=saas_files)
    deployment_state = PromotionState(
        state=init_state(integration=OPENSHIFT_SAAS_DEPLOY, secret_reader=secret_reader)
    )
    return deployment_state, vcs, saas_inventory, merge_request_manager