Git native berfungsi melalui proxy, tetapi JGit tidak
JGit adalah implementasi Java dengan pengaturan transportasi yang didukungnya sendiri. Entri http.proxy di Git native bukan konfigurasi universal untuk setiap klien Git.
Repositori yang sama berfungsi dengan git clone di terminal dan gagal di aplikasi yang menggunakan JGit. Itu adalah perbandingan antara dua implementasi, bukan tentu antara salinan yang berfungsi dan yang rusak dari klien yang sama.
Referensi konfigurasi JGit menyatakan bahwa konfigurasi proxy menggunakan mekanisme standar Java melalui java.net.ProxySelector. Jangan menganggap semua opsi HTTP Git native diterapkan hanya karena kedua klien memahami berkas konfigurasi Git.
Identifikasi aplikasi yang menyematkan JGit, versinya, dan transportasi HTTP yang dipilih. Aplikasi host dapat menyediakan pengaturan atau perilaku di luar default mandiri JGit.
Lalu periksa konfigurasi proxy Java yang terlihat oleh proses tersebut. Untuk transportasi HTTP berbasis URLConnection, periksa properti host dan port JVM yang digunakannya. Properti yang dimasukkan di terminal lain setelah aplikasi dimulai tidak dapat mengonfigurasi ulang JVM yang sedang berjalan. Operasi Git native di IDE dan operasi JGit-nya juga dapat memakai jalur berbeda.
Pisahkan autentikasi proxy dari pemilihan rute. Properti proxy Java yang mengidentifikasi host dan port tidak otomatis menerapkan skema kata sandi proxy. Gunakan mekanisme autentikasi yang didukung aplikasi host.
Pertanyaan yang berguna adalah “proxy mana yang dipilih permintaan JGit ini?”, bukan “apakah konfigurasi Git saya berisi baris proxy?”. Keberhasilan Git native adalah perbandingan yang berharga, tetapi tidak menjawab pertanyaan khusus implementasi itu.