Intégration avec Gerrit

Prev Next

Tuleap s'intègre avec Gerrit, un outil de revue de code avancé basé sur Git. Cette intégration permet de migrer des dépôts Git de Tuleap vers Gerrit tout en conservant la synchronisation automatique des branches et tags. Les groupes d'utilisateurs Tuleap sont également répliqués, simplifiant la gestion des permissions.

Info

Cette fonctionnalité dépend de l'authentification LDAP. Tuleap et Gerrit doivent partager le même annuaire LDAP. L'intégration nécessite Gerrit 2.8 minimum (version recommandée : 2.12.x).

Pré-requis

  • Un serveur Gerrit doit être installé, configuré et connecté à votre instance Tuleap par un administrateur de la plateforme.

  • Le plugin LDAP doit être actif sur Tuleap et Gerrit.

  • Vous devez être administrateur du projet Tuleap pour migrer un dépôt.

Note d’installation

L'installation et la configuration du serveur Gerrit sont des opérations d'administration système. Consultez la section Setup de la documentation technique pour les instructions détaillées.

Information

Un administrateur de la plateforme peut configurer un serveur Gerrit comme restreint, limitant son usage à certains projets spécifiques. Si le serveur Gerrit n'apparaît pas dans les options de migration, contactez votre administrateur.

Vue d'ensemble

L'intégration est conçue pour être la plus légère possible : Tuleap simplifie la création et la gestion des dépôts, utilisateurs et groupes, mais ne restreint aucune fonctionnalité de Gerrit.

Points clés :

  • Plusieurs instances Gerrit peuvent être connectées à un même serveur Tuleap.

  • Une instance Gerrit peut être connectée à plusieurs serveurs Tuleap.

  • Une instance Gerrit connectée à Tuleap peut également être utilisée de manière autonome.

Migrer un dépôt vers Gerrit

Procédure

  1. Accédez aux paramètres du dépôt Git que vous souhaitez migrer.

  2. Dans le panneau "Gerrit", sélectionnez le serveur Gerrit de destination.

  3. Choisissez le schéma de permissions souhaité (voir section Permissions ci-dessous).

  4. Lancez la migration.

Ce qui se passe après la migration

La migration est traitée de manière asynchrone. Le statut de la migration est affiché dans les paramètres du dépôt : en attente, terminée ou en erreur.

