n°30
Février
2015
Gitlab au CC-IN2P3 : la parole est au social coding

Le CC-IN2P3 propose depuis plusieurs années différents outils de gestion de code. Qu’ils soient adeptes de CVS, SVN, Mercurial ou Git, près de 1200 personnes utilisent aujourd’hui ces logiciels avec lesquels près de 300 dépôts de code sont gérés sur scm.in2p3.fr (aussi connu sous les noms svn.in2p3.fr et git.in2p3.fr).

Mais la mode est aujourd’hui au social coding, c’est-à-dire au développement collaboratif de code avec les outils adéquats pour partager, commiter et travailler ensemble en un seul clic.

Dans ce paysage d’outils de gestion de code, un petit nouveau vient donc de faire son apparition : Gitlab, un clone du célèbre GitHub. Outre l’hébergement de dépôts Git, il propose également des outils annexes pour la gestion de projets, tels qu’un gestionnaire de bugs ou un wiki pour la documentation.

Mis en place au CC-IN2P3 depuis le mois de mai et en production au 1er janvier 2015, Gitlab a déjà ses aficionados puisque 108 utilisateurs sont déjà répertoriés. Parmi les logiciels hébergés sur Gitlab, citons par exemple les modules Puppet qui gèrent la configuration de certains services du Centre.

Petit passage en revue (non exhaustif) des fonctionnalités de Gitlab :

- l’utilisateur peut s’enregistrer, puis, après validation du compte par les administrateurs, immédiatement commencer à créer des dépôts. L’autonomie de l’utilisateur n’en est donc que renforcée.

- l’authentification par une fédération d’identités via le système ‘shibboleth’ : il est conseillé aux collaborateurs académiques de s’enregistrer et s’authentifier ainsi. Les utilisateurs non-académiques ou non-référencées (ex : visiteurs étrangers) doivent créer un compte local.

- la gestion des groupes et des droits.

- la possibilité de dupliquer un dépôt (‘fork’) en vue de le modifier et reverser cette modification sous forme de ’pull request’ (ou ’merge request’ dans le jargon Gitlab) : il devient donc plus simple de contribuer à un code. Un point essentiel quand on veut travailler en collaboration.

- le système de revue et modification du code en ligne

- la possibilité de s’abonner aux fils de news de surveillance de codes.

Enfin, si vous hésitez entre la Forge (Redmine) ou Gitlab, sachez que Gitlab est plutôt un produit destiné à la gestion de codes, tandis que la Forge apparaît plus adaptée au suivi de projets. Les deux peuvent toutefois s’intégrer, le code étant hébergé dans Gitlab, les tickets et le wiki dans la Forge.

Déployé au CC-IN2P3, Gitlab est donc maintenu, mis à jour tous les mois en horaire décalé (ce qui n’est pas anodin car le produit est en pleine évolution).

Le service Git (git.in2p3.fr) et Gitlab n’offrent pas exactement les mêmes services : Gitlab apporte l’autonomie et la collaboration, Git offre un service d’hébergement plus nu (pas d’interface web de gestion des dépôts), mais aussi l’accompagnement, le conseil et la personnalisation, pour des usages éventuellement plus complexes. Les dépôts peuvent être migrés d’un service à l’autre.

Les expériences, quelle que soit leur taille, devraient être séduites par Gitlab : l’utilisateur est autonome dans la gestion de ses codes, l’utilisation est facilitée gràce à l’interface web, et les fonctionalités de travail collaboratif sont nombreuses.

Gitlab s’apparente d’ailleurs sur ce point à Gitolite, aux fonctionnalités similaires pour la gestion des droits sur les dépôts, mais avec une gestion en ligne de commandes. Pour les groupes intéressés, Gitolite est disponible sur git.in2p3.fr.

Pour plus d’informations :

- https://gitlab.in2p3.fr, https://scm.in2p3.fr

- https://forge.in2p3.fr/projects/git...

Gaëlle SHIFRIN, Foudil BRETEL et Loïc TORTAY (CC-IN2P3)