GitHub のエクスポート/復元

Dialogflow CX は GitHub と統合されています。この統合により、GitHub に push するために JSON を使用してエージェントをエクスポートすることや、エージェントを復元するために GitHub から pull することが容易になりました。 GitHub に push される JSON エクスポート形式は、エクスポートされたエージェントの展開された zip ファイルの内容です。

この機能を使用すると、次のような GitHub のソース管理機能を利用できます。

制限事項

次の制限が適用されます。

  • GitHub には、1 時間あたりのリクエスト数のレート制限があります(エンタープライズ以外のアカウントの場合は 5,000、エンタープライズ アカウントの場合は 15,000)。エージェントの push がこの上限を超えた場合、Dialogflow コンソールはレート制限エラーを報告します。1 時間後に push を再試行できます。
  • GitHub API には、1 回の commit で更新できるファイルの数に制限があります。ファイル数が 500 を超えると、Dialogflow から GitHub に push できなくなる場合があります。その場合は、エージェントを zip として
    エクスポートし、マシンの Git CLI を使用してエージェント ファイルを GitHub に push できます。この制限については、今後の Dialogflow リリースで対処する予定です。
  • セルフホストのプライベート アクセスについて、Dialogflow はそれらのリポジトリにアクセスできないためサポートされていません。
  • GitHub リポジトリには、エージェント エクスポートによってエクスポートされたエージェント ファイル以外のファイルを含めることはできません。リポジトリ内の他のすべてのファイルは、push のたびに削除されます。

構成

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

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

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

push と復元

構成が完了すると、GitHub との間でエージェントを push または pull できます。

[Push] ボタンは、エージェントをエクスポートし、Git ブランチ プルダウンで選択された GitHub ブランチに commit するために使用されます。この commit は、特定の変更ではなくエージェント全体で構成され、リポジトリ内の既存のファイルをすべて削除します。

新しいリポジトリの場合は、Dialogflow コンソールで push オプションを使用する前に、GitHub からの commit が少なくとも 1 つあることを確認してください。

Dialogflow 読み取りのロールを持つユーザーは、GitHub リポジトリに push できます。不要な push を防ぐには、これらのエージェントに読み取り専用の個人用アクセス トークンを構成します。

[復元] ボタンは、[Git ブランチ] プルダウンで選択した GitHub ブランチからエージェント データを pull し、このデータから Dialogflow エージェントを復元するために使用します。これによって、エージェントの復元と同じ方法でエージェントが上書きされます。

使用例

次の例は、複数のユーザーがこの機能を使用して、本番環境のエージェントにさまざまなエージェントの変更を提案する方法を示しています。

エージェントが次の GitHub ブランチを使用していることを考慮します。

  • 本番: 本番環境エージェントのブランチ
  • 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 エージェントに復元します。