GitHubVoici le troisième volet de la formation Git. Dans mon précédent article, j’ai décrit l’installation et la configuration initiale de la commande git sur votre machine. Aujourd’hui 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.

AstuceSoyez 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 :

GitHub - Créer un compte

Choisissez un mot de passe raisonnablement compliqué ainsi qu’un nom d’utilisateur :

GitHub - Créer un compte

AstucePar 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 :

GitHub - Création d'un dépôt

  • Choisissez un nom comme test, bidon ou myfirstrepo pour ce premier dépôt.
  • Conservez 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.

GitHub - Création d'un dépôt

Si tout se passe bien, votre premier dépôt apparaîtra comme ceci sous la forme <identifiant>/<dépôt> :

GitHub - Création d'un 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.

ImportantCette 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’icône symbolisant 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.

GitHub - Personal access token

ImportantAttention, l’affichage de ce token est éphémère ! Vous pouvez le copier/coller, 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.

GitHub - Personal Access Token

AstuceNote pour les petits malins : Non, le token qui s’affiche sur la capture d’écran n’est plus valable. Vous pouvez toujours essayer de l’utiliser pour accéder à mes dépôts privés, mais vous n’irez probablement pas bien loin.

Premier clonage

Ouvrez un terminal sur votre machine, créez un répertoire formation-git destiné à ranger les fichiers de nos ateliers pratiques :

$ mkdir formation-git
$ cd formation-git/

Créez un répertoire atelier-01 pour notre premier test de clonage de dépôt :

$ mkdir atelier-01
$ cd atelier-01/

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 :

GitHub - Clone

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 :

$ ls -F
test/
$ ls test/
README.md

AstucePour 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.

Configurer 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): [Entrée]
Enter passphrase (empty for no passphrase): [Entrée]
Enter same passphrase again: [Entrée]
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-01
The key's randomart image is:
+---[RSA 4096]----+
|   .oo           |
|    o.           |
|    ..o          |
| . ..+ + .       |
|. +o+o*oS        |
|o+ =oEX+o.       |
|=+ .B=B=         |
|+.+.=. .         |
|.. =o.           |
+----[SHA256]-----+

Alternativement, rien ne vous empêche d’utiliser un algorithme de chiffrement plus récent et plus sûr :

$ ssh-keygen -t ed25519

Dans ce cas, vous vous retrouvez avec une paire de clés ~/.ssh/id_ed25519 et ~/.ssh/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’icône symbolisant 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.

GitHub - Clé SSH

  • Renseignez votre mot de passe GitHub et cliquez sur Confirm.
  • Si tout se passe bien, votre clé apparaît dans la rubrique Authentication Keys.

GitHub - Clé SSH

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 :

$ cd ~/formation-git
$ mkdir atelier-02
$ cd 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 :

GitHub - Clone 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

GitLabL’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’une série de petits ateliers pratiques qui serviront à 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-test avec un fichier README.
  • 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-test dans un répertoire local formation-git/atelier-04.

Lire la suite : Initialiser un dépôt Git


La rédaction de cette documentation demande du temps et des quantités significatives de café espresso. Vous appréciez ce blog ? Offrez un café au rédacteur en cliquant sur la tasse.

 

Catégories : Formation

0 commentaire

Laisser un commentaire

Emplacement de l’avatar

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *