Inspectez les entrées de proxy d’un hôte Subversion
Lisez la configuration servers de Subversion avec ses valeurs globales et les règles de groupes d’hôtes visibles ensemble.
Pour le fichier ~/.subversion/servers habituel d’un utilisateur Unix, cette inspection énumère les entrées de proxy sélectionnées et les correspondances de groupes d’hôtes sans imprimer les mots de passe enregistrés :
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)Conservez le nom d’hôte du dépôt avec cette sortie. Le script rapporte le contenu du fichier, pas la route que Subversion a finalement choisie.
Vérifiez la section nommée du groupe correspondant en plus de global. La section groups associe des noms à des motifs de serveur ; les valeurs d’hôte et de port d’un groupe correspondant peuvent remplacer les valeurs par défaut, et des exceptions peuvent contourner un proxy autrement configuré.
Tenez ensuite compte des sources au niveau système et propres à la plateforme, d’un répertoire de configuration personnalisé et des remplacements en ligne de commande. Interrogez les fichiers du compte ou de l’invocation réelle, et non le répertoire personnel d’un autre utilisateur.
Une visionneuse devrait étiqueter les valeurs par source et par portée. Une seule chaîne non qualifiée de proxy système perd à la fois la décision propre à l’hôte et la distinction entre les entrées du fichier utilisateur et la politique du système.