Один и тот же репозиторий работает с git clone в терминале и даёт сбой в приложении, использующем JGit. Это сравнение двух реализаций, а не обязательно рабочей и сломанной копии одного и того же клиента.

Справочник по конфигурации JGit сообщает, что настройка прокси использует стандартные механизмы Java через java.net.ProxySelector. Не считайте, что все HTTP-параметры обычного Git реализованы только потому, что оба клиента понимают файл конфигурации Git.

Определите приложение, встраивающее JGit, его версию и выбранный транспорт HTTP. Приложение-хост может предоставлять настройки или поведение сверх самостоятельных значений JGit по умолчанию.

Затем проверьте конфигурацию прокси Java, видимую этому процессу. Для транспорта HTTP на основе URLConnection проверьте свойства хоста и порта JVM, которые он использует. Свойство, введённое в несвязанном терминале после запуска приложения, не может перенастроить работающую JVM. Нативная операция Git в IDE и её операция JGit также могут использовать разные пути.

Держите аутентификацию прокси отдельно от выбора маршрута. Свойства прокси Java, задающие хост и порт, не реализуют схему пароля прокси автоматически. Используйте поддерживаемый механизм аутентификации приложения-хоста.

Полезный вопрос — «какой прокси выбрал этот запрос JGit?», а не «есть ли в моей конфигурации Git строка прокси?». Успех с обычным Git — ценное сравнение, но он не отвечает на этот вопрос, специфичный для реализации.

Похожие статьи