Alors voila : la migration des tickets (« issues ») du core et des plugins-dist de SPIP de Redmine (core.spip.net) vers les tickets de Gitea (git.spip.net) est faite !
Quelques précisions sur la technique employée:
- étape 1 : mise en place d’un clone du Gitea de SPIP (git.spip.net) sur un de nos serveurs (on va l’appeler « clone.spip » pour la suite). Un petit script de synchronisation git.spip => clone.spip a été mis en place pour faciliter les essais successifs. Cette synchro permet de cloner non seulement la BDD mais aussi les fichiers attachés (images dans les tickets, avatars…)
-
étape 2 : exécution sur clone.spip d’un script PHP « maison » redmine2gitea.php (avec des listes de correspondances établies « à la mano ») qui récupère ticket par ticket les données via un CURL sur l’API (version json) du Redmine et les injecte « à la brutale » dans la BDD MySQL du Gitea
Pour faire « bien » les choses nous avions commencé par essayer de faire la création des tickets en utilisant l’API de Gitea mais elle est trop incomplète pour permettre de faire les choses précisément comme nous le souhaitions cad pouvoir conserver les numéros des tickets… - étape 3 : pour les tickets qui ont des documents (essentiellement des images) attachés, redmine2gitea.php gère la récupération de ces fichiers et modifie (à grand coup de regexp) le contenu du texte du ticket pour que le document soit lié/intégré au ticket tel qu’il l’était dans Redmine. Il y a donc un dossier redmine/ sur git.spip qui stocke toutes ces images
- étape 4 : et comme les choses ne sont jamais simples, un certain nombre de requêtes MySQL « cousues mains » permettent de gérer les jalons/milestone et leur état d’avancement
-
étape 5 : après que tout soit OK sur clone.spip (oh bien sûr ça ne s’est pas fait du premier coup!), synchro « retour » de la BDD et des fichiers depuis clone.spip vers git.spip (d’où son blocage temporaire cet après-midi…)
…et pour la petite histoire : nous étions persuadé qu’azerttyu, le gestionnaire du serveur git.spip, suivait nos progrès en direct sur notre chat alors qu’il n’en était rien et que de son côté il ne comprenait pas pourquoi le serveur était en rade… Alors désolé pour le coup de speed et merci encore pour la confiance de nous avoir laissé faire notre cuisine sur cette machine!
Conclusion : après quelques ajustements de dernière minutes (les tickets de sécu oubliés et le milestone « 99 plus tard » qui était passé à la trappe…), à priori tout est maintenant OK !
Les tickets du core sont donc maintenant visible sur : https://git.spip.net/spip/spip/issues : enjoy !
Et parce que SPIP c’est toujours de la tendresse, azerttyu vous a mitonné des redirections d’URLs aux petits oignons qui permettent que les liens vers le Redmine arrivent directement sur git.spip.net
NB : pour les nostalgiques de Redmine, il est toujours possible de consulter les anciens tickets sur https://core.spip.net en ajoutant un paramètre ?local dans l’URL pour shunter la redirection
Merci à tous ceux qui nous ont aidé/motivé !
tofulm & cy_altern