docs: def find_git_repo(session, name, candidates):
      """
      Tries to find git repos on the given URL candidates
      :param session: requests Session instance
      :param name: str, project name
      :param candidates: list, URL candidates
      :return: tuple, (set(git URLs), set(repo URLs))
      """
  
      repos = filter_repo_urls(candidates=candidates)
  
      # if we are lucky and there isn't a valid repo URL in our URL candidates, we need to go deeper
      # and check the URLs if they contain a link to a repo
      if not repos:
          logger.info("No repo found, trying to find one on related sites {}".format(candidates))
          repos = set(find_repo_urls(session, name, candidates))
  
      urls = []
      for repo in repos:
          username, reponame = repo.split("/")[3:5]
          if "github.com" in repo:
              urls.append(
                  "https://github.com/{username}/{reponame}.git".format(
                      username=username, reponame=reponame
                  )
              )
          elif "bitbucket.org" in repo:
              urls.append(
                  "https://bitbucket.org/{username}/{reponame}".format(
                      username=username, reponame=reponame
                  )
              )
      return set(urls), repos