Para el archivo ~/.subversion/servers habitual de un usuario de Unix, esta inspección enumera entradas de proxy seleccionadas y asignaciones de grupos de hosts sin imprimir las contraseñas guardadas:

from configparser import ConfigParser
from pathlib import Path

settings = ConfigParser(interpolation=None)
settings.read(Path.home() / '.subversion' / 'servers')
for key in ('http-proxy-host', 'http-proxy-port',
            'http-proxy-exceptions'):
    print(key, settings.get('global', key, fallback=''))

if settings.has_section('groups'):
    for group, patterns in settings.items('groups'):
        print('group', group, patterns)

Conserve el nombre del host del repositorio junto a esta salida. El script informa del contenido del archivo, no de la ruta que Subversion eligió al final.

Revise también la sección con nombre del grupo coincidente, además de global. La sección groups asigna nombres a patrones de servidor; los valores de host y puerto de un grupo coincidente pueden anular los predeterminados, y las excepciones pueden eludir un proxy configurado de otro modo.

Después tenga en cuenta fuentes de nivel de sistema y específicas de la plataforma, un directorio de configuración propio y las anulaciones de la línea de comandos. Consulte los archivos de la cuenta o invocación real, no el directorio personal de otro usuario.

Un visor debería etiquetar los valores por origen y alcance. Una sola cadena sin matices sobre el proxy del sistema pierde tanto la decisión específica del host como la distinción entre entradas de archivo de usuario y política del sistema.

Artículos relacionados