L’environnement GitHub

GitHub est une plateforme de développement collaboratif massivement utilisée dans le monde logiciel. Elle permet de stocker et de partager du code. Elle est basée sur le système de gestion de version Git.

Cette plateforme est utilisée pour certains exercices du cours (identifiés par 🟩) pour lesquels la connexion à un compte GitHub est nécessaire.

Important

Pour que votre activité GitHub puisse être observable, votre username doit correspondre à vos identifiants ESIEE.

Si votre adresse mail ESIEE est prenom1-prenom2.nom1-nom2@esiee.fr, vous devez choisir prenom1-prenom2-nom1-nom2 comme username GitHub.

Si vous avez déjà un compte GitHub avec un username différent, vous pouvez changer votre username dans les paramètres de votre compte GitHub.

Pour chaque exercice disponible dans cet environnement, vous devrez être connecté à votre compte GitHub.

Créer son propre repo

Cliquer sur le lien du repo GitHub de l’exercice.

Cliquer sur le bouton :greenbox:`Use this template` et choisir l’option :greenbox:`Create a new repository` crée une copie du repo de l’exercice dans votre propre espace GitHub .

Vous serez redirigé vers une page de création d’un nouveau repo. Il faut alors renseigner le champ Repository name avec le nom de l’exercice (par exemple :whitebox:`04-primes`) puis cliquer sur le bouton :greenbox:`Create repository`.

A cette étape, vous disposez de votre propre repo GitHub 🆁 dont l’URL générique est https://github.com/[YOUR-GITHUB-USERNAME]/[EXERCISE-NAME]. C’est un référentiel qui contient l’ensemble du code, et des fichiers associés à cet exercice. A l’état initial, il contient uniquement le starter code. A l’état final il contiendra votre travail.

Créer son codespace

Sur la page de ce repo, vous pouvez accéder à l’onglet :greenbox:`Code` puis cliquer sur :greenbox:`Codespaces` et :greenbox:`Create codespace on main` pour créer un environnement de développement dans le cloud.

Un codespace 🅲 est un container Linux hébergé par GitHub. Il fait tourner une instance de Visual Studio Code dans votre navigateur liée au container. Et comme en local sur votre machine, vous disposez d’un éditeur de code, d’un terminal et d’un navigateur de fichiers. C’est dans cet environnement que vous devrez réaliser l’exercice.

Astuce

Les codespaces sont gérés sur la page https://github.com/codespaces. En version gratuite la ressource est limitée. Veillez à stopper les codespaces que vous n’utilisez pas.

Architecture globale

L’architecture globale de l’environnement de travail est la suivante :

  • un environnement local sur lequel est installé Python, VS Code et Git ;

  • un repo GitHub 🆁 qui contient le code source de l’exercice ;

  • un codespace 🅲 qui est un container Linux hébergé par GitHub auquel on accède avec un simple navigateur.

Architecture globale

Vous serez amenés à travailler dans les deux ressources 🆁 et 🅲, ainsi que dans l’environnement local.

Faire l’exercice

Pour chaque exercice, dans votre codespace 🅲, il faut lire attentivement la consigne de l’exercice dans le fichier README.md.

Une fois les résultats satisfaisants, il faut transférer le travail du codespace 🅲 dans le repo 🆁

$ git add .                             # ajouter tous les fichiers du codespace 🅲 à l'index git
$ git commit -m "message explicatif"    # ajouter les modifications à l'historique du projet
$ git push                              # transférer les modifications sur le repo 🆁

Après cette dernière étape :

  • le codespace 🅲 et le repo 🆁 sont synchronisés ;

  • les détails de l’évaluation du travail sont visibles dans l’onglet Actions du repo 🆁.

Astuce

Il est pratique d’avoir les deux ressources 🅲 et 🆁 ouvertes simultanément dans un navigateur.

Note

Conformément à l’architecture globale, il est possible de synchroniser votre repo local avec le référentiel distant 🆁. Cependant, cette étape n’est pas obligatoire pour valider votre travail.

Ce qu’il faut retenir

  • GitHub est une plateforme de développement collaboratif basée sur Git

  • GitHub peut être utilisé sans système de gestion de version

  • Le username GitHub doit correspondre aux identifiants ESIEE pour que l’activité soit observable

  • Il est impossible de changer son username GitHub après création du compte

  • « Use this template » permet de créer une copie du repo d’exercice dans son propre espace GitHub

  • Un repo GitHub ne peut contenir que du code source

  • À l’état initial, le repo contient uniquement le starter code

  • Le nom du repository doit être différent du nom de l’exercice

  • Un codespace est un container Linux hébergé par GitHub

  • Les codespaces ne peuvent pas exécuter Visual Studio Code

  • En version gratuite, la ressource codespace est limitée

  • Il est impossible d’arrêter un codespace une fois créé

  • La commande « git add . » ajoute tous les fichiers du codespace à l’index git

  • « git commit » transfère directement les modifications sur le repo distant

  • « git push » synchronise le codespace avec le repo GitHub

  • L’onglet « Actions » n’affiche aucune information sur l’évaluation du travail

  • L’environnement local minimal doit contenir Python, VS Code et Git

  • On peut utiliser indifféremment le codespace ou l’environnement local pour développer du code

  • Il est possible de travailler simultanément sur l’environnement local et le codespace

  • L’environnement local ne peut pas accéder au repo distant

  • Le repo distant GitHub sert de seul référentiel pour le code source

  • Le codespace et le repo distant sont automatiquement synchronisés

  • Les modifications doivent être explicitement transférées du codespace vers le repo distant

  • Le repo distant ne peut être modifié que depuis un codespace

  • Le codespace permet d’accéder à VS Code via un navigateur web

  • Chaque codespace est partagé entre tous les utilisateurs du repo

  • Il est recommandé d’avoir le codespace et le repo distant ouverts simultanément

  • Les codespaces n’ont pas accès à un terminal

  • La synchronisation entre environnement local et repo distant est possible

  • Tous les environnements (local, codespace, repo distant) sont automatiquement synchronisés

  • Les trois environnements peuvent contenir des versions différentes du code

  • Il est obligatoire de synchroniser l’environnement local pour valider son travail