[TUTO] Importer ses tableaux depuis Trello vers Deck (Nextcloud)

:information_source: Looking for an english version? I posted it on official Nextcloud forum :wink:


Hello à toutes et à tous :wave:
Celles et ceux qui utilisent Trello l’ont peut-être remarqué : de nouvelles restrictions arrivent. Fini le temps du gratuit (!).

Intro

Au collectif MailTape ça fait un moment qu’on se disait qu’il fallait passer notre tableau Trello vers l’app Deck sur notre Nextcloud. Vu que là y’avait plus le choix… je me suis lancé !

Et n’ayant pas trouvé de tuto, j’ai du pas mal me casser la tête pour y arriver. Il faut notamment passer par SSH et utiliser en direct les commandes occ de Nextcloud. Du coup, j’ai tout noté au fur et à mesure de mes recherches et voici donc un tuto pour que vous n’ayez pas à repasser par là.

Ce n’est pas si sorcier·e et j’espère qu’avec ce tuto vous vous en sortirez et pourrez déménager tranquillement vers Deck. :tada:

Le tuto


On part du principe que vous avez la dernière version de Nextcloud installée (28.0.4) et l’app Deck (1.12.2) à jour avec leur dernières version au moment où j’écris ce tuto.


Se connecter en SSH avec un compte admin à votre instance Yunohost

Passer en root
sudo -su

Puis aller dans le dir de Nextcloud
cd /var/www/nextcloud

Ensuite tester déjà que la commande OCC fonctionne bien:
sudo -u nextcloud php8.2 --define apc.enable_cli=1 occ -V

La version de Nextcloud installée devrait s’afficher. On est prêt.

Ensuite, se réferer à la doc de Deck là : User documentation - Nextcloud Deck

On peut déjà voir si Deck répond bien, ainsi que son script d’import.
sudo -u nextcloud php8.2 --define apc.enable_cli=1 occ deck:import -h

Ça devrait afficher l’aide de la commande.

Ensuite, Créer un powerup sur Trello et générer une clé API.

Vous devrez ensuite obtenir un jeton d’authentification (token). Attention, il ne s’agit pas du “secret”. Il faut cliquer sur le lien “jeton” dans les instruction à côté de la clé API. (cf cette video si besoin)

Depuis votre commande SSH sur le serveur, envoyer cette requête pour obtenir un JSON (tableau) listant tous les tableaux Trello dont votre compte fait partie avec l’ID correspondant à chacun:

curl --request GET \
  --url 'https://api.trello.com/1/members/{username}/boards?key={APIkey}&token={token}&fields=id,name' \
  --header 'Accept: application/json'

En remplaçant {username} par votre login Trello, {APIkey} par la clé API générée et {token} par le jeton.

Exemple:

curl --request GET \
  --url 'https://api.trello.com/1/members/imacrea/boards?key=7a9743b79cf9eecd1dbfbfddddd&token=Adddddd8ed305abe1a82fa7f7e2cd16585ca46ec7902c041e16ea820915c45b4f2f72D77306FE&fields=id,name' \
  --header 'Accept: application/json'

:warning: Cette commande sert si vous souhaitez récupérer l’ID d’un tableau que vous avez créé avec un compte perso. Pour récupérer un tableau émanant d’une organisation, c’est la commande suivante :

curl --request GET \
  --url 'https://api.trello.com/1/members/{orgID}/boards?key={APIkey}&token={token}&fields=id,name' \
  --header 'Accept: application/json'

orgID est le nom de votre org tel qu’il s’affiche dans l’url lorsque vous consultez la page de l’org. Par ex pour https://trello.com/w/mailtape c’est alors mailtape

curl --request GET \
  --url 'https://api.trello.com/1/organizations/mailtape/boards?key=7a9743b79cf9eecd1dbdfdffbf73d26799da&token=ATTA998ed305abffffdfe1a82fa7f7e2cd16585ca46ec7902c041e16ea820915c45b4f2f72D77dfdf306FE&fields=id,name' \
  --header 'Accept: application/json'

Maintenant que vous avez récupéré l’ID du tableau que vous voulez importer dans Deck. Il faut créer un fichier de config.json en partant de ce schema.

Exemple :

{
    "owner": "imacrea", 
    "color": "0800fd",
    "api": {
        "key": "7a9743b79cf9eecd1dbfdfdbf73d26799da",
        "token": "ATTA998ed305abe1a82fa7f7e2cd16585cadfdf46ec7902c041e16ea820915c45b4f2f72D77306FE"
    },
    "board": "5022de990357dff867dfd09bbad",
    "uidRelation": {
        "username_sur_trello": "username_sur_nextcloud",
        "george12": "george"
    }
}
  • owner est le username du compte Nextcloud qui sera propriétaire du tableau importé.
  • color c’est la couleur du tableau, ne vous embêtez pas avec ça : on peut le modifier dans l’interface de Deck.
  • key votre clé API (cf plus haut)
  • token votre jeton (cf plus haut)
  • board l’ID de votre tableau sur Trello, récupéré avec la commande précédente
  • uidRelation là vous devez faire un tableau de correspondance entre les username des personnes membres du tableau sur Trello et leur username sur Nextcloud. Dans l’exemple, l’user “george12” est son login sur Trello, et “george” est sont login sur Nextcloud.

Plus facile de préparer le contenu de ce fichier dans un éditeur de texte en local, puis copier l’ensemble.

Dans le dossier où l’on était (/var/www/nextcloud), créer un fichier json dans lequel on va coller notre config:

sudo -u nextcloud touch myBoard.json

Puis l’ouvrir avec vim pour l’éditer

sudo -u nextcloud vi myBoard.json

Une fois le fichier prêt, on va pouvoir lancer la commande d’import (et croiser les doigts !)

sudo -u nextcloud php8.2 --define apc.enable_cli=1 occ deck:import --system=TrelloApi --config=./myBoard.json

Mais il va y avoir probablement une erreur. Il faut corriger deux ligne de code dans un fichier du code d’import à l’heure où j’écris ce tuto. Fort heureusement, la résolution est expliquée dans ce ticket.

Une fois le fichier corrigé, on relance le script. Et c’est bon !

Une fois l’import fait, un peu de patience côté Nextcloud selon la taille du tableau importé. Le tableau peut mettre ensuite plusieurs minutes à se reconstituer correctement. Evidemment, ce temps de mise en place dépend aussi de la puissance de votre serveur.

Et bye bye Trello ! :tada:

6 Likes

Vous avez du en passer des heures pour trouver la solution, bravo.

1 Like