Description du service

Gitlab est un service d'hébergement git collaboratif.

Il est destiné aux utilisateurs académiques membres du réseau eduGAIN et à leurs collaborateurs pour un usage strictement professionnel.

Gitlab et la Forge (Redmine), bien que leur fonctionnalités se recouvrent en partie, peuvent s'intégrer: les tickets Gitlab peuvent être gérés dans Redmine. D'ailleurs leurs objets sont différents (hébergement de code pour l'un, gestion de tickets pour l'autre).

Gitlab est déployé dans sa version Community Edition.

Avertissement

Qualité de service

Notre engagement est de type best effort: nous nous engageons à mettre en œuvre tous les moyens pour assurer la continuité du service.

Pour nous-même, nous considérons ce service comme de criticité élevée (niveau 2).

Respect des conditions d'utilisation

Nous nous réservons le droit de désactiver les comptes ou dépôts qui ne respecteraient pas les conditions d'utilisation, en particulier les droits sur la propriété intellectuelle.

Niveaux de visibilité des dépôts

Il existe 3 niveaux de visibilité pour les dépôts (et donc le code qu'il contiennent) :

  • Privé: le dépôt n'est visible que du propriétaire et des utilisateurs ou groupe qu'il aura explicitement ajoutés
  • Interne: le dépôt est visible à tout utilisateur connecté
  • Public: le dépôts est visible à tout internet

Par défaut, les nouveau dépôts sont privés.

Fichiers binaires

Git lui-même n'est pas fait pour stocker des fichiers binaires. Gitlab propose à cet effet la fonctionnalité git-lfs. En dehors de gitlab, considérer également git-fat ou git-annex.

Comptes utilisateur

Création de compte/S'enregistrer

  • les utilisateurs académiques doivent s'enregistrer par la fédération eduGAIN, en cliquant [Shibboleth]
  • les autres doivent s'enregistrer en cliquant [Sign-up]

L'email doit être institutionnel. Le nom doit être complet (Prénom NOM).
Pour utilisateurs non-eduGAIN, un garant doit également confirmer la demande de création par mail à gitlab CHEZ in2p3 POINT fr

Les nouveaux utilisateurs non-eduGAIN sont bloqués automatiquement. Les administrateurs débloqueront le compte après validation.

Configuration SSH

La méthode privilégiée pour interagir avec les dépôts git est SSH. Vous pouvez suivre cette aide pour configurer votre clef SSH.

Shibbolethiser son compte

Lorsqu'un compte est créé par [Sign-up], on ne peut pas utiliser l'authentification Shibboleth. Il faut ajouter l'authentification Shibboleth dans son profile: Profile Settings > Account > Connected Accounts.
L'intérêt est de pouvoir utiliser le Single Sing On proposé par les fédérations d'identité.

Doublons Shibboleth

Lors d'un enregistrement par Shibboleth, Gitlab construit le champ username en prenant le début de l'adresse mail jusqu'au caractère @ #8182.
Ce qui peut conduire à des collisions pour des homonymes d'organisations différentes.
La solution consiste à:

Divers

Durée des hooks

ATTENTION ils doivent être très rapides, sinon gitlab considère qu'ils ont échoué. #8083
La solution de contournement consiste actuellement à faire exécuter les tâche lourdes dans un processus fils du hook.

Import depuis GitHub

Gitlab offre la possibilité d'importer, dans un nouveau projet, un projet GitHub complet (code, wiki, tickets).
Il faut néanmoins activer l'authentification GitHub sur Gitlab. Nous pouvons le faire temporairement sur demande.

Cette opération n'est pas nécessaire pour importer uniquement le code d'un projet GitHub.

Dépôt de fichiers volumineux

Pour la gestion de fichiers volumineux, tels que fichiers audio, video ou graphique, Gitlab supporte git lfs.

ATTENTION seule l'authentification HTTP est supportée pour l'instant.

Supprimer un fichier d'un dépôt git

Lorsqu'on souhaite retirer de l'information sensible commitée par mégarde, comme des mots de passe, pas d'autre solution que de re-créer le dépôt, en le modifiant au moyen d'un outil comme BFG, git-filter-branch, ou git rebase -i.
Il est par exemple possible de retirer un fichier de l'historique, modifier un message de commit ou remplacer du texte.

Si vous avez supprimé une branche contenant des informations sensibles, les commits problématiques sont toujours accessibles. La fonctionnalité Housekeeping/git gc n'est pas suffisante, puisque qu'elle ne supprime que les objets inaccessible depuis 2 semaines par défaut. Pour une suppression immédiate, le plus radical est encore de supprimer et re-créer le dépôt.
Sur votre demande, nous pouvons également intervenir sur le serveur pour appliquer un git gc --prune=now.