Dialogflow CX は GitHub と統合されています。この統合により、GitHub に push するために JSON を使用してエージェントをエクスポートすることや、エージェントを復元するために GitHub から pull することが容易になりました。 GitHub に push される JSON エクスポート形式は、エクスポートされたエージェントの展開された zip ファイルの内容です。
この機能を使用すると、GitHub ソース管理機能(以下に例を示します)を利用できます。
- コードレビュー ツールを使用したエージェントの変更レビュー
- 差分ツールを使用してエージェントの差分を確認する
- 統合
- その他に関しても同様です。
制限事項
次の制限が適用されます。
- GitHub には、1 時間あたりのリクエスト数のレート制限があります(エンタープライズ以外のアカウントの場合は 5,000、エンタープライズ アカウントの場合は 15,000)。エージェント プッシュがこの上限を超えると、Dialogflow CX コンソールにレート制限エラーが報告されます。1 時間後に push を再試行できます。
- GitHub API には、1 回の commit で更新できるファイルの数に制限があります。ファイル数が 500 を超えると、Dialogflow CX から GitHub に push できなくなる場合があります。その場合は、エージェントを zip として
エクスポートし、マシンの Git CLI を使用してエージェント ファイルを GitHub に push できます。この制限については、今後の Dialogflow CX リリースで対処する予定です。 - セルフホストのプライベート アクセスについて、Dialogflow CX はそれらのリポジトリにアクセスできないためサポートされていません。
- GitHub リポジトリには、エージェント エクスポートによってエクスポートされたエージェント ファイル以外のファイルを含めることはできません。リポジトリ内の他のすべてのファイルは、push のたびに削除されます。
構成
この統合を構成するには:
- Dialogflow CX Console を開きます。
- ご自身の Google Cloud プロジェクトを選択します。
- エージェントを選択します。
- [管理] タブをクリックします。
- [Testing & Deployment] セクションで [Git] をクリックします。
- [Add Git integration] をクリックすると、構成ダイアログが開きます。
- 次のように入力します。
- GitHub 接続の表示名。
- GitHub リポジトリの URL(例:
https://api.github.com/repos/<repository_owner>/<repository_name>
)。 - エージェントが操作する GitHub ブランチを追加します。ブランチの横にあるスターアイコンをクリックすると、そのブランチをデフォルト ブランチとして指定できます。
- GitHub の個人トークンは、一度設定すると表示できません。更新のみがサポートされています。詳細な個人用アクセス トークンを使用する場合は、次の権限のアクセス権が必要です。
- [リポジトリ権限] > [コンテンツ]: 読み取りと書き込み
- [リポジトリ権限] > [メタデータ]: 読み取り専用(コンテンツ権限の選択後に自動選択される)
- [接続] をクリックします。
この構成は、編集アイコンをクリックすることでいつでも変更できます。
push と復元
構成が完了すると、GitHub との間でエージェントを push または pull できます。
[push] ボタンは、エージェントをエクスポートして、[Git ブランチ] プルダウンで選択した GitHub ブランチに commit するために使用されます。この commit は、特定の変更ではなくエージェント全体で構成され、リポジトリ内の既存のファイルがすべて削除されます。
新しいリポジトリの場合は、Dialogflow CX コンソールで push オプションを使用する前に、GitHub からの commit が少なくとも 1 つあることを確認してください。
Dialogflow 読み取りロールを持つユーザーは、GitHub リポジトリに push できます。不要な push を防ぐには、これらのエージェントに読み取り専用の個人アクセス トークンを構成します。
[復元] ボタンは、[Git ブランチ] プルダウンで選択した GitHub ブランチからエージェント データを pull し、このデータから Dialogflow CX エージェントを復元するために使用します。これによって、エージェントの復元と同じ方法でエージェントが上書きされます。
使用例
次の例は、複数のユーザーがこの機能を使用して、本番環境のエージェントにさまざまなエージェントの変更を提案する方法を示しています。
エージェントが次の GitHub ブランチを使用していることを考慮します。
- Prod: 本番環境エージェントのブランチ
- Dev1: エージェント開発用ブランチ
- Dev2: エージェント開発用の別のブランチ
ユーザー 1 はエージェントの変更を提案し、次の手順を実行します。
- 本番環境エージェントを新しいエージェントにエクスポートします。
- このエージェント コピーに必要な変更を加えます。
- 変更をテストします。
- 変更したエージェントを Dev1 ブランチに push します。
- Prod ブランチへのマージ リクエストを作成します。
ユーザー 2 はエージェントの変更を提案し、次の手順を実行します。
- 本番環境エージェントを新しいエージェントにエクスポートします。
- このエージェント コピーに必要な変更を加えます。
- 変更をテストします。
- 変更したエージェントを Dev2 ブランチに push します。
- Prod ブランチへのマージ リクエストを作成します。
ユーザー 3 は、両方のユーザーからの統合リクエストを確認し、次の手順を実施します。
- 競合を解決します。
- 承認された変更を commit します。
- 本番環境の GitHub ブランチを本番環境の Dialogflow CX エージェントに復元します。