Trello 에 쌓인 태스크군을 jq 를 사용해 좋은 느낌의 CSV 로 한다
최종형
$ jq -r '.cards[] | select(.closed == false) | select(.idList == "5add1d163d71c2014281fcd6") | [.name, .desc, .idList, .url] | @csv' board.json
"涼しくなったので風邪に注意する","- 早く帰る
- 早く帰る
- 早く帰る","5add1d163d71c2014281fcd6","https://trello.com/c/pCyAorwX/1224--",
... 省略
전치
Trello는 아래와 같이 메뉴 안쪽에서 JSON을 내보낼 수 있습니다.
그래서 이것을 jq 사용해 좋은 느낌의 CSV로 해 보겠습니다.
이번은 「특정의 리스트에 들어 있는 카드 일람 CVS」의 작성을 골로 했습니다.
과정
우선은 아래의 커멘드로 json의 제1 계층이 어떻게 되어 있는지 조사합니다.
$ jq 'keys' board.json
[
"actions",
"cards",
"checklists",
"closed",
"dateLastActivity",
"dateLastView",
"desc",
"descData",
"id",
"idOrganization",
"idTags",
"invitations",
"invited",
"labelNames",
"labels",
"lists",
"members",
"memberships",
"name",
"pinned",
"powerUps",
"prefs",
"shortLink",
"shortUrl",
"starred",
"subscribed",
"url"
]
어쨌든 cards, lists, menbers 근처에 정보가 꽉 찼습니다.
이번에는 cards의 내용을 들여다 봅시다.
$ jq '.cards[0] | keys' board.json
[
"attachments",
"badges",
"checkItemStates",
"closed",
"dateLastActivity",
"desc",
"descData",
"due",
"email",
"id",
"idAttachmentCover",
"idBoard",
"idChecklists",
"idLabels",
"idList",
"idMembers",
"idMembersVoted",
"idShort",
"labels",
"manualCoverAttachment",
"name",
"pos",
"shortLink",
"shortUrl",
"subscribed",
"url"
]
name, desc, idList, url 근처를 CSV에 출력하기로 합니다.
또, closed 가 true 라고 아카이브 되고 있는 카드인 것 같기 때문에, 이번은 아카이브 되어 있지 않은 카드를 출력하기로 합니다.
시험에 그 부분만 얻어 봅시다.
$ jq '.cards[] | select(.closed == false) | [.name, .desc, .idList, .url]' board.json
[
"涼しくなったので風邪に注意する",
"対策:\n- 早く帰る\n- 早く帰る\n- 早く帰る",
"5add1d163d71c2014281fcd6", // リストのIDっぽいハッシュ値
"https://trello.com/c/hoge/123"
]
...
그런 것들이 잡혔습니다. select를 사용하여 .closed 값으로 필터링합니다.
그리고는, 리스트의 ID로 필터링해 주면 목적을 달성할 수 있을 것 같기 때문에, 리스트 일람을 봅니다.
$ jq '.lists[] | select(.closed == false) | [ .id, .name, .closed ]' board.json
[
"5add1d163d71c2014281fcd6",
"TODO",
false
]
...
이쪽도 closed 가 true 라고 아카이브 되고 있는 리스트인 것 같기 때문에, select 로 필터 해 보았습니다.
이번에는 이 "TODO"리스트에 들어 있는 카드를 출력하기로 하겠습니다.
$ jq '.cards[] | select(.closed == false) | select(.idList == "5add1d163d71c2014281fcd6") | [.name, .desc, .idList, .url]' board.json
[
"涼しくなったので風邪に注意する",
"対策:\n- 早く帰る\n- 早く帰る\n- 早く帰る",
"5add1d163d71c2014281fcd6",
"https://trello.com/c/hoge/123"
]
...
무사히 TODO 리스트에 들어 있는 카드를 출력할 수 있었습니다.
마지막으로 r 옵션과 @csv을 사용하여 CSV로 출력합니다.
$ jq -r '.cards[] | select(.closed == false) | select(.idList == "5add1d163d71c2014281fcd6") | [.name, .desc, .idList, .url] | @csv' board.json
"涼しくなったので風邪に注意する","対策:
- 早く帰る
- 早く帰る
- 早く帰る","5add1d163d71c2014281fcd6","https://trello.com/c/pCyAorwX/1224--",
... 省略
안전 CSV가 출력되었습니다. 셀 내의 개행도 대응할 수 있고 있어, 좋은 느낌이군요.
후기
Reference
이 문제에 관하여(Trello 에 쌓인 태스크군을 jq 를 사용해 좋은 느낌의 CSV 로 한다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/macoshita/items/54429268d822311f9810텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)