Di WSL, proses penandatanganan commit Git sangat sulit dilakukan.
Alasannya adalah folder kerja berada di Windows (%USERPROFILE%\Documents), namun karena saya lebih terbiasa dengan bash daripada CMD atau PowerShell, saya sebagian besar melakukan pengembangan di dalam WSL.
Tentu saja, ada cara untuk mengelola proyek langsung di WSL, tetapi kali ini fitur Git di IDE Windows tidak berfungsi dengan baik.
Oleh karena itu, setelah mengalami berbagai percobaan dan kesalahan, saya membuat skrip dengan pemikiran 'bagaimana jika kami menjalankan biner yang berbeda berdasarkan jalur ketika menjalankan git dan gpg'.
Git berfungsi lancar, tetapi gpg tidak berfungsi dengan baik seperti di bawah ini
[code][hm:...ents/Release/upgrade-gitlab]$ gpg --list-secret-keys --keyid-format=long
gpg: error running '/usr/lib/gnupg/keyboxd': probably not installed
gpg: failed to start keyboxd '/usr/lib/gnupg/keyboxd': Configuration error
gpg: can't connect to the keyboxd: Configuration error
gpg: error opening key DB: No Keybox daemon running
gpg: keydb_search_first failed: Input/output error[/code]
???: Mengapa, ini adalah jalur Windows tetapi mengapa itu mencari /usr/lib...
Tentu saja, masalah dapat diselesaikan dengan menjalankan perintah seperti gpg --list-keys di CMD sekali, tetapi tidak lancar.
Oleh karena itu, setelah berdiskusi keras dengan Gemini, saya disarankan untuk mengunduh gpg. Jadi saya menginstal GnuPG.Gpg4win menggunakan winget.
Namun kali ini, GnuPG dan gpg Git melihat jalur yang sama sekali berbeda.
- Git: %USERPROFILE%\.gnupg
- GnuPG: %APPDATA%\gnupg
Jadi dengan penuh harapan saya memodifikasi jalur dengan pemikiran 'bagaimana jika kami mengganti direktori yang digunakan Git dengan GnuPG dan kemudian mempertahankan kompatibilitas mundur dengan mklink /J?' tetapi...
gpg keyboxd hilang {emo:onion-038.gif:50}{emo:onion-030.gif:50}
Pada akhirnya, setelah menjelajahi GitLab internal, GitLab pribadi, dan GitHub yang menggunakan kunci tersebut dan menghapus (bukan mencabut) kunci yang hilang, saya memutuskan untuk menghapus GnuPG dari Windows dan menggunakan gpg dari WSL.
Namun masalahnya adalah bagaimana mengotentikasi kotak kunci gpg WSL dari Windows.
Saya secara teratur mengamankan semua kunci yang saya gunakan dengan sandi. (Semuanya sama, itulah masalahnya...)
Jika jendela input kata sandi ini tidak muncul sebagai GUI, input sandi tidak mungkin dilakukan tanpa membajak stdin dan stdout terminal
Hasil dari diskusi yang rajin dengan Gemini adalah sebagai berikut.
Akhirnya, jendela input kata sandi muncul dengan baik di WSL dan Windows, dan ketika input kata sandi berhasil, penandatanganan commit juga berfungsi normal.