Import depuis archive ZIP gitlab dans Tasks
Le but est d'avoir un script Python dans le repo tasks qui permet d'importer un repo git contenant des collections IIIF dans Arkindex, via l'API exclusivement (pas d'accès en base de données).
Une seule Merge Request avec beaucoup de commits est
Préparation
-
Créer un token dans le backend de dev -
git clone https://gitlab.com/arkindex/tasks/ -
Lire le code de l'import iiif existant arkindex_tasks/import_iiif/ -
git clone https://gitlab.com/arkindex/himanis-sample (manuel, pas dans un script) -
Lire https://gitlab.com/arkindex/himanis-sample/-/blob/sample/.arkindex.yml -
Lire https://wiki.vpn/en/arkindex/doc/use-cases/import-git -
Ne garder que la partie volumes
Dev sans git clone
-
Créer un module import_gitdans tasks -
Le script doit prendre les memes paramètres que import_iiif, sauf que le path pointe vers le clone localhimanis-sample -
Parser le .arkindex.yml, et ne garder quevolumes -
Conserver les image servers & paths -
Lister tous les fichiers json présents (en récursif) dans paths -
Les charger un à un dans le code existant d'import IIIF -
Créer les elements dans le backend -
Tester dans un build docker -
Have a 🍺 to celebrate
Dev avec git clone
-
Utiliser l'api secrete de gitlab pour télécharger une archive zip d'un repository à partir des credentials Oauth (voir avec Erwan, c'est relativement) - faire un simple test dans un fichier python standalone -
Supprimer le parametre de path dans import_git -
Ajouter les parametres pour les credentials git -
Telecharger l'archive dans la task import_git -
Tester dans un build docker: on doit pouvoir importer des manifests GIT depuis ponos... -
Générer elements.jsonà la fin de l'execution -
Ajouter des tests unitaires -
🎉
Unit tests
-
verify_argsdoit valider le corpus via un mock Arkindex -
verify_argsdoit valider le folder type via un mock Arkindex -
verify_argsdoit valider le element type via un mock Arkindex -
load_repositorydoit effectuer une requete vers gitlab.com avec un token, et extraire une archive -
list_manifestsdoit parser.arkindex.ymlet donner une liste de manifests présent dans un mock -
Bonus: combiner les différents mocks crée pour faire un run, jusqu'a trigger IIIFParser
Merge requests: !76 (merged).
Imported from Trello