Une fois terminée :

  • Les sources sont répliquées sur le serveur Gerrit.

  • Côté Tuleap, le dépôt passe en lecture seule. Les utilisateurs peuvent toujours explorer le dépôt, le cloner ou le forker, mais toutes les opérations d'écriture sont bloquées.

  • Les modifications permanentes (branches et tags) effectuées sur Gerrit sont automatiquement répliquées vers Tuleap (avec un délai de quelques secondes).

  • Les éléments spécifiques à la revue (patchsets, reviews, etc.) ne sont pas répliqués. Seuls refs/heads/* et refs/tags/* le sont.

  • Tous les groupes d'utilisateurs du projet Tuleap sont répliqués vers Gerrit.

Structure des projets Gerrit

Après la migration d'un dépôt firefox du projet Tuleap mozilla :

  • Un projet Gerrit parent mozilla est créé (permissions uniquement, pas de sources).

  • Un sous-projet mozilla/firefox est créé avec les sources.

Le projet parent permet de définir des permissions communes à tous les dépôts du même projet Tuleap.

Permissions

Trois options de permissions sont proposées lors de la migration :

Permissions par défaut

Les permissions Gerrit sont générées à partir des permissions définies sur le dépôt Git dans Tuleap au moment de la migration :

Permission Tuleap

Droits Gerrit (sur les branches)

READ

Read, Code-Review -1..+1

WRITE

Read, Create, Code-Review -2..+2, Verified -1..+1, Submit, Push, Push Merge

REWIND

Push +force

Info

Ces permissions sont appliquées uniquement au moment de la migration. Les modifications ultérieures des permissions se font directement dans Gerrit.

Sans permissions

Si vous êtes un utilisateur Gerrit avancé, vous pouvez démarrer avec un schéma de permissions vide. Sélectionnez l'option "Pas de permissions prédéfinies" dans le menu déroulant de configuration des permissions lors de la migration.

Depuis un template

Vous pouvez appliquer un template de permissions prédéfini, défini dans l'administration du plugin Git. Les templates sont des fichiers de configuration Gerrit (refs/meta/config). La variable %projectname% est remplacée par le nom du projet lors de la migration.

Héritage de permissions (Umbrella Projects)

Pour les organisations complexes avec de nombreux dépôts, vous pouvez exploiter l'héritage de projets Gerrit.

En définissant un projet parent dans l'administration du projet Tuleap, toutes les permissions du projet parent Gerrit s'appliquent automatiquement aux sous-projets (dépôts migrés).

Exemple : le projet parent mozilla peut définir que tout membre de l'organisation a le droit de proposer une contribution sur n'importe quel dépôt, et que l'équipe QA peut donner un -2.

Gestion des groupes d'utilisateurs

La synchronisation des groupes d'utilisateurs est automatique. Pour un projet Tuleap mozilla avec un groupe Developers :

Les groupes Gerrit créés sont :

  • mozilla/project_members

  • mozilla/project_admins

  • mozilla/Developers

Toute modification des membres du projet Tuleap est répliquée vers Gerrit :

  • Ajout/suppression de membres dans un groupe.

  • Création d'un nouveau groupe d'utilisateurs.

  • Liaisons entre groupes (bindings).

Attention

Ne modifiez pas directement les membres des groupes répliqués dans Gerrit. Tuleap peut annuler ces modifications sans préavis. Si vous avez besoin d'un groupe personnalisé, créez un groupe dédié directement dans Gerrit.

Gestion des clés SSH

Pour faciliter le démarrage avec Gerrit, les clés SSH stockées dans Tuleap sont automatiquement synchronisées vers le compte Gerrit correspondant.

  • L'ajout ou la suppression d'une clé SSH dans Tuleap est propagé vers Gerrit.

  • Cette synchronisation ne supprime pas les clés gérées uniquement par Gerrit.

Info

La première connexion entre le compte Tuleap et le compte Gerrit n'est pas automatique. Chaque utilisateur doit se rendre dans la page Gerrit de ses préférences utilisateur (accessible via Mon compte > Gerrit) et cliquer sur "Pousser les clés SSH" pour initier la synchronisation. Depuis cette page, vous pouvez également consulter les serveurs Gerrit configurés et gérer vos clés pour chaque serveur.

Déconnecter ou supprimer un projet Gerrit

Depuis les paramètres du dépôt Git, panneau "Gerrit", un bouton "Déconnecter" est disponible. Avant de confirmer la déconnexion, trois options vous sont proposées :

  • Supprimer le projet sur Gerrit : Supprime définitivement le projet Gerrit (sources, reviews, changesets). Le dépôt Tuleap redevient accessible en écriture. Après suppression, il est possible de re-migrer le dépôt.

Info

Cette option nécessite que le plugin deleteproject soit installé sur le serveur Gerrit. Si ce plugin n'est pas disponible, cette option n'apparaît pas.

  • Mettre le projet sur Gerrit en lecture-seule : Le projet Gerrit est conservé mais mis en lecture seule. La réplication s'arrête. Le dépôt Tuleap redevient accessible en écriture. Utile pour l'archivage.

  • Laisser le projet sur Gerrit : Le projet Gerrit est conservé tel quel mais la réplication s'arrête. Le dépôt Tuleap redevient accessible en écriture. Les deux dépôts évoluent indépendamment (risque de divergence).

Attention

Après une simple déconnexion ("Laisser" ou "Lecture-seule"), vous ne pouvez pas re-migrer le dépôt. Vous devrez d'abord supprimer le projet Gerrit.