GitHub のエクスポート / 復元

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 のたびに削除されます。

構成

この統合を構成するには:

  1. Dialogflow CX Console を開きます。
  2. ご自身の Google Cloud プロジェクトを選択します。
  3. エージェントを選択します。
  4. [管理] タブをクリックします。
  5. [Testing & Deployment] セクションで [Git] をクリックします。
  6. [Add Git integration] をクリックすると、構成ダイアログが開きます。
  7. 次のように入力します。
    • GitHub 接続の表示名。
    • GitHub リポジトリの URL(例: https://api.github.com/repos/<repository_owner>/<repository_name>)。
    • エージェントが操作する GitHub ブランチを追加します。ブランチの横にあるスターアイコンをクリックすると、そのブランチをデフォルト ブランチとして指定できます。
    • GitHub の個人トークンは、一度設定すると表示できません。更新のみがサポートされています。詳細な個人用アクセス トークンを使用する場合は、次の権限のアクセス権が必要です。
      • [リポジトリ権限] > [コンテンツ]: 読み取りと書き込み
      • [リポジトリ権限] > [メタデータ]: 読み取り専用(コンテンツ権限の選択後に自動選択される)
  8. [接続] をクリックします。

この構成は、編集アイコンをクリックすることでいつでも変更できます。

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 はエージェントの変更を提案し、次の手順を実行します。

  1. 本番環境エージェントを新しいエージェントにエクスポートします。
  2. このエージェント コピーに必要な変更を加えます。
  3. 変更をテストします。
  4. 変更したエージェントを Dev1 ブランチに push します。
  5. Prod ブランチへのマージ リクエストを作成します。

ユーザー 2 はエージェントの変更を提案し、次の手順を実行します。

  1. 本番環境エージェントを新しいエージェントにエクスポートします。
  2. このエージェント コピーに必要な変更を加えます。
  3. 変更をテストします。
  4. 変更したエージェントを Dev2 ブランチに push します。
  5. Prod ブランチへのマージ リクエストを作成します。

ユーザー 3 は、両方のユーザーからの統合リクエストを確認し、次の手順を実施します。

  1. 競合を解決します。
  2. 承認された変更を commit します。
  3. 本番環境の GitHub ブランチを本番環境の Dialogflow CX エージェントに復元します。