#!/usr/bin/env python3 """Test Git from Portainer's server context without creating a Source or stack.""" import argparse import json import pathlib import socket import stat import urllib.error import urllib.parse import urllib.request class NoRedirect(urllib.request.HTTPRedirectHandler): def redirect_request(self, req, fp, code, msg, headers, newurl): return None def classify(error): text = error.lower() for category, patterns in ( ('connection-refused', ('connection refused',)), ('dns-failure', ('no such host', 'name resolution', 'server misbehaving')), ('timeout', ('timeout', 'timed out', 'deadline exceeded')), ('tls-failure', ('x509:', 'certificate', 'tls handshake')), ('proxy-or-login-interception', ('text/html', '