-
Exercice 1 : Créer un compte Github
+
Exercice 1 : Créer un compte Github
```
1. Si vous n'en avez pas déjà un, créer un compte sur
https://github.com
-2. Créer un dépôt vide. Créez ce dépôt **privé**, cela permettra
+2. Créer un dépôt en suivant les consignes ci-dessous.
+
+* Créez ce dépôt **privé**, cela permettra
dans l'exercice 2 d'activer notre jeton. Vous pourrez le rendre public
après l'exercice 2, c'est comme vous le souhaitez.
+* Créer ce dépôt avec un `README.md` en cliquant sur la case `Add a README file`
+* Ajouter un `.gitignore` en sélectionnant le modèle `Python`
*Connexion sur
https://github.com > + (en haut de la page) > New repository > Renseigner le "Repository name" > Cocher "private" > "Create repository"*
@@ -177,13 +170,20 @@ il est nécessaire de s’authentifier (un dépôt distant, même public, ne peu
Plus précisément, il existe deux modalités pour faire connaître son identité à `Github` :
-* une authentification HTTPS (décrite ici) : l’authentification se fait avec un login et un mot de passe (qu’il faut renseigner à chaque interaction avec le dépôt), ou avec un token (méthode à privilégier).
-* une authentification SSH : l’authentification se fait par une clé cryptée disponible sur le poste de travail et que GitHub ou GitLab connaît. Une fois configurée, cette méthode ne nécessite plus de faire connaître son identité : l’empreinte digitale que constitue la clé suffit à reconnaître un utilisateur.
+* une __authentification HTTPS__ (décrite ici) : l’authentification se fait avec un login et un mot de passe ou avec un _token_ (un mot de passe compliqué généré automatiquement par `Github` et connu exclusivement du détenteur du compte `Github`) ;
+* une __authentification SSH__ : l’authentification se fait par une clé cryptée disponible sur le poste de travail et que `GitHub` ou `GitLab` connaît. Une fois configurée, cette méthode ne nécessite plus de faire connaître son identité : l’empreinte digitale que constitue la clé suffit à reconnaître un utilisateur.
La [documentation collaborative `utilitR`](https://www.book.utilitr.org/03_fiches_thematiques/fiche_configurer_git.html#interaction-avec-un-d%C3%A9p%C3%B4t-distant-principe) présente les raisons pour lesquelles il convient de favoriser
la méthode HTTPS sur la méthode SSH.
-Depuis août 2021, `Github` n'autorise plus l'authentification par mot de passe
+::: {.cell .markdown}
+```{=html}
+
+
Note
+```
+
+
+Depuis Août 2021, `Github` n'autorise plus l'authentification par mot de passe
lorsqu'on interagit (`pull`/`push`) avec un dépôt distant
([raisons ici](https://github.blog/changelog/2021-08-12-git-password-authentication-is-shutting-down/)).
Il est nécessaire d'utiliser un *token* (jeton d'accès) qui présente l'avantage
@@ -202,6 +202,12 @@ d'un dépôt).
Pour choisir entre ces différentes options, vous pouvez vous rendre sur *Settings > Password and authentication > Enable two-factor authentication*.
+```{=html}
+
+```
+:::
+
+
::: {.cell .markdown}
```{=html}
@@ -235,11 +241,12 @@ connu de vous seuls.
La [documentation officielle](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token) comporte un certain nombre de captures d'écran expliquant
comment procéder.
-Nous allons utiliser le `credential helper` associé à Git pour stocker
+Nous allons utiliser le `credential helper` associé à `Git` pour stocker
ce jeton. Ce `credential helper` permet de conserver de manière pérenne
un jeton (on peut aussi faire en sorte que le mot de passe soit automatiquement
supprimé de la mémoire de l'ordinateur au bout, par
exemple, d'une heure).
+
L'inconvénient de cette méthode est que `Git` écrit en clair le jeton dans
un fichier de configuration. C'est pour cette raison qu'on utilise des jetons
puisque, si ces derniers sont révélés, on peut toujours les révoquer et éviter
@@ -247,11 +254,13 @@ les problèmes (pour ne pas stocker en clair un jeton il faudrait utiliser
une librairie supplémentaire comme `libsecrets` qui est au-delà du programme
de ce cours).
-Ma recommandation,
-si vous désirez conserver de manière plus durable ou plus sécurisée votre jeton
+Si vous désirez conserver de manière plus durable ou plus sécurisée votre jeton
(en ne conservant pas le jeton en clair mais de manière hashée),
est d'utiliser un gestionnaire de mot de passe comme
-[Keepass](https://keepass.fr/) (recommandé par l'Anssi).
+[Keepass](https://keepass.fr/) (recommandé par l'Anssi). Néanmoins,
+il est recommandé de tout de même fixer une date d'expéritation
+aux jetons pour limiter les risques de sécurité d'un _token_ qui fuite
+sans s'en rendre compte.
::: {.cell .markdown}
```{=html}
@@ -263,7 +272,7 @@ est d'utiliser un gestionnaire de mot de passe comme
1️⃣ Suivre la
[documentation officielle](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token) en ne donnant que les droits `repo` au jeton (ajouter les droits
`workflow` si vous désirez que votre jeton soit utilisable pour des projets
-où l'intégration continue est nécessaire)
+où l'intégration continue est nécessaire).
Pour résumer les étapes devraient être les suivantes :
@@ -307,7 +316,9 @@ vous avez un message de `Git`:
> warning: You appear to have cloned an empty repository.
-Ceci est normal, ce n'est pas une erreur. Le dossier de votre projet a bien
+Ce n'est pas une erreur mais il est préférable de suivre la
+consigne de l'exercice 1 et de créer un projet non vide.
+Le dossier de votre projet a bien
été créé.
Si vous avez une erreur, suivez la consigne présentée ci-après
@@ -351,8 +362,8 @@ A ce stade, nous avons configuré `Git` pour être en mesure
de s'authentifier automatiquement et nous avons cloné le dépôt pour avoir une
copie locale de travail.
-On n'a encore ajouté aucun fichier à `Git`. D'ailleurs, la première
-chose à faire est d'exclure un certain nombre de fichiers, afin de ne pas
+On n'a encore ajouté aucun fichier à `Git`. L'une des premières
+choses à faire est d'exclure un certain nombre de fichiers, afin de ne pas
faire une erreur pénible à réparer.