GitLab

Description du service

GitLab est un service collaboratif de gestion de code et de projets de développement logiciel, qui s’appuie sur le système Git. Notre instance est destinée aux membres de l’IN2P3, aux utilisateurs académiques membres du réseau eduGAIN et à leurs collaborateurs, pour un usage strictement professionnel. La plateforme GitLab est déployée dans sa version Community. Par défaut, les nouveaux dépôts sont privés mais peuvent hériter la visibilité du ou des groupes parents. L’accès aux projets et leur visibilité suit les règles définies dans la documentation officielle GitLab.

En cas de problème, veuillez contacter le support utilisateurs.

Respect des conditions d’utilisation

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

Pour toute information sur les fonctionnalités, mises-à-jour ou support du service, veuillez vous référer au projet gitlab-maintenance. Ceci n’est pas un système de tickets : pour toute requête, continuez à contacter le support utilisateurs.

Comptes utilisateur

L’instance GitLab du CC-IN2P3 est accessible de : https://gitlab.in2p3.fr. Si pas connectés, les utilisateurs verront apparaître la page d’inscription de GitLab où toutes les instructions concernant l’enregistrement du compte et les méthodes de connexion de l’utilisateur sont décrites.

Les nouveaux utilisateurs académiques DOIVENT s’enregistrer en cliquant le bouton CC-IN2P3 Single Sign On, en utilisant leur compte CC-IN2P3 ou n’importe quel compte de la fédération eduGAIN. L’utilisation du mécanisme de Single Sign On (SSO) garantit que votre demande de compte est traitée automatiquement et que l’accès à la plateforme GitLab est accordé sans délai, et sans autre action requise. Veuillez vous référer au paragraphe dédié à la fédération d’identité pour toute information sur cette méthode d’authentification.

Attention

Veuillez ne pas utiliser plusieurs comptes eduGAIN pour vous enregistrer car vous vous retrouveriez avec plusieurs comptes GitLab qui ne pourront pas être fusionnés. Si vous avez besoin de changer votre compte GitLab pour une autre identité eduGAIN, veuillez contacter notre support utilisateurs.

En dernier recours, les utilisateurs peuvent demander manuellement l’ouverture d’un compte, en utilisant le lien manual account request, qui se trouve dans le troisième élément du menu déroulant, sur la page d’inscription.

Les comptes demandés manuellement seront initialement bloqués, en attendant une validation manuelle devant être effectuée par les administrateurs GitLab. Lorsqu’un utilisateur constate que son inscription est en attente de validation, un « garant » (par exemple le responsable du projet ou le superviseur de l’utilisateur) doit confirmer la légitimité de la demande de compte au support utilisateurs, en spécifiant le nom d’utilisateur ou l’e-mail associé au compte.

Les demandes de compte non validées dans un délai d’un mois seront automatiquement effacées.

Important

Il est possible qu’un compte créé via eduGAIN ne soit pas exploitable : le compte existe, mais est « temporaire », avec un hash en guise de username. Si vous vous trouvez dans ces conditions, contactez le support utilisateurs ; changer le nom, l’email etc, en espérant l’utiliser ne marchera pas : il ne sera jamais possible de s’y reconnecter une fois leur session périmée.

Par défaut, les nouveaux utilisateurs auront un statut différent selon si leur compte a été créé via SSO (external=false) ou non (external=true).

  • external=false : aucune restriction d’usage n’est appliquée.

  • external=true : la création de nouveaux projets ou groupes de projets est restreinte aux namespaces dont ils sont membres, à l’exclusion de leur namespace personnel. L’échec d’une telle tentative sera caractérisé par l’émission du message d’erreur suivant, quelque peu cryptique, par GitLab :

404: Namespace not valid

Note

D’une manière générale et pour faciliter la gestion des propriétés (« ownership ») des projets, nous suggérons fortement de n’utiliser le namespace personnel qu’en cas de nécessité absolue. La restriction « external » peut être retirée sur demande auprès notre support utilisateurs.

Inviter des collaborateurs

Il est possible de donner accès à vos projets à d’autres utilisateurs de la plateforme GitLab, depuis le menu Project Information > Members. Si le compte existe déjà, le nouveau « membre » peut être ajouté directement avec le niveau de droits d’accès souhaité. Si cet utilisateur n’a pas encore de compte sur la plateforme GitLab, une invitation sera envoyée par e-mail à l’adresse fournie afin de créer le compte. Veuillez privilégier les adresses institutionnelles et à ne recourir à des adresses personnelles (type Yahoo, Gmail ou autre) qu’en ultime recours. Les utilisateurs invités devront également privilégier l’enregistrement par SSO.

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.

