ソースコードサービスを接続する

調査のためにエージェントにリポジトリ、イシュー、プルリクエストのコンテキストへのアクセスを与えましょう。 最近の変更を読み取り、関連する問題を見つけ、提供した資格情報が許可すれば、適切なリポジトリやプロジェクトでイシューやプルリクエストを開きます。

このチュートリアルではGitHub、Azure DevOps、GitLabをカバーしています。 ソースコード接続は、管理されたコネクタウィザードではなく、 Code Access ページ(Builder > Code Access)を使用します。 この記事ではソースコードの詳細に焦点を当てています。各サービスがどのように認証され、接続の検証方法を得られるかです。

前提条件

  • 稼働中のSREエージェントと sre.azure.com へのアクセス。
  • エージェントの設定権限を。
  • エージェントが読むべきリポジトリやプロジェクトにアクセスできるサービス上のアカウント。

通知サービスについては、「 通知サービスの接続」をご覧ください。

ソースコードコネクター

コネクタ サービス Authentication 一般的な使用方法
GitHub GitHubおよびGitHubエンタープライズクラウド 自作のGitHubアプリ(OAuthおよびPATも github.com 対応) プロジェクトや組織のリポジトリ、課題、プルリクエストを読み、承認付きのイシューやプルリクエストを作成してください
Azure DevOps Azure DevOps マネージドアイデンティティ(OAuthおよびPATもサポート) プロジェクト間のリポジトリやプルリクエストの読み込み;承認を得てプルリクエストや作業項目を作成します
GitLab GitLab 個人用アクセス トークン (PAT) リポジトリ、イシュー、マージリクエストを読み、問題やコメントを承認して作成しましょう

GitHub と Azure DevOps は認証オプションをラジオボタンとして提示しています。 GitLabは個人アクセストークンを使用しています。

ステップ1:コードアクセスをオープン

  1. sre.azure.com に移動し、エージェントを選択します。
  2. 左側のサイドバーで 「ビルダー」を展開し、「 コードアクセス」を選択します。
  3. サービス(GitHubAzure DevOpsまたはGitLab)のタブを選択してください。
  4. [ リポジトリの追加] を選択します

ステップ2:認証

リポジトリ を追加 ダイアログは3ステップのウィザードで始まります: プラットフォームを選択し認証リポジトリを追加。 各手順の後には、[次へ] を選択します。 最後のステップには 保存 ボタンがあります。

GitHub Enterprise CloudにはBring Your Own GitHub Appを使うか、組織やインストールごとにアクセス範囲を設けてください。

  1. サインイン方法の中から「自分の GitHub アプリを持ち込む」を選択してください。
  2. ウィザードで表示されたアプリのセットアップフィールドを完成させます。
  3. 次へを選択します。

GitHub Enterprise Cloud(.ghe.com)はGitHubアプリの接続が必要です。 github.com の場合、Your account(環境に合わせて設定されている場合はOAuth)やPersonal Access Tokenもサポートされていますが、本番環境ではより細かな権限や監査の可視化を可能にするためにGitHub Appオプションが好まれます。

接続後、エージェントはアプリやアカウントにアクセスできるプロジェクトや組織間のリポジトリ、課題、プルリクエストを検索できます。

サービスは接続を承認したアイデンティティを認識します。 エージェントが作成した問題、コメント、プルリクエストの活動はそのアカウントの下に表示されます。

ステップ3:リポジトリの追加

リポジトリを追加 」ステップでは、エージェントがどのリポジトリをインデックスするかを指定する表が表示されます。 各行は1つのリポジトリです。

  1. サービスがAzure DevOpsの場合は、まずAzure DevOps Projectドロップダウンからprojectを選択してください。 リポジトリ URL列には そのプロジェクトのリポジトリが入ります。

  2. リポジトリURL欄で、ドロップダウンからリポジトリを選択するか、URLを直接入力してください。 GitHubやGitLabでは、ドロップダウンに認証情報がアクセスできるリポジトリが一覧表示されます。 Azure DevOpsの場合、選択したプロジェクト内のリポジトリを一覧にします。

  3. 表示名欄に、エージェントがリポジトリを参照するために使う略名を入力します。

  4. オプションで 「説明 」欄を埋めて、エージェントにリポジトリの内容についてより詳しい情報を与えることもできます。

  5. もしあなたのサービスがAzure DevOpsでリポジトリが非常に大きい場合は、リモートチェックボックスを有効にしてください。 エージェントはリモートコピーをローカルでクローンするのではなく、AI搭載の検索を用います。 リポジトリは100GBのディスク制限でクローンされます。リモートを有効にすることでその制約が回避されます。

  6. 別のリポジトリを追加するには、「 追加 」を選択し、次の行を埋めてください。

  7. テーブルが完成したら、 保存を選択します。

ステップ4:シナリオで検証する

  1. エージェントとチャットを始めましょう。

  2. 例えば、読んでみた質問をしてください:

    List the open issues in the payments repository from the last week.
    
  3. ツールカードでエージェントがサービスを検索し、あなたのデータに基づいた結果を返してくるのを確認しましょう。

リポジトリに関連する結果が表示されると、接続は端から端まで正常に動作します。

Troubleshooting

問題 Cause 修正
検索で結果が返されない そのアカウントはプロジェクトやリポジトリへのアクセス権を持っていません 接続アカウントがプロジェクトやリポジトリを見られるか確認し、再試行してください。
Create は権限エラーで失敗します トークンやアカウントには書き込み範囲がありません トークンやアカウントに必要な範囲を付与するか、書き込み権限を持つ認証情報を使います。
GitHub Enterprise Cloudは接続を拒否します GitHub Enterprise CloudはGitHub App接続が必要です コードアクセスページで、GitHub接続を切断し、「リポジトリを追加」を選択し、GitHubを選択し、ホスト.ghe.comを入力し、「自分のGitHubアプリを持参」を認証方法として選択します。