def parse_helm_repo_list_output(helm_repo_list_output):
    """
    Function will perform a manipulation on a string output from the 'helm repo list' command

    Returns an array of dicts with installed repos names and urls as strings
    as [{'repo_name': 'some_repo_name', 'repo_url': 'some_repo_url'}]

    by validating the first line, splitting by the tab delimiter,
    and checking that the first (0) value is 'NAME' and second (1) value is 'URL'
    an exception will be raised if the structure was change by HELM developers

    :param helm_repo_list_output: 'helm repo list' output as String
    :return:
    """
    installed_repos = []
    installed_repos_stdout = helm_repo_list_output.split('\n')
    first_line_stdout = installed_repos_stdout[0].split('\t')
    if first_line_stdout[0].strip() != 'NAME' or first_line_stdout[1].strip(
        ) != 'URL':
        raise Exception(
            "'helm repo list' command output changed, code change is needed to resolve this issue, contact the developer."
            )
    for line in installed_repos_stdout[1:]:
        repo_details = line.split('\t')
        temp_dictionary = {}
        if repo_details[0] != '':
            temp_dictionary.update({'repo_name': repo_details[0].strip()})
            temp_dictionary.update({'repo_url': repo_details[1].strip()})
            installed_repos.append(temp_dictionary)
    return installed_repos
