TD : Prise en main de GitLab

BUT 3 - Domaines d’application

Auteur

Jean-Francois Rey

Objectif du TD

Apprendre à utiliser GitLab.

Prérequis

Avertissement

Disposer des comptes sur GitLab de chacun des membres du groupe projet.

Pour vous connecter, utiliser vos comptes universitaire via le bouton “Fédération Education-Recherche”.

Rappel Git

Git est un outil libre et opensource de gestion de versions décentralisé créé en 2005 par Linus Torvalds.
Git sur wikipédia

Rappel GitLab

GitLab est un outil libre basé sur Git. Il propose des fonctionnalités telque les permissions, le travail collaboratif, les wikis, le suivie des bugs, l’intégration continue et la livraison continue…
GitLab sur wikipedia

Git s’utilise en local sur votre machine (votre PC) pour gérer et versionner (commit) votre travail. GitLab permet de synchroniser les versions de votre travail et celui de vos collaborateurs en centralisant ces informations sur un serveur (push et pull). GitLab fournie plus de fonctionnalité que Git (ces fonctionnalité ne sont pas du Git mais sont propres à GitLab).

Schéma simplifié du fonctionnement de Git en local et avec GitLab

Dans ce TD, nous n’allons pas aborder le fonctionnement de Git (c.f. cours) et nous allons travailler uniquement sous GitLab. Les fichiers et versionnement créés seront uniquement sur l’instance distante GitLab.

Une incompréhension ?

Si vous avez une incompréhension consulter le cours et demander au professeur pour avoir plus d’explications.
Il s’agit de notions importantes qui peuvent être difficile à appréhender au premier abord.

Première connexion

  • A la première connexion, vous vous retrouvez sur la page d’accueil :
    • Affichage principal, le contenu du menu de gauche.
    • menu de gauche (raccourcies)
      • “+” créer un projet, une issue, …
      • Icon/avatar sur votre profil utilisateur
      • Les issues dont vous avez la charge, les demandes de merge request, la TODO list.
      • vos Projets, Groupes, Tâches, etc.
Observer les différents icons et informations diponibles.

Mes préférences

Cliquer en haut du menu sur l’icon (rond) en haut à gauche -> éditer le profile.
Ici vous pouvez modifier vos informations de compte GitLab.

Nous verrons dans le TP1 comment utiliser une connexion SSH en utilisant une clé spécifique (SSH Keys).

Mon premier projet

Pour créer un projet/repository (ou dépôt GIT), il faut cliquer sur l’icon + (ou “nouveau projet” depuis la page d’accueil).
Puis choisir un projet vide (blank template).

-> Vous pouvez donner le nom que vous voulez à votre projet (ici “Mon premier projet gitlab”)

Observer que l’URL se forme en fonction du nom

-> Le namespace, là où le projet va être stocké (ici dans le groupe cours/iut20242025). Par défaut il s’agit de votre espace de travail (votre ID).
-> Le niveau de visibilité (privée, interne et public).
-> Configuration du projet, deselectionner les options.
-> Cliquer sur Create project

Le projet (vide)

GitLab vous a créé un projet vide. C’est à dire qu’il n’y a pas de fichier versionné, ni de composant pré-configuré.

Les informations affichées vous explique comment configurer le projet et votre espace de travail (en local sur votre PC ou sous rstudio, etc.). Cette partie sera abordé dans le TP1.

Par défaut GitLab active beaucoup de fonctionnalité que nous n’avons pas forcement besoin dans l’immédiat. Pour simplifier la navigation nous allons en déactiver certaines.

Settings projet

Cliquer sur Settings -> General. Aller dans la section Visibility,project features,permissions.

Dans cette partie vérifier que les options sont activées ou déactivées :

  • ❎ Issues
  • ❎ Repository
    • ❌ Merge request
    • ❌ Forks
    • ❌ Git LFS
    • ❎ CI/CD
  • ❎ Container Registry
  • ❌ Analytics
  • ❌ Security and compliance
  • ❌ Wiki
  • ❌ Snippets
  • ❌ Package registry
  • ❌ Model experiments
  • ❌ Model registry
  • ❎ Pages
  • ❌ Monitor
  • ❌ Environments
  • ❌ Feature Flags
  • ❌ Infrastructure
  • ❎ Release
Pas vu dans ce cours

Nous avons déactivé des fonctionnalités essentielles à un bon projet et au travail collaboratif. Elles ne seront pas abordées dans ce cours mais je vous encourage à les explorer.
Parmis les fonctionnalités importante il y a Merge Request (MR), Forks et Git LFS.

