10. diel - Git - Vzdialený repozitár - GitHub a protokoly HTTPS a SSH
V predchádzajúcej lekcii, Git - Kolízia medzi vetvami, sme sa zaoberali kolíziami pri zlučovaní vetiev.
V dnešnom tutoriáli Git si ukážeme prácu so vzdialeným repozitárom. Predstavíme si GitHub, v ktorom si vytvoríme profil. Ukážeme si, ako nastaviť Git na pripojenie cez protokoly HTTPS a SSH. Pre SSH si vygenerujeme osobný prístupový token a kľúč.
Čo je to vzdialený repozitár
Vzdialený repozitár (remote repo) je repozitár umiestnený na vzdialenom serveri. Po uložení zmien do nášho lokálneho repozitára môžeme tieto zmeny poslať/nahrať na vzdialený server, aby boli dostupné pre ostatných spolupracovníkov alebo používateľov. Tým umožníme zdieľanie a koordináciu práce medzi rôznymi vývojármi.
Vzdialený repozitár sme si uviedli v lekcii Git - História a princípy.
GitHub
Prácu so vzdialenými repozitármi si ukážeme na webovej platforme GitHub:

GitHub je webová platforma na správu verzií kódu umožňujúca vývojárom spolupracovať na projektoch, sledovať zmeny v kóde, riešiť problémy a zdieľať svoj softvér. GitHub rozširuje možnosti Gitu tým, že poskytuje používateľom priestor na ukladanie repozitárov na svojich serveroch. Repozitáre na GitHube sú úložiskom pre projekty, do ktorých môžu vývojári ukladať svoj kód, spravovať zmeny a viesť diskusie o prípadných vylepšeniach alebo chybách.
Využitie GitHubu
GitHub ponúka širokú škálu nástrojov a funkcií, ktoré umožňujú jednoduchú a efektívnu správu projektov, zdieľanie kódu a spoluprácu v reálnom čase. Napríklad:
- Spolupráca a zdieľanie kódu - Vývojári môžu spoločne pracovať na projektoch a navrhovať zmeny pomocou pull requestov.
- Správa verzií a sledovanie zmien - GitHub umožňuje sledovať každú zmenu vykonanú v kóde.
- Automatizácia pomocou integrácií - Ponúka integráciu s nástrojmi, ako je CI/CD, na automatizáciu vývoja a nasadenie kódu.
- Správa projektov a issues - Vývojári môžu používať nástroje na sledovanie úloh a problémov v projekte.
- GitHub pages - umožňujú hosťovať jednoduché webové stránky, čo je užitočné pri prezentácii projektov a dokumentácii.
Vytvorenie účtu na GitHube
Predtým, ako budeme môcť naplno využívať GitHub, je potrebné mať účet. Ak ho ešte nemáme, potom na stránke GitHub klikneme na Sign up a vytvoríme si ho. Po vytvorení profilu potvrdíme jeho aktiváciu prostredníctvom odkazu, ktorý obdržíme na zadaný email.
Dashboard - Domovská stránka
Po úspešnom zaregistrovaní na GitHube sa ocitneme na domovskej stránke alebo dashboarde:

Tu máme rýchly prístup do našich repozitárov, výpis aktivít užívateľov, organizácií alebo repozitárov, ktoré sledujeme. GitHub nám taktiež ponúka možnosť nazrieť do populárnych repozitárov.
Verejný profil
Teraz si ukážeme, ako zobraziť náš verejný profil na GitHube. Prejdeme do hornej lišty na pravej strane a klikneme na ikonu s profilovým obrázkom. Tým sa otvorí rozbaľovacie menu, ktoré ponúka niekoľko možností, vrátane prístupu k nášmu profilu:

Klikneme na možnosť Your profile. Budeme presmerovaní na náš verejný profil:

Profil užívateľa zohráva kľúčovú úlohu v interakcii s GitHubom. Poskytuje prehľad o aktivitách, repozitároch a projektoch, ktoré daný používateľ spravuje alebo do nich prispieva.
Navigačné pole sa nám rozšírilo o odkazy na Repositories, Projects, Packages a Stars:

