Ispezionate gli input proxy di un host Subversion
Leggete la configurazione servers di Subversion con i suoi valori globali e le regole dei gruppi di host visibili insieme.
Per il solito file ~/.subversion/servers di un utente Unix, questa ispezione elenca gli input proxy selezionati e le mappature dei gruppi di host senza stampare le password salvate:
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)Conservate il nome host del repository insieme a questo output. Lo script riporta il contenuto del file, non il percorso che Subversion ha scelto alla fine.
Controllate anche la sezione con nome del gruppo corrispondente oltre a global. La sezione groups mappa i nomi sui pattern dei server; i valori di host e porta di un gruppo corrispondente possono sostituire i valori predefiniti, e le eccezioni possono aggirare un proxy configurato altrimenti.
Poi tenete conto delle fonti a livello di sistema e specifiche della piattaforma, di una directory di configurazione personalizzata e delle sostituzioni da riga di comando. Interrogate i file dell’account o dell’invocazione reale, non la home di un altro utente.
Un visualizzatore dovrebbe etichettare i valori per origine e ambito. Un’unica stringa non qualificata sul proxy di sistema perde sia la decisione specifica dell’host sia la distinzione tra input da file utente e politica di sistema.