creates (if needed)  and updates the value of the key in the config with a
     value entered by the user

    Parameters
    ----------
    config: ConfigParser object
        existing configuration
    key: string
        key to update
    instruction: string
        text to show in the prompt
    is_sensitive: bool
        if true, require confirmation and do not show typed characters

    Notes
    -----
    sets key in config passed in

def _update_value(config, key, instruction, is_sensitive):
    """
    creates (if needed)  and updates the value of the key in the config with a
     value entered by the user

    Parameters
    ----------
    config: ConfigParser object
        existing configuration
    key: string
        key to update
    instruction: string
        text to show in the prompt
    is_sensitive: bool
        if true, require confirmation and do not show typed characters

    Notes
    -----
    sets key in config passed in
    """
    if config.has_option(PROFILE, key):
        current_value = config.get(PROFILE, key)
    else:
        current_value = None

    proposed = click.prompt(
        instruction,
        default=current_value,
        hide_input=is_sensitive,
        confirmation_prompt=is_sensitive,
    )

    if key == 'host' or key == 'prod_folder':
        if proposed[-1] == '/':
            proposed = proposed[:-1]

    if key == 'host':
        if 'http' != proposed[:4]:
            proposed = click.prompt(
                ("looks like there's an issue - "
                 'make sure the host name starts with http'),
                default=current_value,
                hide_input=is_sensitive,
                confirmation_prompt=is_sensitive,
            )
    config.set(PROFILE, key, proposed)