Un lucru destul de important pentru prezența și prestența de pe GitHub sunt commit-urile semnate. Dacă realizăm commit-urile din interfața web sau din mașinile virtuale speciale (GitHub codespaces), acelea vor fi automat considerate „sigure” și verificate. Astfel, o casetă cu textul „Verified” va apărea în dreapta mesajului de commit.
Procedeul presupune utilizarea unor chei GNU Privacy Guard, o implementere de sistem de chei publice / semnături OpenPGP. Aceste chei trebuie să fie prezente atât pe sistemul folosit la crearea commit-urilor, cât și în contul de GitHub, în secțiunea specială, pentru a realiza un commit verificat.
Primul pas, desigur după ce aveam managerul de pachete, Homebrew, instalat a trebuit să instalez tool-ul cli al GPG. Acesta se identifică cu numele gnupg.
$ brew install gnupgUrmătorul pas este să generăm o cheie nouă, avem două variante, însă pentru siguranța alegerii algoritmiilor corecți vom folosi oneliner-ul următor, care folosește RSA4096.
$ gpg --default-new-key-algo rsa4096 --gen-keyAici, trebuie să fim atenți la datele pe care le introducem, ni se va cere să folosim un „Real name” și o „Email adress”, acestea trebuie să fie cele de pe GitHub, cel puțin username-ul, email-ul poate fi setat la adresa no-reply oferită de GitHub pentru a menține confidențialitatea. În cazul meu, pentru contul de aici, am folosit numele de utilizator (+ adresa de email, privată).
Următorii pași au fost exact cei prezentați pe tutorialul oficial, pe care îl găsești aici. Comenzile de mai jos au exportat armura cheii, generate anterior, pe care am luat-o ulterior și am încărcat-o în contul meu. În sintaxa de mai jos, key_id este textul aflat după „sec 4096R”, din output-ul comenzii anterioare.
$ gpg --list-secret-keys --keyid-format=longAici, tutorialul oficial se încheie, iar când încerc să creez un commit primesc eroare următoare: „gpg: signing failed: No pinentry”. Aceasta este linia care conține adevărata eroare / problemă, output-ul este mai lung și arată astfel:
Din acest paragraf ne dăm seama că una dintre dependețele programului, pinentry nu este găsită în sistemul de operare. Pentru a rezolva aceasta am instalat pachetul dedicat Mac OS, pinentry-mac, am creat fișierul de configurare comenzi opționale pentru motorul de semnături gnupg, iar apoi am repornit serviciile implicate folosind comenzile de mai jos: (încă din procesul de instalare aflăm următorii pași
$ brew install pinentry-macAcum, folosind git commit cu argumentele necesare vom crea un commit verificat / semnat. Opțional și recomandat putem configura semnarea automată a tuturor commit-urilor realizate de pe dispozitivul curent folosind comanda de mai jos:
$ git commit -S -m "mesaj"Și gata, ai configurat cu succes semnarea commit-urilor de pe dispozitivul tău care rulează Mac OS Sonoma sau altă versiune. Înafară de eroarea cu pinentry, tot procesul este asemănător restul sistemelor de operare.
Fondatorul platformei - mentor Academia
Plată securizată și procesată de terminalul online: