ForgeX

Accueil • Intégration • Dérivation • Fédération

Contributions inter-Forges

📌 Pour proposer une contribution sur ce site : suivre ces instructions.

ForgeX est un projet expérimental qui cherche à tester des méthodes de collaboration inter-Forges à partir de l’outillage interne de Git. Dans une échelle de complexité — ou de sophistication — partant d’un simple échange de correctifs par voie postale numérique, jusqu’aux protocoles du Fediverse les plus récents, ce projet propose d’expérimenter l’intégration des « dépôts distants » (remotes) qui devrait se situer sur le deuxième échelon dans cette gradation.

Pour rappel, au premier échelon de cette montée en complexité, nous avons donc le correctif ou « patch » accompagné d’une série d’outils Git tels que git-apply, git-am et git-send-mail. Il s’agit de la méthode « historique » employée dans le développement du noyau Linux, ou plus récemment par SourceHut.

Dans le jargon Git, les dépôts distants sont des copies, ou des « versions », d’un même dépôt à plusieurs endroits dans le Réseau.

L’expérience est basée sur un « échangeur git », ou « git broker » en bon anglais. C’est le rôle joué par le projet contribute qui permet depuis un serveur accessible à l’adresse contribute.forgeons.org de déposer des demandes de modification du dépôt forgeons.org.

L’utilisateur cherchant à proposer une contribution sur ce dépôt, doit héberger une copie de ce dépôt sur une Forge publique et soumettre l’adresse du commit de modification sur l’« échangeur git». L’administrateur hébergeant l’échangeur est alors prévenu par courrier électronique de la demande et peut, via l’interface de l’échangeur, générer automatiquement une demande d’ajout sur la Forge hôte.

Ensuite, pour que l’utilisateur distant puisse continuer de contribuer sur des fichiers sources qui évoluent dans le temps, il doit pouvoir « tirer » ces modifications depuis son dépôt distant avant de pouvoir proposer de nouvelles modifications sur la base de documents à jour.

git pull remote main
git commit -am "new contribution" 
git push origin main

Ces opérations de synchronisation sont réalisables sur des dépôts hébergés sur une même instance de Forgejo, mais il n’existe pas aujourd’hui la possibilité d’ajouter des dépôts distants tel que cela est illustré ci-dessus. Le projet ForgeX qui est une modification de Forgejo, répond à ce besoin en proposant d’ajouter des dépôts distants depuis l’interface et de réaliser des opérations de tirage et de fusion directement depuis la plateforme.

Une image Docker de ForgeX prête à l’emploi est à télécharger ici.