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
Accédez aux paramètres du dépôt Git que vous souhaitez migrer.
Dans le panneau "Gerrit", sélectionnez le serveur Gerrit de destination.
Choisissez le schéma de permissions souhaité (voir section Permissions ci-dessous).
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/*etrefs/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
mozillaest créé (permissions uniquement, pas de sources).Un sous-projet
mozilla/firefoxest 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_membersmozilla/project_adminsmozilla/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
deleteprojectsoit 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.