Uso o Trello há vários meses e costumo postar atividades nos cartões enquanto trabalho com eles e os movo da esquerda para a direita na lista 'Concluído'. Não aproveito as datas de vencimento. Existe um mecanismo para listar o texto da atividade em todos os cartões para um determinado intervalo. Estou tentando extrair alguns dados brutos para alimentar um relatório de status por um determinado período.
Exemplo: se o dia atual for 15 de maio de 2013. Desejo produzir uma lista de todo o texto da atividade em cada cartão que tenha entradas de 'atividade' para o período de 29 de abril a 3 de maio.
Respostas:
Sim, é, usando a API do Trello e algumas outras ferramentas.
Esta resposta depende do HTTPie e do jq , duas ferramentas disponíveis gratuitamente que podem ser instaladas via pip e Homebrew se você estiver usando um Mac:
Usando
HTTPie
podemos consultar a API do Trello para obter o feed de ações brutas de um quadro, podemos usarjq
para transformar esses dados em algo útil.Vamos começar com algo "simples". O comando a seguir nos fornecerá todos os comentários feitos no Trello Dev Board no mês de abril de 2013. Vou explicar isso em um segundo:
Se tudo correu conforme o planejado, deveríamos ver algo assim:
Legal. Esse é um objeto JSON único e razoável que podemos analisar facilmente em qualquer número de outros formatos. Agora vamos passar por isso para que possamos entendê-lo bem o suficiente para modificá-lo para atender às nossas necessidades.
Essa é a única parte que depende do Trello. Nós fazemos uma solicitação contra a API pública para o quadro com o ID
4d5ea62fd76aa1136000000c
- eu consegui isso em https://trello.com/dev e olhando o ID que o Trello anexa ao URL completo (https://trello.com/board/trello-development/4d5ea62fd76aa1136000000c
).Os campos
since
ebefore
são auto-explicativos. Especifiquei umlimit
de1000
porque essa é a maior resposta que o Trello permitirá. Se seu quadro tiver mais de mil comentários no período relevante, uma solução de paginação mais complicada seria necessária aqui. Especifiquei umfilter
decommentCard
porque só estou interessado naqueles para os fins desta resposta. Se você quiser mais tipos de ação, especifique uma lista separada por vírgula comofilter==commentCard,updateCard:idList,createCard
. Tipos de ação válidos podem ser encontrados na referência da API do Trello .Se executarmos isso sozinhos, obteremos muitas informações relativamente difíceis de entender. Então nós o colocamos
jq
para massagear em algo um pouco mais útil.Peça por peça, nosso
jq
script está fazendo as seguintes transformações, cada uma canalizando seu resultado para o próximo 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, ...], ...}
. Ao transformar a matriz em uma matriz de pares de valores-chave, podemos usá-lafrom_entries
para transformá-la em um objeto. Legal.KEY_EXPRESSION
acima:(.[0].data.card | "\(.name) (\(.id))")
\(...)
) para construir algo parecido"name (id)"
.VALUE_EXPRESSION
émap({date, member: .memberCreator.fullName, comment: .data.text})
.
para manter inalterada a matriz de todas as ações. Mas, como as ações são meio feias, estamos massageando-as em algo útil,map
executando ping sobre o array e aplicando-o{date, member: .memberCreator.fullName, comment: .data.text}
a cada objeto de ação individual.{date}
é o mesmo que{date: date}
parajq
.Então aí está. Er, espero. Poderíamos ter feito essa massagem de dados em qualquer linguagem de script, mas é exatamente para isso que
jq
foi criado, por isso é uma boa desculpa para aprender uma nova ferramenta interessante. Confira o manual do jq para obter mais informações.Agora, isso funciona porque o Trello Dev Board é público. Mas e se quisermos dados particulares?
A maneira correta de fazer isso é gerar um token de API. O Guia de introdução da API do Trello apresenta uma explicação detalhada de como fazer isso. Mas estamos com pressa, então vamos fazer do jeito do preguiçoso ...
Faça login no http://trello.com no Chrome e abra o console (Exibir> Desenvolvedor> JavaScript Console). Digite
$.cookie('token')
na janela. Isso cuspirá algo como"uniquememberid/somegarbledstring"
. Copie a parte entre as aspas e modifique a solicitação para algo como isto:A única coisa que mudamos é adicionar o
"Cookie:token=uniquememberid/somegarbledstring"
cabeçalho. Isso fará com que o Trello use o token. Observe que esse token é muito particular ... se você o der a outra pessoa, ele poderá efetuar login como você até você revogá-lo na página da conta do Trello . Então, tome cuidado. Ou siga a etapa de geração de chave / token da API.Agora modifique para obter os dados precisos necessários no formato desejado.
fonte
Criei uma ferramenta chamada reportsfortrello.com que mostrará quanto tempo um cartão estava em uma lista durante um período de tempo.
É gratuito e permite que você analise 1000 ações por quadro. Também pode rastrear associações de cartões.
fonte