Sauvegarder les modifications

Maintenant, vous pouvez observer que le menu de gauche de votre projet propose moins d’éléments.

Observer les différentes options disponibles dans le settings.

Premier versionnement

Pour pouvoir explorer votre projet nous allons créer un premier versionnement depuis GitLab.

Astuce

Habituellement, on travail depuis son espace de travail (sur son PC) et GIT est utilisé pour versionner et synchroniser le code entre votre PC et GitLab.

-> Sur la page d’accueil du projet cliquer à droite sur + Add README. Cela va ouvrir un éditeur en ligne pour créer un fichier README.
-> Ajouter du texte (Titre, nom ou autre)
-> Cliquer sur l’icon de gauche en forme de graphe (source control)
-> Ajouter un commentaire et cliquer sur Commit and Push

Votre projet doit ressembler à ceci maintenant.

Le menu d’un projet

  • Menu de gauche pour les différentes rubriques.
  • Affichage principal du projet
    • affiche l’arborescence du projet,
    • affiche le README par défaut,
    • Le dernier commit avec son message et clé SHA,
    • la branche visionné (ici main),
    • boutons pour l’historique des versionnements, rechercher et éditer un fichier, l’accès au dépôt pour le clonage.

Manage

Management du projet GitLab.

  • Activity : affiche les actions effectuées
  • Members : la liste des membres qui ont accès au projet (vous pouvez ici ajouter vos bînomes)
  • Labels : les labels sont des étiquettes utilisés dans les issues principalement
Inviter votre binôme

Inviter votre binôme au projet.
Vous pourrez remarquer qu’il existe plusieurs niveau de droit d’accès à votre projet.
Le rôle Développeur permet de modifier les fichiers versionnés. Mainteneur permet en plus d’avoir accès à la gestion du projet GitLab.
Plus d’information ici

Plan

Gestions de issues, plannification des tâches.

  • Issues : les issues “fiches”/“tickets” pour reporter un bug, expliquer une nouvelle fonctionnalité, etc.
  • Issue boards : le tableau de board affiche les issues suivants votre méthodes de suivie
  • Milestones : création et liste des Milestones bornes/date limite de rendu des issues
Créer une nouvelle Issue

Titre, Description, Assigné à vous, Milestone, Labels. En option Date de rendu (Due date). Le titre doit être simple et compréhensible. La description doit contenir le maximum d’information.

Les Issues seront abordées durant les TPs.

Code

C’est la partie GIT pur. Ici vous avez accès: aux fichiers versionnés, les branches, les différents commits, les Tags.

  • Repository : le contenu sous GIT du projet
  • Branches : les différentes branches du projet
  • Commits : la listes des différents commit par branches
  • Tags : création et la liste des Tags
  • Repository graph : les différents commit sous forme de graphe
  • Compare revisions : pour comparer deux versions du projet
Exploration

Vous pouvez créer de nouveaux commits (en ajoutant un fichier ou modifiant les existants par exemple).
Naviguer dans les différents menu pour observer leurs fonctionnalités.

Build

C’est la partie automatisation du projet sous GitLab Intégration et Livraison Continue (CI/CD).

  • Pipeline : les différents pipeline
  • Jobs : la totalité des jobs/tâches
  • Pipeline editor : l’éditeur du pipeline (pour débugger un pipeline)
  • Pipeline schedules : permet de lancer automatiquement des pipelines à des heures régulières
  • Artifacts : tous les fichiers produits durant les jobs

Ces notions seront abordées durant les TPs.

Deploy

C’est la partie d’accès à certaines Livraisons.

  • Releases : créer et lister les releases (sorties de projet majeurs)
  • Container Registry : dépôt d’image docker de votre projet
  • Pages : un site web static de votre projet

Ces notions seront abordées durant les TPs.

Avant d’aller plus loin

Chacun son tour

Chaque membre du binôme doit avoir effectué les étapes précédentes sur sa propre session GitLab.

Pour aller plus loin

Important

Ici nous avons survolé rapidement des notions principales de GitLab. Certaines seront vu en TPs, d’autres sont à connaitre mais ne seront pas utilisées.

Dans votre vie professionnelle vous serez sans doute confronté à l’utilisation de GitLab ou d’un autre outil basé sur GIT pour la gestion de vos codes. Il est important de connaitre leurs existences et leurs fonctionnements (à minima GIT).

Et GitHub ?

D’autres outils comme GitLab existent, Le plus connu est GitHub.