code: def extract_github_repo_and_revision_from_source_url(url):
      
      _check_github_url_is_supported(url)
  
      parts = get_parts_of_url_path(url)
      repo_name = parts[1]
      try:
          revision = parts[3]
      except IndexError:
          raise ValueError('Revision cannot be extracted from url: {}'.format(url))
  
      end_index = url.index(repo_name) + len(repo_name)
      repo_url = url[:end_index]
  
      return _strip_trailing_dot_git(repo_url), revision
docs: Given an URL, return the repo name and who owns it.
  
      Args:
          url (str): The URL to the GitHub repository
  
      Raises:
          ValueError: on url that aren't from github or when the revision cannot be extracted
  
      Returns:
          str, str: the owner of the repository, the repository name