Tieto odkazy nám ponúkajú:
- Overview - Zobrazuje základné informácie a sumarizáciu profilu užívateľa.
- Repositories - Zobrazuje zoznam všetkých repozitárov vytvorených alebo naklonovaných užívateľom.
- Projects - Poskytuje prehľad všetkých projektov vytvorených užívateľom.
- Packages - Ponúka prístup k balíčkom užívateľa.
- Stars - Zobrazí repozitáre, ktoré užívateľ označil hviezdičkou ako obľúbené.
Nastavenie nášho účtu
Do nastavenia účtu sa dostaneme opätovným kliknutím na ikonu s profilovým obrázkom a výberom Settings. Tu máme možnosť upravovať a konfigurovať rôzne nastavenia spojené s naším účtom a jeho zabezpečením.
Môžeme zmeniť, upraviť alebo prepojiť viac emailových adries s naším účtom, zapnúť dvojfaktorovú autentizáciu, vytvoriť a načítať SSH a GPG kľúče, zmeniť informácie verejného profilu, zobraziť aktivitu prihlásenia, zmazať účet alebo stiahnuť osobné dáta a veľa ďalšieho. Tu nájdeme aj sekciu Developer settings, ktorú využijeme na správu prístupových tokenov.
GitHub a protokoly HTTPS a SSH
Ešte pred vytvorením vzdialených repozitárov, je dôležité nastaviť Git pre prácu s GitHubom. GitHub umožňuje pripojenie k repozitárom pomocou protokolu HTTPS a SSH.
Protokol HTTPS
Pripojenie k vzdialenému repozitáru pomocou protokolu HTTPS vyžaduje zadanie užívateľského mena a hesla pri každom prístupe k repozitáru. Hoci prenos dát pomocou protokolu HTTPS je šifrovaný, čo poskytuje určitú úroveň zabezpečenia, zadanie používateľského mena a hesla môže byť menej bezpečné a pohodlné najmä pri dlhodobej práci s repozitárom.
Od augusta 2021 GitHub odobral podporu pre používanie hesla k účtu z príkazového riadka Gitu. HTTPS je možné aj naďalej používať, ale vyžaduje nastavenie osobného prístupového tokenu (PAT) namiesto hesla. Ak by sme sa pokúsili odoslať alebo aktualizovať repozitár na GitHube pomocou hesla účtu, zobrazí sa nám nasledujúca správa:
remote: Support for password authentication was removed on August 13, 2021. Please use a personal access token instead.
Osobný prístupový token (PAT)
Osobný prístupový token funguje ako sekundárne heslo. Je ale jedinečný, bezpečnejší a umožňuje nastavenie oprávnenia.
Vytvorenie osobného tokenu
Teraz si token (PAT) vytvoríme. Vrátime sa do nastavenia Settings a v ľavom menu vyberieme možnosť Developer settings. Budeme presmerovaní na správu tokenov. Potom v menu klikneme na Personal access tokens a Tokens (classic):

Klikneme na Generate new token a vyberieme možnosť Generate new token (classic). Nový token pomenujeme a zadáme mu dátum vypršania platnosti:

Nakoniec vyberieme povolenie, ktoré tento token obsahuje. Ak chceme pracovať s repozitármi zaškrtneme možnosť repo. Token vytvoríme kliknutím na Generate token:

