J'utilise Trello depuis plusieurs mois et je publie régulièrement des activités sur des cartes pendant que je travaille dessus, puis je les déplace de gauche à droite dans la liste «Complète». Je ne profite pas des dates d'échéance. Existe-t-il un mécanisme pour répertorier le texte d'activité sur toutes les cartes pour une plage donnée. J'essaie d'extraire des données brutes pour alimenter un rapport d'état pour une période donnée.
Exemple: Si le jour actuel est le 15 mai 2013. Je veux produire une liste de tous les textes d'activité sur chaque carte qui avait des entrées «activité» pour la période du 29 avril au 3 mai.
Réponses:
Oui, en utilisant l'API Trello et quelques autres outils.
Cette réponse repose sur HTTPie et jq , deux outils disponibles gratuitement qui peuvent être installés via pip et Homebrew si vous utilisez un Mac:
En utilisant,
HTTPie
nous pouvons interroger l'API Trello pour obtenir le flux d'action brut pour un tableau, puis nous pouvons utiliserjq
pour transformer ces données en quelque chose d'utile.Commençons par quelque chose de "simple". La commande suivante nous donnera tous les commentaires faits sur la carte Trello Dev au mois d'avril 2013. Je vais l'expliquer dans une seconde:
Si tout se passait comme prévu, nous devrions voir quelque chose comme ceci:
Cool. C'est un objet JSON unique et raisonnable que nous pouvons facilement analyser dans un certain nombre d'autres formats. Passons maintenant en revue afin que nous puissions le comprendre suffisamment pour le modifier en fonction de nos besoins.
C'est la seule partie qui dépend de Trello. Nous faisons une demande contre l'API publique pour la carte avec id
4d5ea62fd76aa1136000000c
- je l'ai obtenu en allant sur https://trello.com/dev et en regardant l'id que Trello ajoute à l'URL complète (https://trello.com/board/trello-development/4d5ea62fd76aa1136000000c
).Les champs
since
etbefore
sont explicites. Je précise unlimit
de1000
parce que c'est la plus grande réponse Trello permettra. Si votre forum a plus de mille commentaires dans la plage de dates pertinente, une solution de pagination plus compliquée serait requise ici. Je précise unfilter
decommentCard
parce que je suis seulement intéressé ceux aux fins de cette réponse. Si vous voulez plus de types d'actions, spécifiez une liste séparée par des virgules commefilter==commentCard,updateCard:idList,createCard
. Les types d'actions valides peuvent être trouvés dans la référence de l'API Trello .Si nous gérons cela seul, nous aurons beaucoup d'informations qui sont relativement difficiles à comprendre. Nous l'avons donc canalisé
jq
pour le masser en quelque chose d'un peu plus utile.Morceau par morceau, notre
jq
script effectue les transformations suivantes, chacune transmettant son résultat à l'opérateur suivant:group_by(.data.card.id)
[[card1_action1, card1_action2...], [card2_action1, card2_action2...], ...]
map({key: KEY_EXPRESSION, value: VALUE_EXPRESSION}) | from_entries
{ card1: [action1, action2, ...], card2: [action1, action2, ...], ...}
. En transformant le tableau en un tableau de paires clé-valeur, nous pouvons utiliserfrom_entries
pour transformer cela en un objet. Cool.KEY_EXPRESSION
ci-dessus:(.[0].data.card | "\(.name) (\(.id))")
\(...)
) pour construire quelque chose qui ressemble"name (id)"
.VALUE_EXPRESSION
estmap({date, member: .memberCreator.fullName, comment: .data.text})
.
pour obtenir le tableau de toutes les actions inchangées. Mais comme les actions sont un peu laides, nous les massons en quelque chose d'utile enmap
envoyant une requête ping au tableau et en l'appliquant{date, member: .memberCreator.fullName, comment: .data.text}
à chaque objet d'action individuel.{date}
est le même que{date: date}
pourjq
.Alors voilà. Euh, j'espère. Nous aurions pu faire ce massage de données dans n'importe quel langage de script, mais c'est exactement pour cela que
jq
c'est conçu, c'est donc une bonne excuse pour apprendre un nouvel outil sympa. Consultez le manuel jq pour en savoir plus.Maintenant, cela fonctionne parce que le Trello Dev Board est public. Mais que faire si nous voulons des données privées?
La bonne façon de procéder consiste à générer un jeton d'API. Le Guide de démarrage de l'API Trello contient une description détaillée de la procédure à suivre. Mais nous sommes pressés, alors nous allons le faire à la manière de l'homme paresseux ...
Connectez-vous à http://trello.com dans Chrome et ouvrez la console (Affichage> Développeur> Console JavaScript). Tapez
$.cookie('token')
dans la fenêtre. Cela crachera quelque chose comme"uniquememberid/somegarbledstring"
. Copiez la partie entre les guillemets et modifiez la demande pour qu'elle ressemble à ceci:La seule chose que nous avons modifiée est l'ajout de l'en-
"Cookie:token=uniquememberid/somegarbledstring"
tête. Cela obligera Trello à utiliser le jeton. REMARQUE: ce jeton est très privé ... si vous le donnez à quelqu'un d'autre, il peut se connecter en tant que vous jusqu'à ce que vous le révoquiez sur la page de compte Trello . Alors, tu sais, fais attention. Ou passez par l'étape de génération de clé / jeton d'API.Modifiez-les maintenant pour obtenir les données précises dont vous avez besoin au format souhaité.
la source
J'ai créé un outil appelé reportsfortrello.com qui vous montrera combien de temps une carte était dans une liste pendant une période de temps.
Il est gratuit et vous permet de regarder en arrière 1000 actions par planche. Il peut également suivre les adhésions aux cartes.
la source