Accéder à GitHub et GitLab
Dans cet atelier pratique, nous allons nous intéresser à la prise en main de la plateforme GitHub, à commencer par la création d'un compte et la configuration de l'authentification. Une fois que nous aurons réussi à nous connecter à GitHub, nous allons tenter de faire quelque chose de similaire sur la plateforme alternative GitLab.
Git vs. GitHub et GitLab
Soyez rassurés, ceci n'est pas une formation GitHub (ou GitLab) à
proprement parler. La commande git peut très bien s'utiliser sans recours
à un hub externe, et c'est d'ailleurs ce que nous allons faire dans un
premier temps. Mais tôt ou tard, nous allons arriver à un point où nous
voudrons synchroniser des fichiers entre notre ordinateur et un dépôt (ou
repository) externe. Pour ce cas de figure, je pense que ce n'est pas une
mauvaise idée de vous familiariser avec les deux environnements de
développement les plus populaires de la planète.
Créer un compte sur GitHub
Si vous ne disposez pas déjà de compte sur la plateforme GitHub, c'est le moment d'en créer un. Oui, c'est gratuit. Non, il n'y a rien à payer. Saisissez votre adresse e-mail dans le champ d'inscription sur la page d'accueil et cliquez sur le bouton Sign-Up for GitHub :
Choisissez un mot de passe raisonnablement compliqué ainsi qu'un nom d'utilisateur :
Bien choisir son identifiant
Par la suite, le nom d'utilisateur apparaîtra dans tous les liens de vos
projets GitHub. Ce n'est donc pas une mauvaise idée de choisir un nom
parlant qui restera valable dans la durée (comme kikinovak ou
microlinux).
Créer un premier dépôt
Nous allons créer un premier dépôt « bidon » qui servira uniquement à tester l'interaction entre GitHub et votre installation locale de Git. Une fois que vous êtes connecté à GitHub, repérez le bouton Create Repository et cliquez dessus :
Il est où le bouton ?!?
L'interface de GitHub est une cible mouvante. Ne vous inquiétez pas si l'emplacement et le nom des boutons ne correspondent pas exactement aux captures d'écran. Parfois il faut chercher un peu.
-
Choisissez un nom comme
test,bidonoumyfirstrepopour ce premier dépôt. -
Réduisez la visibilité du dépôt à Private.
-
Cochez la case Add a README file si ce n'est déjà fait. Comme ça nous aurons quelque chose à nous mettre sous la dent, et nous pourrons tester le dépôt avec la commande
git clone. -
Cliquez sur Create repository.
Si tout se passe bien, votre premier dépôt apparaîtra comme ceci sous la forme
<identifiant>/<dépôt> :
Comment s'authentifier ?
Lors de la création de votre compte, vous avez défini un identifiant et un mot de passe pour accéder à la plateforme. Dans le passé, cet identifiant et ce mot de passe permettaient également de s'authentifier pour toutes les opérations Git en ligne de commande, dans un éditeur de texte ou dans un IDE.
Cette manière de s'authentifier n'est plus valable depuis 2020 pour des raisons de sécurité. Depuis cette date, les opérations Git nécessitent un autre mode d'authentification, parmi lesquels on trouve :
-
les tokens
-
les clés SSH
Créer un token
Les Personal Access Tokens sont des mots de passe spécifiquement générés par GitHub pour accéder aux dépôts et - plus généralement - s'acquitter de tâches administratives diverses et variées.
Ce n'est pas forcément la méthode d'authentification que je recommande, mais vu qu'elle est extrêmement répandue, ce n'est pas une mauvaise idée de savoir s'en servir.
-
Dans l'interface web de GitHub, cliquez sur l'avatar de votre compte en haut à droite.
-
Cliquez sur Settings dans le menu dépliant.
-
Repérez l'entrée de menu Developer Settings tout en bas à gauche et cliquez dessus.
-
Cliquez sur Personal access tokens > Tokens (classic).
-
Cliquez sur Generate new token > Generate new token (classic).
-
Renseignez votre mot de passe GitHub et cliquez sur Confirm.
-
Donnez un nom à votre token, par exemple
Formation. -
Définissez l'expiration du token, par exemple 90 jours.
-
Dans un premier temps, autorisez l'accès aux dépôts en cochant Select scopes > repo.
-
Cliquez sur Generate token tout en bas de la page.
L'affichage du token est éphémère
Vous pouvez copier/coller le token, l'enregistrer dans un fichier texte local ou (beaucoup mieux) un gestionnaire de mots de passe ou autre Credential Manager. Une fois que vous aurez quitté cette page, vous n'aurez plus aucun moyen de retrouver votre token, et si vous ne l'avez pas enregistré d'une manière ou d'une autre, il va falloir en générer un autre.
Premier clonage
Ouvrez un terminal sur votre machine et créez un répertoire formation-git
destiné à ranger les fichiers de nos ateliers pratiques :
Créez un répertoire atelier-01 pour notre premier test de clonage de
dépôt :
Dans l'interface web de GitHub, cliquez sur le lien correspondant à votre dépôt, repérez le bouton Code et cliquez dessus pour le déplier :
Repérez l'URL affichée dans l'onglet HTTPS, retournez dans le terminal et récupérez le dépôt comme ceci :
$ git clone https://github.com/kikinovak/test.git
Cloning into 'test'...
Username for 'https://github.com': kikinovak
Password for 'https://kikinovak@github.com': ***********************
remote: Enumerating objects: 3, done.
remote: Counting objects: 100% (3/3), done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
Receiving objects: 100% (3/3), done.
Si tout s'est passé comme prévu, vous vous retrouvez avec un répertoire nouvellement créé qui correspond au nom de votre dépôt, et qui contient un fichier README.md :
Les tokens au quotidien
Pour ce premier clonage, nous nous sommes servis du Personal Access Token défini dans l'interface web de GitHub. Je ne détaillerai pas plus cette façon de faire, étant donné qu'il existe une méthode alternative plus « classique » et plus sécurisée. Ceci étant dit, sachez que si jamais vous utilisez un IDE comme Visual Studio Code sous Windows, vous disposez d'un Credential Manager intégré qui vous évitera d'avoir à saisir votre identifiant et votre mot de passe à chaque fois que vous devrez vous connecter à votre dépôt.
L'authentification par clé SSH
Sous Linux, nous allons utiliser l'authentification par clé SSH pour nous connecter à GitHub. Vérifiez tout d'abord si vous ne disposez pas déjà d'une paire de clés SSH :
$ tree ~/.ssh/
/home/kikinovak/.ssh/
├── authorized_keys
├── id_rsa
├── id_rsa.pub
└── known_hosts
0 directories, 4 files
Ici, les deux fichiers id_rsa et id_rsa.pub constituent respectivement ma
clé privée et ma clé publique. Si vous n'avez pas ces fichiers sur votre
machine, il suffit de les générer comme ceci :
$ ssh-keygen -t rsa -b 4096
Generating public/private rsa key pair.
Enter file in which to save the key (/home/microlinux/.ssh/id_rsa): ↵
Enter passphrase (empty for no passphrase): ↵
Enter same passphrase again: ↵
Your identification has been saved in /home/microlinux/.ssh/id_rsa.
Your public key has been saved in /home/microlinux/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:k6jcSXmgobhs/wguDJa9UUFwrnPPtOFoGSvLB8fzJJk microlinux@sandbox
The key's randomart image is:
+---[RSA 4096]----+
| .oo |
| o. |
| ..o |
| . ..+ + . |
|. +o+o*oS |
|o+ =oEX+o. |
|=+ .B=B= |
|+.+.=. . |
|.. =o. |
+----[SHA256]-----+
RSA ou ED25519 ?
Alternativement, rien ne vous empêche d'utiliser un algorithme de chiffrement plus récent et plus robuste :
Dans ce cas, vous vous retrouvez avec une paire de clés id_ed25519 et
id_25519.pub. Peu importe, du moment que vous identifiez bien votre clé
publique et votre clé privée et que vous n'avez pas la mauvaise idée de
publier votre clé privée.
Affichez votre clé publique dans le terminal :
$ cat ~/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQAYatahongaga8KslxEEAQ8UFZ6R
J9+0L50aE8OajnhzrDGnaGnaGnaWpQ6ntZzWR3U2GO5x9KN9LRp918lZc
5iRhdnVo/hiHPLv3EQZNI2oId6tCvyZkDFfBHp1K4yRxJZC/GvwSTdPro
E5mQHdx4IcXuE+lAbKDYJIib5TJ7GfqMSyDYu8uRKFlXYzr0acBjlBiLp
56Rio/BVKFXEI8Gq6BCtd4MQyBvh4YcqnZnhHqZ8/mA5wkGjnCnxKg+Tn
mKNufeuvnVjRBOmp+BpFbRKgTNPhHWOwqE2/z7F2J59lCsOmYZlNYZ5do
DOVvWtcVzdOFqVGJqUaSXFvI8bRcbCSo7CQ== kikinovak@alphamule
-
Dans l'interface web de GitHub, cliquez sur l'avatar de votre compte en haut à droite.
-
Cliquez sur Settings dans le menu dépliant.
-
Repérez l'entrée de menu SSH and GPG keys et cliquez dessus.
-
Cliquez sur New SSH key.
-
La rubrique Title sert à donner un nom à votre clé. Ici, je renseigne généralement le nom de la machine.
-
Effectuez un copier/coller de la clé publique (et pas la clé privée, hein) dans le champ Key.
-
Renseignez votre mot de passe GitHub et cliquez sur Confirm.
-
Si tout se passe bien, votre clé apparaît dans la rubrique Authentication Keys.
Le clonage revisité
Maintenant que l'authentification par clé SSH est mise en place, nous allons
utiliser une autre technique pour cloner notre premier dépôt. Revenez dans le
répertoire formation-git et créez un répertoire atelier-02 :
Dans l'interface web de GitHub, ouvrez la page correspondant à votre dépôt, cliquez sur le bouton Code et cette fois-ci, affichez l'onglet SSH :
Récupérez votre dépôt en renseignant l'URL affichée sur le site :
$ git clone git@github.com:kikinovak/test.git
Cloning into 'test'...
remote: Enumerating objects: 3, done.
remote: Counting objects: 100% (3/3), done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
Receiving objects: 100% (3/3), done.
Cette fois-ci, plus aucun identifiant et autre mot de passe à saisir. L'authentification s'effectue désormais sous le capot.
L'alternative libre GitLab
L'entreprise GitLab propose une panoplie de services comparables à GitHub. Là aussi, vous aurez le choix entre une offre de base gratuite et un éventail de fonctionnalités payantes. Comme pour GitHub, l'offre gratuite est calculée assez généreusement.
La particularité de GitLab, c'est que le code source de l'application est libre. En d'autres termes, rien ne vous empêche d'installer votre propre serveur GitLab pour héberger vos projets sur votre propre matériel. C'est donc la solution idéale pour les entreprises qui rechignent à héberger leur propriété intellectuelle chez un prestataire externe.
Je vous propose de découvrir GitLab dans le cadre d'un petit atelier pratique qui servira à consolider ce que nous avons appris jusqu'ici :
-
Créez un compte sur GitLab si vous n'en avez pas déjà un.
-
Créez un premier dépôt privé
gitlab-testavec un fichierREADME. -
Utilisez le protocole HTTPS pour cloner ce dépôt dans un répertoire local
formation-git/atelier-03. -
Constatez-vous une différence dans le fonctionnement de GitLab et GitHub ?
-
Enregistrez votre clé SSH publique dans l'interface web de GitLab.
-
Utilisez le protocole SSH pour cloner le dépôt
gitlab-testdans un répertoire localformation-git/atelier-04.












