Ich benutze Trello seit mehreren Monaten und poste regelmäßig Aktivitäten auf Karten, während ich daran arbeite, und verschiebe sie dann von links nach rechts in die Liste "Vollständig". Ich nutze keine Fälligkeitstermine. Gibt es einen Mechanismus, um den Aktivitätstext auf allen Karten für einen bestimmten Bereich aufzulisten? Ich versuche, einige Rohdaten abzurufen, um einen Statusbericht für einen bestimmten Zeitraum zu erstellen.
Beispiel: Wenn der heutige Tag der 15. Mai 2013 ist. Ich möchte eine Liste aller Aktivitätstexte auf jeder Karte erstellen, die für den Zeitraum vom 29. April bis 3. Mai 'Aktivitäts'-Einträge enthielt.
Antworten:
Ja, mit der Trello-API und einigen anderen Tools.
Diese Antwort basiert auf HTTPie und jq , zwei frei verfügbaren Tools, die über pip und Homebrew installiert werden können, wenn Sie einen Mac verwenden:
Mit können
HTTPie
wir die Trello-API abfragen, um den Rohaktions-Feed für ein Board zu erhalten, undjq
diese Daten dann in etwas Nützliches verwandeln.Beginnen wir mit etwas "Einfachem". Der folgende Befehl gibt uns alle Kommentare, die im April 2013 im Trello Dev Board abgegeben wurden . Ich werde dies gleich erklären:
Wenn alles nach Plan lief, sollten wir so etwas sehen:
Cool. Dies ist ein einzelnes, vernünftiges JSON-Objekt, das wir problemlos in eine beliebige Anzahl anderer Formate analysieren können. Lassen Sie uns das jetzt durchgehen, damit wir es gut genug verstehen können, um es an unsere Bedürfnisse anzupassen.
Dies ist der einzige Teil, der von Trello abhängt. Wir stellen eine Anfrage gegen die öffentliche API für das Board mit der ID
4d5ea62fd76aa1136000000c
- das habe ich erhalten, indem ich zu https://trello.com/dev gegangen bin und mir die ID angesehen habe, die Trello an die vollständige URL anhängt (https://trello.com/board/trello-development/4d5ea62fd76aa1136000000c
).Die Felder
since
undbefore
sind selbsterklärend. Ich gebe einlimit
von an,1000
weil dies die größte Antwort ist, die Trello zulässt. Wenn Ihr Board mehr als tausend Kommentare im relevanten Datumsbereich hat, wäre hier eine kompliziertere Paging-Lösung erforderlich. Ich gebe einfilter
von an,commentCard
weil ich nur für die Zwecke dieser Antwort an diesen interessiert bin. Wenn Sie weitere Aktionstypen wünschen, geben Sie eine durch Kommas getrennte Liste anfilter==commentCard,updateCard:idList,createCard
. Gültige Aktionstypen finden Sie in der Trello-API-Referenz .Wenn wir das alleine ausführen, erhalten wir viele Informationen, die relativ schwer zu verstehen sind. Also leiten wir es hinein,
jq
um es in etwas Nützlicheres zu massieren.Stück für Stück führt unser
jq
Skript die folgenden Transformationen durch, wobei jede ihr Ergebnis an den nächsten Operator weiterleitet: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, ...], ...}
. Indem wir das Array in ein Array von Schlüssel-Wert-Paarenfrom_entries
verwandeln, können wir daraus ein Objekt machen. Cool.KEY_EXPRESSION
oben genannt habe:(.[0].data.card | "\(.name) (\(.id))")
\(...)
), um etwas zu konstruieren, das aussieht"name (id)"
.VALUE_EXPRESSION
istmap({date, member: .memberCreator.fullName, comment: .data.text})
.
das Array aller Aktionen unverändert lassen können. Da Aktionen jedoch etwas hässlich sind, massieren wir sie in etwas Nützliches, indem wirmap
über das Array pingen und{date, member: .memberCreator.fullName, comment: .data.text}
auf jedes einzelne Aktionsobjekt anwenden .{date}
ist das gleiche wie{date: date}
zujq
.Da haben Sie es also. Hoffentlich. Wir hätten diese Datenmassage in jeder Skriptsprache durchführen können, aber genau dafür
jq
wurde sie entwickelt. Es ist also eine gute Ausrede, ein cooles neues Tool zu erlernen. Weitere Informationen finden Sie im jq-Handbuch .Das funktioniert jetzt, weil das Trello Dev Board öffentlich ist. Aber was ist, wenn wir private Daten wollen?
Der richtige Weg, dies zu tun, besteht darin, ein API-Token zu generieren. Das Trello API-Handbuch Erste Schritte enthält eine detaillierte Anleitung dazu. Aber wir haben es eilig, also machen wir es auf die Art des Faulen ...
Melden Sie sich in Chrome bei http://trello.com an und öffnen Sie die Konsole (Ansicht> Entwickler> JavaScript-Konsole). Tippe
$.cookie('token')
in das Fenster. Dies wird so etwas zurückspucken"uniquememberid/somegarbledstring"
. Kopieren Sie den Teil zwischen den Anführungszeichen und ändern Sie die Anforderung so, dass sie ungefähr so aussieht:Das einzige, was wir geändert haben, ist das Hinzufügen des
"Cookie:token=uniquememberid/somegarbledstring"
Headers. Dadurch wird Trello den Token verwenden. HINWEIS: Dieses Token ist sehr privat. Wenn Sie es einer anderen Person geben, kann sich diese Person grundsätzlich als Sie anmelden, bis Sie es auf der Trello-Kontoseite widerrufen . Also, weißt du, sei vorsichtig. Oder führen Sie den Schritt zur Generierung von API-Schlüsseln / Token durch.Ändern Sie jetzt weg, um die genauen Daten zu erhalten, die Sie in dem gewünschten Format benötigen.
quelle
Ich habe ein Tool namens reportsfortrello.com erstellt, das Ihnen zeigt, wie lange eine Karte während eines bestimmten Zeitraums in einer Liste war.
Es ist kostenlos und ermöglicht es Ihnen, 1000 Aktionen pro Board zurückzublicken. Es kann auch Kartenmitgliedschaften verfolgen.
quelle