外部タスクのプロバイダ

Kanboard は別のシステムに保存されているタスクの管理に使用可能です。例えば、外部システムにはバグトラッカーやいかなる種類のチケットシステムが使用可能です。この方法では、Kanboardを内部タスクと同様に外部タスクを管理するのに使用できます。

ワークフロー

作成:

  1. エンドユーザーが別のタスクのプロバイダからタスクを作成することを選択する
  2. 外部のタスクのプロバイダはユーザーが外部タスクを取得できる書式で陳列する
  3. 外部タスクが別のシステムから引き出される
  4. カスタマイズされた形でユーザーに表示される

可視化:

タスクの概要ページが開かれた時、Kanboardはリモートのタスクを非同期的に読み込みます。この情報は読み込み時間の改善のためにプラグインによってキャッシュされる場合があります。

変更:

任意で、プラグインは外部システムに追加の情報を保存するカスタムフォームを提示できます。

インターフェース

外部タスクのプロバイダは少なくとも2つのインターフェースを持たなければなりません:

  • Kanboard\Core\ExternalTask\ExternalTaskProviderInterface
  • Kanboard\Core\ExternalTask\ExternalTaskInterface

ExternalTaskProviderInterface

メソッド 使用方法
getName() プロバイダ名 (label) を取得
fetch() 外部システムorキャッシュから タスクのフォームを回収
save($uri, array $formValues, array &$formErrors) 別のシステムに外部タスクを保存
getImportFormTemplate() タスクをインポートするテンプレート名を取得
getCreationFormTemplate() テンプレートのフォームを作成
getModificationFormTemplate() テンプレートのフォームを変更
getViewTemplate() タスクビューのテンプレート名を取得
buildTaskUri(array $formValues) インポートしたフォームの値を元に 外部タスクのURIをビルドする

ExternalTaskInterface

メソッド 使用方法
getUri() タスクのURIを返す
getFormValues() タスクのフォームを埋めているデータを連想配列で返す

例外

何か間違いがあった時、プラグインは例外を上げるでしょう:

  • Kanboard\Core\ExternalTask\ExternalTaskException: 外部システムに起因する一般的なエラー
  • Kanboard\Core\ExternalTask\AccessForbiddenException: 外部システムへのアクセスが許容されていない
  • Kanboard\Core\ExternalTask\NotFoundException: 外部タスクが見つからない

プロバイダの登録

class Plugin extends Base
{
    public function initialize()
    {
        $this->externalTaskManager->register(new MyExternalTaskProvider());
    }
}