Я использую Trello в течение нескольких месяцев и регулярно размещаю действия на карточках, работая над ними, а затем перемещаю их слева направо в список «Complete». Я не использую сроки оплаты. Есть ли механизм для перечисления текста активности на всех карточках для данного диапазона. Я пытаюсь получить некоторые необработанные данные для подачи отчета о состоянии за определенный период.
Пример. Если текущим днем является 15 мая 2013 года. Я хочу составить список всех текстов действий на каждой карточке с записями «действий» за период с 29 апреля по 3 мая.
Ответы:
Да, это так, используя API Trello и несколько других инструментов.
Этот ответ основан на HTTPie и jq , двух свободно доступных инструментах, которые можно установить через pip и Homebrew, если вы используете Mac:
Используя
HTTPie
запрос, мы можем запросить API-интерфейс Trello, чтобы получить необработанный канал действий для доски, а затем использовать егоjq
для превращения этих данных во что-то полезное.Давайте начнем с чего-то «простого». Следующая команда предоставит нам все комментарии, сделанные на форуме разработчиков Trello в апреле 2013 года. Я объясню это через секунду:
Если все прошло по плану, мы должны увидеть что-то вроде этого:
Прохладно. Это единственный разумный объект JSON, который мы можем легко проанализировать в любом количестве других форматов. Теперь давайте пройдемся по этому, чтобы мы могли понять это достаточно хорошо, чтобы изменить его в соответствии с нашими потребностями.
Это единственная часть, которая зависит от Trello. Мы делаем запрос к общедоступному API для форума с идентификатором
4d5ea62fd76aa1136000000c
- я получил это, перейдя по адресу https://trello.com/dev и посмотрев идентификатор, который Trello добавляет к полному URL (https://trello.com/board/trello-development/4d5ea62fd76aa1136000000c
).since
Иbefore
поля самоочевидны. Я указатьlimit
из ,1000
потому что это самый большой отклик Trello позволит. Если ваша доска объявлений содержит более тысячи комментариев в соответствующем диапазоне дат, здесь потребуется более сложное решение для подкачки страниц. Я указатьfilter
из ,commentCard
потому что я заинтересован только в тех , для целей этого ответа. Если вы хотите больше типов действий, укажите разделенный запятыми список, напримерfilter==commentCard,updateCard:idList,createCard
. Действительные типы действий можно найти в справочнике по API Trello .Если мы запустим это самостоятельно, мы получим много информации, которую относительно сложно понять. Таким образом, мы превращаем это в
jq
массаж, чтобы сделать его более полезным.Постепенно наш
jq
скрипт выполняет следующие преобразования, каждый из которых передает свой результат следующему оператору: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, ...], ...}
. Превратив массив в массив пар ключ-значение, мы можем использовать егоfrom_entries
для превращения в объект. Прохладно.KEY_EXPRESSION
выше:(.[0].data.card | "\(.name) (\(.id))")
\(...)
) для создания чего-то похожего"name (id)"
.VALUE_EXPRESSION
являетсяmap({date, member: .memberCreator.fullName, comment: .data.text})
.
чтобы получить массив всех действий без изменений. Но поскольку действия довольно уродливы, мы превращаем их во что-то полезное,map
проверяя массив и применяя{date, member: .memberCreator.fullName, comment: .data.text}
к каждому отдельному объекту действия.{date}
так же, как{date: date}
иjq
.Так что у вас есть это. Э-э, надеюсь. Мы могли бы выполнять массивацию данных на любом языке сценариев, но это именно то,
jq
для чего он был создан, так что это хороший повод для изучения нового крутого инструмента. Проверьте руководство JQ для получения дополнительной информации.Теперь это работает, потому что Trello Dev Board является публичной. Но что, если нам нужны личные данные?
Право способ сделать это , чтобы генерировать маркер API. Руководство по началу работы с API Trello содержит подробное описание того, как это сделать. Но мы спешим, поэтому мы сделаем это как ленивец ...
Войдите на http://trello.com в Chrome и откройте консоль («Просмотр»> «Разработчик»> «Консоль JavaScript»). Введите
$.cookie('token')
в окно. Это будет плевать что-то вроде"uniquememberid/somegarbledstring"
. Скопируйте часть между кавычками и измените запрос следующим образом:Единственное, что мы изменили - это добавление
"Cookie:token=uniquememberid/somegarbledstring"
заголовка. Это заставит Trello использовать токен. ЗАМЕТЬТЕ, что этот токен является очень приватным ... если вы дадите его кому-то другому, они могут войти в систему как вы, пока вы не отзовете его на странице учетной записи Trello . Так что, знаете, будьте осторожны. Или пройдите этап генерации ключа / токена API.Теперь измените, чтобы получить точные данные, которые вам нужны в нужном формате.
источник
Я создал инструмент под названием reportsfortrello.com, который покажет вам, сколько времени карта была в списке за определенный период времени.
Это бесплатно и позволяет просматривать 1000 действий назад на доске. Это может также отследить членство карты.
источник