He estado usando Trello durante varios meses y rutinariamente publico actividad en las tarjetas mientras trabajo en ellas y luego las muevo de izquierda a derecha a la lista 'Completa'. No aprovecho las fechas de vencimiento. ¿Existe un mecanismo para enumerar el texto de la actividad en todas las tarjetas para un rango determinado? Estoy tratando de obtener algunos datos sin procesar para alimentar un informe de estado durante un período determinado.
Ejemplo: si el día de hoy es el 15 de mayo de 2013. Quiero producir una lista de todo el texto de actividad en cada tarjeta que tenía entradas de 'actividad' para el período del 29 de abril al 3 de mayo.
Respuestas:
Sí, lo es, usando la API de Trello y algunas otras herramientas.
Esta respuesta se basa en HTTPie y jq , dos herramientas disponibles gratuitamente que se pueden instalar a través de pip y Homebrew si está utilizando una Mac:
Usando
HTTPie
podemos consultar la API de Trello para obtener la fuente de acción sin procesar para un tablero, luego podemos usarjq
para convertir esos datos en algo útil.Comencemos con algo "simple". El siguiente comando nos dará todos los comentarios hechos en la Junta de Desarrollo de Trello en el mes de abril de 2013. Explicaré esto en un segundo:
Si todo salió según lo planeado, deberíamos ver algo como esto:
Frio. Es un objeto JSON único y razonable que podemos analizar fácilmente en cualquier cantidad de otros formatos. Ahora veamos eso para que podamos entenderlo lo suficientemente bien como para modificarlo y adaptarlo a nuestras necesidades.
Esta es la única parte que depende de Trello. Hacemos una solicitud contra la API pública para el tablero con id
4d5ea62fd76aa1136000000c
. Lo obtuve yendo a https://trello.com/dev y mirando el id. Trello se agrega a la URL completa (https://trello.com/board/trello-development/4d5ea62fd76aa1136000000c
).Los campos
since
ybefore
se explican por sí mismos. Especifico unalimit
de1000
porque esa es la respuesta más grande que Trello permitirá. Si su placa tiene más de mil comentarios en el intervalo de fechas relevante, se requeriría una solución de paginación más complicada aquí. Especifico unfilter
decommentCard
porque solo estoy interesado en aquellos para los fines de esta respuesta. Si desea más tipos de acción, especifique una lista separada por comas comofilter==commentCard,updateCard:idList,createCard
. Los tipos de acción válidos se pueden encontrar en la referencia de la API de Trello .Si corremos eso solo, obtendremos mucha información que es relativamente difícil de entender. Así que lo canalizamos
jq
para masajearlo en algo un poco más útil.Pieza por pieza, nuestro
jq
script está haciendo las siguientes transformaciones, cada una canalizando su resultado al siguiente operador: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, ...], ...}
. Al convertir la matriz en una matriz de pares clave-valor, podemos usarlafrom_entries
para convertirla en un objeto. Frio.KEY_EXPRESSION
arriba:(.[0].data.card | "\(.name) (\(.id))")
\(...)
) para construir algo que se parezca"name (id)"
.VALUE_EXPRESSION
esmap({date, member: .memberCreator.fullName, comment: .data.text})
.
para mantener la matriz de todas las acciones sin cambios. Pero dado que las acciones son un poco feas, las estamos dando masajes en algo útil haciendomap
ping sobre la matriz y aplicando{date, member: .memberCreator.fullName, comment: .data.text}
a cada objeto de acción individual.{date}
es el mismo que{date: date}
parajq
.Entonces ahí lo tienes. Er, con suerte. Podríamos haber hecho este masaje de datos en cualquier lenguaje de script, pero esto es exactamente para lo que
jq
fue creado, por lo que es una buena excusa para aprender una nueva herramienta genial. Consulte el manual de jq para obtener más información.Ahora, esto funciona porque la Junta de Desarrollo de Trello es pública. Pero, ¿y si queremos datos privados?
La forma correcta de hacer esto es generar un token API. La Guía de inicio de la API de Trello tiene un resumen detallado de cómo hacerlo. Pero tenemos prisa, así que lo haremos a la manera del hombre perezoso ...
Inicie sesión en http://trello.com en Chrome y abra la consola (Ver> Desarrollador> Consola de JavaScript). Escribe
$.cookie('token')
en la ventana. Esto escupirá algo como"uniquememberid/somegarbledstring"
. Copie la parte entre comillas y modifique la solicitud para que sea algo así:Lo único que hemos cambiado es agregar el
"Cookie:token=uniquememberid/somegarbledstring"
encabezado. Esto hará que Trello use el token. TEN EN CUENTA que ese token es muy privado ... si se lo das a otra persona, básicamente pueden iniciar sesión como tú hasta que lo revoques en la página de la cuenta de Trello . Entonces, ya sabes, ten cuidado. O siga el paso de generación de clave / token API.Ahora modifique para obtener los datos precisos que necesita en el formato que desee.
fuente
Creé una herramienta llamada reportsfortrello.com que le mostrará cuánto tiempo estuvo una tarjeta en una lista durante un período de tiempo.
Es gratis y te permite mirar 1000 acciones por tablero. También puede rastrear membresías de tarjetas.
fuente