Tým získame token v podobnom formáte:
ghp_aaa4bbbbrccccmFu00LP11ajKddsssT11
Prístupové tokeny nikdy nezverejňujeme.
Využitie osobného tokenu
Token využijeme na prihlásenie pri vykonávaní operácií Gitu cez
protokol HTTPS. Keby sme napríklad chceli naklonovať repozitár príkazom
git clone a boli by sme vyzvaní na zadanie používateľského
mena a hesla, zadali by sme namiesto hesla svoj osobný prístupový token:
git clone https://github.com/<username>/<repository> Username: [username] Password: [personal access token]
Git automaticky uloží prihlasovacie údaje do medzipamäte na 15 minút. Po uplynutí tejto doby budeme musieť opäť zadať užívateľské meno vrátane osobného tokenu. Túto dobu uloženia v medzipamäti môžeme zmeniť nasledujúcim príkazom:
MINGW64:/c/mygit IctDemy@DESKTOP-ADEVTG4 MINGW64 /c/mygit (main) $ git config --global credential.helper "cache --timeout=3600" IctDemy@DESKTOP-ADEVTG4 MINGW64 /c/mygit (main) $
Čas sa zadáva v sekundách. V kóde vyššie sme nastavili jednu hodinu.
Protokol SSH
Protokol SSH, na rozdiel od protokolu HTTPS, využíva na autentizáciu SSH kľúče. To poskytuje vyššiu úroveň bezpečnosti a pohodlia. SSH kľúče sú generované. Pri ich použití nie je potrebné opakovane zadávať heslo.
Generovanie SSH kľúča
Aby sme sa mohli pripojiť cez SSH, musíme si najskôr vygenerovať SSH kľúč a pripojiť ho k nášmu účtu GitHub. Otvoríme príkazový riadok a vygenerujeme nový SSH kľúč.
Po spustení príkazu ssh-keygen, bude generátor SSH kľúča
chcieť, aby sme vybrali, kam kľúče uložiť a takzvanú
passphrase alebo heslo:
MINGW64:/c/mygit IctDemy@DESKTOP-ADEVTG4 MINGW64 /c/mygit (main) $ ssh-keygen -t rsa -b 4096 -C "[email protected]" Generating public/private rsa key pair. Enter file in which to save the key: Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in: C:\Users\IctDemy\.ssh\id_rsa Your public key has been saved in: C:\Users\IctDemy\.ssh\id_rsa.pub The key fingerprint is: <key hash> IctDemy@DESKTOP-ADEVTG4 MINGW64 /c/mygit (main) $
Teraz máme vygenerovaný SSH kľúč. V operačnom systéme Windows nájdeme
vygenerovaný kľúč v zložke C:\Users\<User>\.ssh\, v
Linuxe potom v zložke /home/<User>/.ssh.
SSH kľúče sa vždy generujú ako dvojica verejných
id_rsa.pub a privátnych id_rsa kľúčov. Je
nesmierne dôležité, aby sme privátny id_rsa kľúč nikdy
nezverejňovali.
Otvoríme súbor id_rsa.pub a skopírujeme jeho obsah.
Pridanie SSH kľúča na Github
V nastavení účtu sa presunieme do sekcie SHH and GPG keys, kde klikneme na New SSH key:

Zobrazený formulár vyplníme takto:

Do poľa:
- Title vložíme nejaký náš názov kľúča,
- Key type ponecháme Authentication Key,
- Key vložíme obsah zo súboru
id_rsa.pub.
Testovanie funkčnosti SSH kľúča
Fungovanie SSH kľúča si teraz overíme. Otvoríme príkazový riadok, v
ktorom spustíme príkaz ssh -T [email protected] a zadáme
passphrase:
MINGW64:/c/mygit IctDemy@DESKTOP-ADEVTG4 MINGW64 /c/mygit (main) $ ssh -T [email protected] Enter passphrase for key /c/Users/<User>.ssh/id_rsa:
Po zadaní hesla sa nám vráti nasledujúca správa, ktorá oznamuje že SSH spojenie s GitHub prebehlo v poriadku:
MINGW64:/c/mygit IctDemy@DESKTOP-ADEVTG4 MINGW64 /c/mygit (main) $ ssh -T [email protected] Enter passphrase for key /c/Users/<User>.ssh/id_rsa: <passphrase> Hi [Your username] ! You've successfully authenticated, but GitHub does not provide shell access. IctDemy@DESKTOP-ADEVTG4 MINGW64 /c/mygit (main) $
Ak sa budeme s GitHub spájať pomocou protokolu SSH, Git automaticky bude
čítať kľúče z adresára /.ssh
V ďalšej lekcii, Git - Vzdialený repozitár - Tvorba a nastavenie repozitára, si vytvoríme vzdialený repozitár a ukážeme si jeho dôležité nastavenia vrátane vytvorenia issue, odkazu a prístupu pre užívateľov.
