内藤 裕二/ 2018年 10月 26日/ 技術

TL;DR

TrelloとGASを組み合わせて特定のリストにあるカードを一定期間で自動的にアーカイブする小便利なスクリプトを作ってみました。

発端

私が参画しているNorth Torch株式会社には複数の社外株主がいます。
その中には非エンジニアもおり、社内の課題や受託開発の案件情報等を共有するためにTrelloを使用しています。

カンバン方式云々よりも、視覚的に情報を追いやすいというメリットを重視して採用しましたが、課題として登録したカードが解決した後に、自動でアーカイブする機能がありませんでした。
Google Apps Scriptを使用して、定期的に不要になったカードをアーカイブするスクリプトを作成しました。

作成したスクリプト

スクリプトは、下記よりダウンロードできます。

https://github.com/rot-z/GasTrelloInspectSample

使用方法

Trelloのキーとトークンの生成、および対象リストIDの取得

【30分で動かすシリーズ】TrelloにAPIを使ってカードの起票や取得をしてみるを参考に、Trelloのキーとトークン、対象のリストIDを取得します。

スクリプトプロパティを設定

Google Driveで更新されていないファイルを削除するで記載した方法に従って、下記のスクリプトプロパティを設定します。

Key Value
Trello_KEY Trelloのキー
Trello_TOKEN Trelloのトークン
Trello_COMPLETED_LIST_ID TrelloのリストID

Stackdriverとの連携設定

Stackdriverとの連携設定を一度もしていないのであれば、下記を参考に連携設定します

試しに実行

関数「cleanTrello」を一度実行します
エラーがなければ、問題ありません
初回実行では、アカウントに対するアクセス許可が求められるので、承認します

主な仕様とカスタマイズ

スクリプトプロパティで指定した特定リストのみ対象とする

特定リスト配下のみ対象とするようにしています

最終更新日が1ヶ月以上前のファイルを削除する

スクリプトの下記部分を変更すると、削除対象とするファイルの範囲を変更できる
なお、「for test」のコメントのついた行は、デバッグ用に1秒前のファイルを削除するようにしてある

// Make target date
var TargetDate = new Date();
TargetDate.setMonth(TargetDate.getMonth() - 1);  // 1 month ago
//TargetDate.setSeconds(TargetDate.getSeconds() - 1);  // 1 second ago for test

参照URL

似たようなことを考える方は結構いるので、参考資料には困らないですね・・・