Activer l’authentification SSO

Lorsqu’un compte est créé par le formulaire Nom d’utilisateur/Mot de passe, on ne peut pas utiliser l’authentification par SSO. Il est quand-même possible de la configurer depuis son profile :

Preferences > Account > Service sign-in

Doublons de comptes

Lors d’un enregistrement SSO, GitLab construit le champ username en prenant le début de l’adresse mail jusqu’au caractère @. Ce qui peut conduire à des conflits pour des homonymes d’organisations différentes. La solution consiste à :

  • s’enregistrer par le formulaire Nom d’utilisateur/Mot de passe en choisissant un username différent de l’homonyme ;

  • activer l’authentification SSO pour ce compte.

Gestion de fichiers volumineux

Git n’est pas très efficace pour gérer des fichiers binaires volumineux (> quelques Mo) qui ont en plus l’inconvénient de ne pas être « différentiables ». Pour la gestion de ce type de fichiers, tels que fichiers audio, video graphique ou images de machines virtuelles, GitLab supporte « git lfs ».

Intégration/Déploiement Continu

GitLab propose une fonctionnalité d’intégration continue appelée GitLab CI. Les informations concernants l’intégration continue (pipelines, jobs, environnements, etc) sont affichées dans le menu « CI/CD » du menu vertical GitLab.

L’instance Gitlab de l’IN2P3 met à la disposition de ses utilisateurs un ensemble de runners Gitlab pour executer leurs jobs de CI/CD. Cependant, ces runners « publics » sont partagés pour plusieurs milliers d’utilisateurs et leurs ressources sont très limitées. De plus, la confidentialité des données et du code traités par ces runners n’est pas garantie car les ressources sont mutualisées. Enfin, les ressources de chaque job sont également limitées, pour éviter les abus et permettre un accès équitable aux ressources.

Note

Chaque job dispose de 4 vCPU et de 2GB de RAM.

Ces runners sont mis à disposition gracieusement à tous les utilisateurs du service, dans un but didactique et afin de permettre à tous de débuter facilement sur Gitlab CI. Toutefois, tout usage destiné à de la production ou du développement d’envergure, nécessitant des configurations spécifiques ou une capacité supérieure à ce qui est ainsi fournit, devrait impliquer la mise en place d’un runner Gitlab dédié.

Vous pouvez facilement déployer et utiliser votre propre infrastructure CI pour vos projets. Plus d’informations sur la documentation de GitLab runner. Si vous ne disposez pas de ressources sur lesquelles vous appuyer pour déployer une telle infrastructure, et que votre projet fait partie d’une colloration ou d’un laboratoire supporté par l’IN2P3, vous pouvez faire une demande de ressources afin d’obtenir les machines nécessaires auprès du CC-IN2P3. Vous aurez alors toute latitude pour déployer, configurer et maintenir votre infrastructure CI/CD pour vos projets.

Pour toute demande de ressource ou aide merci de contacter notre support utilisateurs.

Pages web statiques de GitLab : « GitLab Pages »

La fourniture de pages web statiques de GitLab, communément appelées « GitLab Pages » est proposée par l’instance du CC-IN2P3. L’adresse de la page web sera de la forme :

https://<user.id>.pages.in2p3.fr/<project-name>/

Fonctionnalités avancées des pages

Les fonctionnalités suivantes sont disponibles :

  • Domaines personnalisés : cela nécessite l’achat d’un nom DNS et une configuration appropriée de votre part.

  • Certificats HTTPS : statiques ou automatiques avec Letsencrypt.

  • Contrôle d’accès : peut limiter l’accès aux seuls membres authentifiés de votre projet (au moins Guest).

Des fonctionnalités avancées supplémentaires peuvent nécessiter une interaction avec notre support utilisateurs.

Attention

GitLab Pages est destiné à héberger des pages Web statiques, petites et simples. Le principal cas d’utilisation est la documentation (le Wiki peut également être utilisé de cette manière). Tout autre cas d’utilisation serait probablement mieux servi via un hébergement Web plus classique. Dans ce cas et si vous êtes utilisateur IN2P3 ou membre d’une collaboration IN2P3 n’hésitez pas à demander de l’aide à notre support utilisateurs.