Saya telah menggunakan Trello selama beberapa bulan dan saya secara rutin memposting aktivitas pada kartu ketika saya mengerjakannya dan kemudian memindahkannya dari kiri ke kanan ke daftar 'Lengkap'. Saya tidak memanfaatkan tanggal jatuh tempo. Apakah ada mekanisme untuk membuat daftar teks aktivitas pada semua kartu untuk rentang tertentu. Saya mencoba menarik beberapa data mentah untuk memberi makan laporan status untuk periode tertentu.
Contoh: Jika hari ini adalah 15 Mei 2013. Saya ingin membuat daftar semua teks aktivitas pada setiap kartu yang memiliki entri 'aktivitas' untuk periode 29 April - 3 Mei.
Jawaban:
Ya, itu, menggunakan Trello API dan beberapa alat lainnya.
Jawaban ini bergantung pada HTTPie dan jq , dua alat yang tersedia secara bebas yang dapat diinstal melalui pip dan Homebrew jika Anda menggunakan Mac:
Dengan menggunakan
HTTPie
kita dapat meminta API Trello untuk mendapatkan umpan tindakan mentah untuk sebuah papan, lalu kita dapat menggunakanjq
untuk mengubah data itu menjadi sesuatu yang bermanfaat.Mari kita mulai dengan sesuatu yang "sederhana." Perintah berikut akan memberi kami semua komentar yang dibuat di Trello Dev Board di bulan April 2013. Saya akan menjelaskan ini sebentar lagi:
Jika semuanya berjalan sesuai rencana, kita akan melihat sesuatu seperti ini:
Keren. Itu adalah objek JSON tunggal yang masuk akal yang dapat dengan mudah kita uraikan ke dalam sejumlah format lain. Sekarang mari kita melangkah melalui itu sehingga kita dapat memahaminya dengan cukup baik untuk memodifikasinya sesuai dengan kebutuhan kita.
Ini adalah satu-satunya bagian yang bergantung pada Trello. Kami membuat permintaan terhadap API publik untuk papan dengan id
4d5ea62fd76aa1136000000c
- Saya mendapatkannya dengan membuka https://trello.com/dev dan melihat id Trello ditambahkan ke URL lengkap (https://trello.com/board/trello-development/4d5ea62fd76aa1136000000c
).The
since
danbefore
bidang yang jelas. Aku menentukanlimit
dari1000
karena itulah respon terbesar Trello akan memungkinkan. Jika papan Anda memiliki lebih dari seribu komentar dalam rentang tanggal yang relevan, solusi paging yang lebih rumit akan diperlukan di sini. Aku menentukanfilter
daricommentCard
karena aku hanya tertarik pada mereka untuk tujuan jawaban ini. Jika Anda ingin lebih banyak jenis tindakan, tentukan daftar seperti dipisahkan komafilter==commentCard,updateCard:idList,createCard
. Jenis tindakan yang valid dapat ditemukan di referensi Trello API .Jika kita menjalankannya sendiri, kita akan mendapatkan banyak info yang relatif sulit untuk dipahami. Jadi kami menyalurkannya
jq
untuk memijatnya menjadi sesuatu yang sedikit lebih berguna.Sepotong demi sepotong,
jq
skrip kami sedang melakukan transformasi berikut, masing-masing mengirimkan hasilnya ke operator berikutnya: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, ...], ...}
. Dengan mengubah array menjadi array pasangan nilai kunci, kita bisa menggunakannyafrom_entries
untuk mengubahnya menjadi objek. Keren.KEY_EXPRESSION
atas:(.[0].data.card | "\(.name) (\(.id))")
\(...)
) untuk membangun sesuatu yang terlihat seperti"name (id)"
.VALUE_EXPRESSION
adalahmap({date, member: .memberCreator.fullName, comment: .data.text})
.
agar semua tindakan tidak berubah. Tetapi karena tindakan agak jelek, kami memijatnya menjadi sesuatu yang berguna dengan melakukanmap
ping ke array dan menerapkan{date, member: .memberCreator.fullName, comment: .data.text}
ke setiap objek aksi individu.{date}
sama{date: date}
denganjq
.Jadi begitulah. Er, semoga. Kami dapat melakukan pemijatan data ini dalam bahasa skrip apa pun, tetapi inilah yang
jq
dibangun untuk itu, jadi itu alasan yang bagus untuk mempelajari alat baru yang keren. Check out panduan JQ untuk lebih.Sekarang, ini berhasil karena Trello Dev Board bersifat publik. Tetapi bagaimana jika kita menginginkan data pribadi?
Cara yang tepat untuk melakukan ini adalah dengan menghasilkan token API. The Trello API Panduan Persiapan memiliki runthrough rinci tentang bagaimana untuk melakukan hal ini. Tapi kita sedang terburu-buru, jadi kita akan melakukannya dengan cara pria malas ...
Masuk ke http://trello.com di Chrome dan buka konsol (Lihat> Pengembang> Konsol JavaScript). Ketik
$.cookie('token')
ke dalam jendela. Ini akan meludahi sesuatu seperti"uniquememberid/somegarbledstring"
. Salin bagian di antara tanda kutip, dan ubah permintaan menjadi seperti ini:Satu-satunya hal yang kami ubah adalah menambahkan
"Cookie:token=uniquememberid/somegarbledstring"
header. Ini akan membuat Trello menggunakan token. CATATAN bahwa token itu sangat pribadi ... jika Anda memberikannya kepada orang lain, mereka pada dasarnya dapat masuk saat Anda sampai Anda mencabutnya di Halaman Akun Trello . Jadi, berhati-hatilah. Atau ikuti langkah pembuatan kunci / token API.Sekarang modifikasi untuk mendapatkan data yang tepat yang Anda butuhkan dalam format yang Anda inginkan.
sumber
Saya membuat alat yang disebut reportsfortrello.com yang akan menunjukkan kepada Anda berapa lama kartu berada dalam daftar selama rentang waktu.
Ini gratis dan memungkinkan Anda melihat 1000 tindakan kembali per papan. Itu juga dapat melacak keanggotaan kartu.
sumber