Dify Trigger(トリガー)機能 実施手順
「Dify Trigger(トリガー) 」機能がクラウド版1.10.0 でリリースされましたので、使い方の手順を理解するため、公式LangGenius社が掲載している Qiita ブログの 「クイックスタート:GitHub PR インテリジェントアシスタント」を再現してみました。
GitHub Trigger(Webhooks)プラグインの設定方法について、プラグインの詳細ページに記載がありますが、備忘録として、さらに詳しく手順化してみました。
環境
- クラウド版
- Dify バージョン
- 1.10.0
目的
新しくバージョン1.10.0 でリリースされた「トリガー」機能の使い方を学ぶため
結果
- GitHub で特定のリポジトリにプルリクエストを作成すると、 要点を Slack に通知する
- Slack
- Dify ワークフロー
Trigger(トリガー)機能の概要
公式で以下のように説明がありました。
トリガーは開始ノードの一種で、ユーザーや API 呼び出しによる能動的な開始を待つのではなく、スケジュールに従って、または外部システム(例:GitHub、Gmail、または独自の内部システム)からのイベントに応じて、workflow を自動的に実行できるようにします。
トリガーは、反復タスクの自動化や、workflow をサードパーティアプリケーションと統合して自動的なデータ同期と処理を実現するのに最適です。
1 つの workflow は、並行して実行される複数のトリガーを持つことができます。また、同じキャンバス上に複数の独立した workflow を構築し、それぞれが独自のトリガーで開始することもできます。
トリガーの種類には、以下の3つが実装されております。
- スケジュールトリガー
- 指定された時刻または間隔で workflow を実行します。
- 例:毎朝 9 時に日次売上レポートを自動生成し、チームにメールで送信します。
- プラグイントリガー
- トリガープラグインを通じたイベントサブスクリプションにより、外部システムで特定のイベントが発生したときに workflow を実行します。
- 例:Slack トリガープラグインを通じて
チャンネル内の新規メッセージイベントをサブスクライブすることで、特定の Slack チャンネル内の新規メッセージを自動的に分析およびアーカイブします。- Webhook トリガー
- カスタム webhook を介して外部システムで特定のイベントが発生したときにworkflow を実行します。
- 例:e コマースプラットフォームから注文詳細を含む HTTP リクエストに応答して、新規注文を自動的に処理します。
実施手順
今回は、プラグイントリガーを試しております。
実施手順の全体像は以下です。
- Dify のワークフローを開き、Github Trigger プラグインのノードを作成する
- GitHub 側の設定
- Dify 側のワークフローの設定
- 動作確認
1. Dify のワークフローを開き、Github Trigger プラグインのノードを作成する
-
Dify クラウド版のトップページから「最初から作成」→「ワークフロー」を選択して、作成します。
(アプリ名等は任意の値)

-
「トリガー」を選びます。

-
「Github」の「インストール」をクリックします。

-
「インストール」を押します。

-
今回の参考ブログに沿って「プルリクエスト」を選択しました。

-
初期画面は以下です。

