De Gitlab à Forgejo, qui y arrive?

Salut les chatons !
J’ai une instance Gitlab qui est bloquée, un truc corrompu dans la BDD qui empêche la mise à jour et qu’on n’a pas réussi à débuguer jusque là. Ceci dit, par ailleurs, l’instance marche parfaitement.

Comme je voue Gitlab aux enfers les plus terribles depuis le début, et que l’alternative qu’est Forgejo semble aujourd’hui assez mature (du moins pour ce que demandent nos utilisatrices), c’est la bonne excuse pour migrer.

Forgejo propose un outil interne pour migrer un projet depuis Gitlab vers eux. Ça, c’est cool (même si je ne vais pas rigoler à migrer 190 projets et que je ne sais pas comment migrer les utilisatrices, ou les prévenir du changement…). Ce qui est moins cool c’est que ça demande de passer par l’API de gitlab et que je n’y comprend rien du tout.

J’ai donc pris un petit dépôt pour mes tests : pas trop de Mo à transférer, quelques issues, c’est parfait. J’ai créé un token (jeton d’accès) avec la portée « api, read_api » (aucune idée de si c’est les droits qu’il faut) et… Heu… ça veut pas. J’ai droit à une erreur 404.

Et c’est là que ça se corse. L’API répond bien si je vais sur https://port.numenaute.org/api/v4/projects : là je vois plein d’infos. Par contre sur https://port.numenaute.org/api/v4/projects/khaganat/web/khnav là c’est 404. J’ai aussi tenté curl --header "PRIVATE-TOKEN: [mon token]" "https://port.numenaute.org/api/v4/projects/khaganat/web/khnav" ; idem j’ai pour réponse {"error":"404 Not Found"}%
Si j’ai bien compris, je remplace [mon token] par la suite de chiffres et lettres que j’ai eu à la génération ? J’ai aussi essayé avec le nom du token, pas mieux.

Soyons clairs : je n’y comprends rien. Et ça m’agace. Et je veux brûler gitlab… Mais j’aimerais arriver quand même à dépasser ce 404 et migrer ce projet. Ou trouver comment tout migrer d’un coup. Les dépôts git, encore… c’est du git mais j’ai besoin de ne pas perdre les diverses issues ni ne faire un transfert à la main.

Si l’un de vous a une idée, je lui en serais extrêmement reconnaissante…

1 Like

Salut, deux choses en te lisant.

  1. Dans ton URL api, le namespace doit être encodé (les / remplacés par %2F) comme documenté ici. Essaie curl --header "PRIVATE-TOKEN: [mon token]" "https://port.numenaute.org/api/v4/projects/khaganat%2Fweb%2Fkhnav"

  2. J’ai fait des migrations gitlab vers forgejo, à la création du token il faut choisir un rôle assez haut : Maintainer ou Owner il me semble.