code: def from_url(url: str, parse_ssh_config: bool = True):
      url = giturlparse.parse(url)
      data = RemoteRunRepoData(
          repo_host_name=url.resource,
          repo_port=url.port,
          repo_user_name=url.owner,
          repo_name=url.name,
      )
      if parse_ssh_config and url.protocol == "ssh":
          host_config = get_host_config(data.repo_host_name)
          data.repo_host_name = host_config.get(
              "hostname", data.repo_host_name
          )
          data.repo_port = host_config.get("port", data.repo_port)
      return data
  
imports: import io
  import subprocess
  import time
  from typing import BinaryIO, Optional
  import git
  import giturlparse
  from pydantic import BaseModel, Field
  from typing_extensions import Literal
  from dstack._internal.core.errors import DstackError
  from dstack._internal.core.models.repos.base import BaseRepoInfo, Repo, RepoProtocol
  from dstack._internal.utils.hash import get_sha256, slugify
  from dstack._internal.utils.path import PathLike
  from dstack._internal.utils.ssh import get_host_config
label_desc: Use image node_id 1 for calling the RemoteRunRepoData obj's underlying member method code with example usage: obj.from_url(url, parse_ssh_config) and returns: data