Wekanでカード移動時に自動編集する

オープンソースのカンバンツール「Wekan」でカード移動時の自動編集をやってみた。

やりたいこと

特定ボードのカードを特定のリストに移動した際に以下の編集をする。

  • メンバーに移動者を追加する
  • 期限に現在日時をもとにした値を設定する

やったこと

ルール

Wekanには特定条件で処理を実行するルールがある。 f:id:iyuniY:20200503122412p:plain

特定のリストにカードを移動したときという条件は設定できるが、
処理を指定する際に、カード移動実行者などの変数を利用することができなかった。
そのため、ルールで目的のことはできなかった。


※ルールでの変数利用はマイルストーンに設定されているので、そのうち実装されるかも
[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を探す必要がある。