code: def make_url(
      self, protocol: RepoProtocol, oauth_token: Optional[str] = None
  ) -> str:
      if protocol == RepoProtocol.HTTPS:
          return f"https://{(oauth_token + '@') if oauth_token else ''}{self.path(sep='/')}.git"
      elif protocol == RepoProtocol.SSH:
          if self.repo_port:
              return f"ssh@{self.path(sep='/')}.git"
          else:
              return f"git@{self.repo_host_name}:{self.repo_user_name}/{self.repo_name}.git"
  
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 3 for calling the RemoteRunRepoData obj's underlying member method code with example usage: obj.make_url(protocol, oauth_token) and returns: str, unknown, self, str, str, self, str, str, self, str, self, str, self, str