Skip to content

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

Dev sans git clone

  • Créer un module import_git dans tasks
  • Le script doit prendre les memes paramètres que import_iiif, sauf que le path pointe vers le clone local himanis-sample
  • Parser le .arkindex.yml, et ne garder que volumes
  • 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_args doit valider le corpus via un mock Arkindex
  • verify_args doit valider le folder type via un mock Arkindex
  • verify_args doit valider le element type via un mock Arkindex
  • load_repository doit effectuer une requete vers gitlab.com avec un token, et extraire une archive
  • list_manifests doit parser .arkindex.yml et 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