3 Utilisation de GitLab

Cette section présente l’utilisation du logiciel de versionning Git via le logiciel de forge Gitlab installée sur la forgemia de INRAE.

Si vous êtes déjà familier avec l’utilisation de ces 2 outils (Git/Gitlab) vous pouvez passer directement au chapitre suivant, sinon, vous apprendrez à:

  • vous connecter à l’instance Gitlab de la forgemia,
  • installer Git,
  • configurer votre poste de travail avec Gitlab (créer une clé SSH),
  • utiliser les commandes de bases de Git en lignes de commande ou avec Rstudio.

3.1 Connexion à l’instance GitLab de la forgemia

Tout agent de la fédération RENATER peut se connecter au Gitlab de la forgemia. Il suffit pour cela de choisir son établissement puis de se connecter avec ses identifiants LDAP: forgemia.inra.fr.

Pour les personnes hors ESR, il est possible d’envoyer un email au support forgemia afin qu’un compte CRU soit créé: .

3.2 Installation du logiciel git

Pour pouvoir utiliser GitLab (ou github …), il faut que le logiciel de versioning Git soit installé sur votre poste de travail.

Pour les OS, Windows ou MacOS, vous pouvez télécharger le logiciel à l’adresse suivante: https://git-scm.com/downloads, puis l’installer en suivant les instructions.

Pour les OS de type Linux, vous pouvez installer le logiciel avec les lignes de commandes suivantes:

sudo apt-get update
sudo apt-get install git

Afin de pouvoir faire le lien entre votre poste de travail et GitLab, vous devez:

  • configurer votre email dans Git sur votre poste de travail,
  • créer une clé SSH (cf. la section suivante).

A noter: vous devez configurer Git avec l’adresse email utilisée pour vous connecter à forgemia.inra.fr, sinon, cela ne fonctionnera pas.

Dans une console, utiliser les lignes de commande suivantes:

# Je configure l'email que j'utilise pour me logguer dans forgemia, dans git
git config --global user.email 'monmail'

# Je vérifie que la config de git est OK
git config --list

3.3 Création d’une clé SSH

Il est nécessaire de créer une clé SSH publique afin de connecter votre poste de travail à votre compte GitLab sous la forgemia. Cette clé SSH est le protocole de liaison entre git en local et GitLab, il est possible d’utiliser le protocole HTTP, mais nous recommandons plutôt le SSH.

Pour les utilisateurs de Rstudio, il est possible de créer cette clé directement dans Rstudio, dans les “paramètres globaux.” Sélectionner dans la barre d’outils Tools -> Global options… -> Git/SVN, la fenêtre suivante s’ouvre:

Créer une clé SSH sous Rstudio

  • Vérifier que Git soit indiqué dans “git executable.”
  • Créer une clé RSA key, en cliquant sur le bouton “Create RSA key.”
  • Lorsqu’elle est générée, copier la clé. Pour la faire apparaitre, cliquer sur “View public Key.”

Pour les utilisateurs linux, vous pouvez aussi créer votre clé SSH directement dans une console avec la commande suivante:

ssh-keygen

L’invite vous demandera où stocker la clé (dans un répertoire .ssh à créer s’il n’existe pas déjà):

Générer une paire de clés RSA publique/privée.
Entrez le fichier dans lequel enregistrer la clé (/home/user/.ssh/id_rsa) :

Vous pouvez afficher votre clé afin de la copier pour l’étape suivante:

cat .ssh/id_rsa.pub

Il faut alors coller cette clé publique dans les paramètres de votre compte GitLab sous la forgemia:

  • cliquer sur votre avatar en haut à droite lorsque vous êtes loggué sur forgemia.inra.fr puis sur “Edit profile,”
  • dans le menu à gauche de la page des settings, cliquer sur “SSH Keys,”
  • coller votre clé SSH dans la partie “Key” puis cliquer sur le bouton “Add key.”

Note: vous pouvez vérifier la connection SSH entre Rstudio et GitLab avec la commande suivante:

ssh -T git@forgemia.inra.fr

Si vous obtenez le message suivant, c’est que tout va bien: Welcome to GitLab, (VotreNom?)!

3.4 Travail en local avec le dépôt

3.4.1 Récupération (clone) du dépôt git

Après validation de votre demande d’hébergement d’application sur SK8, un dépôt pré-configuré vous sera créé, que vous devrez récupérer en local (cloner) pour le modifier et y mettre votre application.

Voici comment cloner un dépôt git :

3.4.1.1 Dans la console:

git clone git@forgemia.inra.fr:usernameMasterRepository/repoName.git

3.4.1.2 Dans Rstudio directement, création d’un projet versionné:

  • Cliquer sur File -> New Project... -> Version Control dans la fenêtre pop-up qui apparaît, puis Git dans la suivante,
  • Coller le chemin, au format SSH, dans la ligne Repository url, puis, choisir l’emplacement de votre nouveau projet versionné en cliquant sur le bouton Browse...:

Créer un projet versionné sous Rstudio

Vous aurez récupéré l’adresse url de votre repository, sur l’interface de votre repository, en cliquant sur le bouton Clone (bouton bleu à droite dans le pavé d’entête de celui-ci), n’oubliez pas de bien choisir au format SSH.

  • Cliquer sur le bouton Create Project, cela initialisera votre projet en ouvrant une nouvelle fenêtre Rstudio récupérant tous les fichiers présents dans le repository importé.

3.4.2 Les commandes push/pull/commit de Git

Git peut s’utiliser:

En cliquant sur les liens ci-dessus, vous aurez les documentations relatives à comment configurer et utiliser git avec les 3 outils.

Voici quelques supports d’aide pour vous accompagner sur l’utilisation de Git :

En ligne de commande

Ouvrir un terminal dans le dossier contenant le dépôt versionné avec l’instance GitLab de forgemia :

  • Récupérer la dernière version du dépôt : git pull
  • Faire les modifications dans les fichiers
  • Créer un commit des fichiers que vous avez modifiés/créés :
    • vérifier les noms des fichiers : git status
    • préparer le commit: git add [nomDuFichier] ou git add . (pour indiquer tous les fichiers)
    • commit: git commit -m "j’explique mon commit"
  • Mettre en ligne les modifications : git push

3.5 Contenu du dépôt

Les 2 images ci-dessous présentent un exemple d’un dépôt créé sur l’instance gitlab de la forgemia puis cloné sur un ordinateur en local.

Sur la première image, vous voyez le dépôt sur l’interface gitlab :

Dépôt sur GitLab

Sur la seconde, vous voyez ce même dépôt cloné (donc dupliqué en local sur l’ordinateur) ouvert dans Rstudio:

Dépôt cloné en local ouvert dans Rstudio

Les fichiers présents dans un dépôt créé par l’équipe SK8 suivant vos pré-requis seront expliqués dans la section suivante (#Présentation-du dépôt/projet-en-local).

Les modifications du dépôt sont faites en local puis déposés sur l’instance gitlab par les commandes add + commit + push expliquées précédemment.