2. GitHub 側の設定
- 以下の「GitHub Trigger(Webhooks)」プラグインの詳細ページに記載のある手順に沿って設定していきます。
- 公式のプラグインの説明では、「OAuth」「個人アクセストークン(PAT)」とあり、「OAuth」が推奨とありましたので、「OAuth」の設定を行います。
https://marketplace.dify.ai/plugins/langgenius/github_trigger?source=http%253A%252F%252Flocalhost&theme=system
セットアップ手順
- Difyにプラグインをインストール
- 認証戦略を選択(管理者)
- OAuth(推奨):ユーザーは自分のGitHub IDで認可し、Difyは更新可能なアクセストークンのみ>を保存します。
- 個人アクセストークン:管理者がWebhook管理権限を付与するPATを貼り付けます;すべてのサブス>クリプションが同じトークンを共有します。
- 3.(OAuthのみ)GitHub OAuth Appを作成
- GitHub Settings → Developer settings → OAuth Apps → New OAuth App
URL: https://github.com/settings/applications/new- 設定:
- Application name: わかりやすい名前(例:「Dify GitHub Trigger」)
- Homepage URL: DifyコンソールのURL
- Authorization callback URL: https://<your-dify->host>/console/api/plugin/oauth/callback
- 生成されたClient IDとClient Secretを取得します。
- 必要に応じてスコープを調整します;プラグインのデフォルトは read:user admin:repo_hook で、リ>ポジトリ全体へのアクセスなしでWebhook管理を可能にします。
- Difyにクレデンシャルを入力(管理者)
- OAuthの場合:
- client_id: OAuth Appから。
- client_secret: OAuth Appから。
- scope(オプション):追加のGitHub APIが必要でない限り、デフォルトのままにします。
- ユーザー:サブスクリプションを作成
(略)
- 記載のある https://github.com/settings/applications/new のGitHubのページにアクセスします。以下の通り、公式手順に沿って入力して「Register application」をクリックします。
-
以下の画面に遷移します。「Generate a new client secret」をクリックします。

-
以下のように、Client secrets が生成されるので、「Client ID」と 「Client secrets」をコピーします。

-
public で任意のリポジトリを作成しておきます。
3. Dify 側のワークフローの設定
-
Dify 側に戻ります。「新しいサブスクリプション」「OAuth経由」をクリックします。

-
「OAuthで作成」のモーダルウィンドウが表示されるので、以下のように先ほど取得した「クライアントID」「クライアントシークレット」をコピペする。

※ 表示された「OAuthで作成」の上部の「OAuthクライアント」の部分にURLがあるので、こちらのURLを利用して、GitHub の リダイレクト先のURLに設定し直すと成功しました。
-
以下のような承認画面に遷移するので、「 … を承認する」ボタンを押します。

-
次に、モーダルウィンドウが表示され、以下のように設定して、「作成」ボタンを押します。
- サブスクリプション名: 任意
- リポジトリ : 先ほど作成した任意のリポジトリ(publicが表示される)
-
以下のドロップダウンをクリックして、設定したサブスクリプションを選択します。

-
他の設定は、ベースブランチのみ「main」にしました。(参考ブログの内容から見える設定のまま)

-
LLMノードは以下のように、こちらも参考ブログの内容をそのまま設定しました。

LLMノードのシステムプロンプト
あなたは GitHub の Pull Request イベントを解析する AI アシスタントです。
以下はイベントのペイロードです:
Action: {{#(nodeId).action#}}
Pull Request: {{#(nodeId).pull_request#}}
Repository: {{#(nodeId).repository#}}
Sender: {{#(nodeId).sender#}}
提供される構造化データのみを使って、次の処理を行ってください:
何が始まったかを特定する(例:新規 PR、更新、push、再オープン、クローズなど)
PR の内容を明確かつ簡潔に要約する。
考えられる次のアクションを提案する。
なるべく丁寧に、レビューアーまたは作者への簡やかな次のステップを示す。
文章はわかりやすい内容とし、プロフェッショナルなトーンを保つこと。
最終的な出力は、短く、よく構造化されたサマリーとしてまとめてください。
- Slack Webhook プラグインのノードを設定します。

4. 動作確認
-
GitHub のリポジトリのトップページを開きます。
-
テスト用のブランチを作成します。(今回は、簡易的なテストのため、GitHubのUI上から実施しています。

-
任意のファイルを変更して、コミットします。

-
コミットメッセージ等を任意に設定して、コミットします。

-
「Compare & pull request」をクリックします。

-
任意の内容を設定して、「Create pull request 」ボタンを押して、プルリクエストを作成します。

-
Slack を見ると、Dify の ワークフローの実行結果が、表示されていることを確認しました。

参考サイト
- 公式のTrigger 機能の説明
- Slack Webhook プラグインのセットアップの説明
Discussion