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
def find_git_repo ( session , name , candidates ) : repos = filter_repo_urls ( candidates = candidates ) 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
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))