Wekanでカード移動時に自動編集する
オープンソースのカンバンツール「Wekan」でカード移動時の自動編集をやってみた。
やりたいこと
特定ボードのカードを特定のリストに移動した際に以下の編集をする。
- メンバーに移動者を追加する
- 期限に現在日時をもとにした値を設定する
やったこと
ルール
Wekanには特定条件で処理を実行するルールがある。
特定のリストにカードを移動したときという条件は設定できるが、
処理を指定する際に、カード移動実行者などの変数を利用することができなかった。
そのため、ルールで目的のことはできなかった。
※ルールでの変数利用はマイルストーンに設定されているので、そのうち実装されるかも
[Feature] Rules Variables like Trello Butler · Issue #2475 · wekan/wekan · GitHub
Webhook
Wekan単体ではできそうになかったので、最終的には無理やり実現した。
カード操作時に呼ばれるWebhookが用意されているので、
NodeREDを呼び出して、データを加工し、
更にNodeREDからWekanのREST-APIを呼び出してカードを更新する。
Webhook data · wekan/wekan Wiki · GitHub
REST API · wekan/wekan Wiki · GitHub
Wekanの設定では双方向のWebhookがあるが、ドキュメント上は見当たらなかった。
APIでやるのに面倒なのは、Webhookで渡されるのはユーザ名で、APIでカード更新するときはユーザIDなとこ。
一旦APIでユーザ一覧を取得して、ユーザ名が一致するIDを探す必要がある。