def METHOD_NAME(cls) -> "QuickstartVersionMappingConfig":
    if LOCAL_QUICKSTART_MAPPING_FILE:
        logger.info(
            "LOCAL_QUICKSTART_MAPPING_FILE is set, will try to read from local file."
        )
        path = os.path.expanduser(LOCAL_QUICKSTART_MAPPING_FILE)
        with open(path, "r") as f:
            config_raw = yaml.safe_load(f)
        return cls.parse_obj(config_raw)
    config_raw = None
    try:
        response = requests.get(DEFAULT_REMOTE_CONFIG_PATH, timeout=5)
        response.raise_for_status()
        config_raw = yaml.safe_load(response.text)
    except Exception as e:
        logger.debug(
            f"Couldn't connect to github: {e}, will try to read from local file."
        )
        try:
            path = os.path.expanduser(DEFAULT_LOCAL_CONFIG_PATH)
            with open(path, "r") as f:
                config_raw = yaml.safe_load(f)
        except Exception:
            logger.debug("Couldn't read from local file either.")
    if config_raw is None:
        logger.info(
            "Unable to connect to GitHub, using default quickstart version mapping config."
        )
        return QuickstartVersionMappingConfig(
            quickstart_version_map={
                "default": QuickstartExecutionPlan(
                    composefile_git_ref="master", docker_tag="head"
                ),
            }
        )
    config = cls.parse_obj(config_raw)
    # If stable is not defined in the config, we need to fetch the latest version from github.
    if config.quickstart_version_map.get("stable") is None:
        try:
            release = cls._fetch_latest_version()
            config.quickstart_version_map["stable"] = QuickstartExecutionPlan(
                composefile_git_ref=release, docker_tag=release
            )
        except Exception:
            click.echo(
                "Couldn't connect to github. --version stable will not work."
            )
    save_quickstart_config(config)
    return config