コンテンツにスキップ

パイプライントリガーを設定

トリガーはパイプラインを開始するものです。各トリガーはキャンバス上のノードで、 ノードライブラリの トリガー セクションからドラッグして配置します。そのノードを 選択すると、右側にインスペクターが開きます — 常時表示されるトリガー一覧も、 トリガータブも、トリガー画面もありません。

  1. 設定 → ワークスペース → パイプラインテンプレートに移動します。
  2. テンプレートの行にある鉛筆アイコンを押してエディターを開きます。
  3. キャンバス上のトリガーノードを選択します。右パネルにそのトリガーの設定が 表示されます。何も選択していないときは、パネルは非表示です。

ノードライブラリの トリガー セクションには、開始の種類ごとに個別のノードが 並びます。手動、スケジュール、Webhook、そしてドメインイベントごとに 1 枚の カードです。merged、ticket、または種別名(PrMerged)で検索し、カードを キャンバスにドラッグします。新しいテンプレートでは、エントリアンカーに トリガーを追加 のゴーストタイルも表示されます — 同じ検索可能なリストから 選びます。

トリガーは即座に挿入されます。新しい自動トリガーは無効な状態で作成されるため、 設定を終える前にドロップで実行が発火することはありません。有効にするには インスペクターの 有効 スイッチを使い、削除するにはゴミ箱アイコンを使います。

手動実行 をドロップする(またはゴーストタイルから選ぶ)と、その インスペクターで 有効 をオンにします。これがテンプレートを実行ページに 表示させる条件です。特別扱いではなく、このスイッチはイベント種別が manual の 普通のトリガー行を書き込むだけです。即座に永続化されるため、保存するものは ありません。

エディターヘッダーの 手動実行 の背景にあるのも同じスイッチで、テンプレートで 宣言された入力と並んで表示されます。

次のイベントが実行を開始します。

ピッカーのラベル イベント
外部 PR がオープン ExternalPrDetected
PR が公開 PullRequestPublished
PR のステータス変更 PullRequestStatusChanged
PR がマージ PrMerged
メッセージ受信 MessageReceived
チケットが作成 TicketCreated
チケットの状態が変更 TicketStatusChanged
チケット割り当て TicketAssigned
チケット完了 TicketCompleted
チケット失敗 TicketFailed
チケットキャンセル TicketCancelled
予算のしきい値を超過 BudgetThresholdCrossed
リポジトリが追加 RepoAdded
会議の録音が停止 MeetingRecordingStopped
スキルが更新 SkillUpdated
スペースが削除 SpaceDeleted

SpaceDeleted は組み込みのワークツリーのクリーンアップパイプラインが待ち受けて いるイベントです。削除されたスペースの id を運ぶため、実行はワークスペース 全体を走査するのではなく、そのスペースのワークツリーだけを正確に回収します。

各イベントが運ぶペイロードキーについては、 ドメインイベントリファレンス を参照してください。

PR のステータス変更 ノードを選択します。インスペクターのステータスチップは、 UI で作成できる唯一のフィルターです。merged、closed、approved、opened、 reopened のいずれかをタップすると、イベントの status がそれらのいずれかに 一致するときだけトリガーが発火します。すべてのチップを未選択のままにすると、 フィルターなしを意味します。

自由形式の JSON フィルターフィールドはありません。イベントのペイロードが 持たないフィルターキーは決して一致しないため、ドメインイベントリファレンスで 確認していないキーに対して手書きで作成しないでください。

スケジュール ノードを選択して、発火するタイミングを編集します。 インスペクターのフィールドは、離れた時点の内容がそのまま永続化されます。

フィールド 説明
スケジュール(cron または every:seconds) 0 9 * * 1 のような 5 フィールドの cron 式、または every:86400 のような間隔。裸の数値は every:<n> に変換されます。
タイムゾーン(任意) Europe/Paris のような IANA ゾーン。デフォルトは UTC。
取りこぼした実行 サーバーが停止している間に逃した発火をどう扱うか。1回実行 は逃したすべてのスロットを再起動時の 1 回の発火にまとめ(デフォルト)、スキップ は次に来る未来のスロットから再開します。

キャンバスタイルの概要行が間隔を明示するのは every:<seconds> 形式の場合だけ です。cron 式は単に「スケジュール」とだけ表示されます。

Webhook をドロップすると、ランダムなトークンが発行されます。ノードを選択 すると、インスペクターからパス POST /webhooks/<token> をコピーできます。

トークンは HMAC シークレットも兼ねます。リクエストは X-Hub-Signature-256: sha256=<hex> を運ぶ必要があり、この hex は HMAC-SHA256(body, token) です。検証に失敗した配信は拒否されてログに記録され、 再生できません。重複は dedupe キーによって無視されます。

各開始はそれ自体が 1 つのグラフノードです。スケジュール からワイヤを引くと スケジュールだけが接続されます。手動実行 は同じ作業に合流する前に別の経路 (たとえば条件ノード)を通ることができます。実行は自身のイベント種別に一致する 開始に入り、他の開始に属するサブグラフはスキップします。

イベント種別とフィルターの両方が一致する有効なトリガーは、イベントのペイロードを 実行のトリガーペイロードとして実行を開始します — ステップのプロンプトや スクリプト内の {{key}} が解決される対象がこれです。自然キーを運ぶイベントは 重複排除されるため、同じイベントが 2 回発火しても 2 つの実行が始まることは ありません。

無効なテンプレートは、トリガーが一致していても拒否されます。13 個の組み込み テンプレートのうち 8 個は無効な状態で配布されるため、テンプレートをオンにする まで、シードされたトリガーは空しく発火します。

  • 手動パスだけをゲートする — 手動実行 を条件ノード経由で接続し、 スケジュール は作業へ直接つなぎます。各開始はそれぞれのワイヤを持ちます。
  • 新しい PR をすべてレビューする — pr_review テンプレートで PR が公開 イベントを使います。
  • マージ後にクリーンアップする — PR のステータス変更 イベントを merged / closed / approved に絞り込みます。組み込みの pr_merged_cleanup テンプレートはすでにこの方法で待ち受けており、さらに チケットの完了/キャンセル、SpaceDeleted、そしてガベージコレクションで あるために再シードのたびに強制的に有効化される日次スケジュールも含みます。
  • 毎晩の一括処理 — 最初のノードが bash スクリプトであるテンプレートで、 タイムゾーン付きのスケジュール 0 2 * * * を設定します。
  • 外部システムに反応する — Webhook トリガーを使い、呼び出し側のシステムが 上記のようにリクエストボディに署名します。