GitHub Copilot Coding Agentは、執筆日当日時点はプレビューです。ですが、非常に強力な開発者のツールとして機能します。なにせGitHub上でIssueを書いて、Copilot君にタスクをアサインするだけで、タスクをこなしてくれます。
Visual Studio Codeなどで使用する GitHub Copiloot Agent Modeとは別ですね。GitHub上でIssueを書いて進める方です😊
実際に開発を進めていくと、Copilot君が:
- 自分のAzureの環境については知りようが無かったり
- あるいは、プログラミング言語のバージョン毎の詳細を知りようが無かったり
- あるいは、AzureのSDKの詳細を知りようが無かったり
します。
GitHubでIssueを書く際にその情報を提示してもいいのですがキリがありません。
そこでMCP Serverの出番です。
Azure MCP Serverを使うと、接続設定をするだけで、自分のAzureの情報を取得できるようになります。
- Azure Statis Web Apppsの仕様にそったフォルダー構成にする (まだできない!)
- Azure Functions上に作成したREST API (HTTP Trigger) を取得する (まだできない!)
- Azure Cosmos DBのインスタンスやDB名を取得する (これはいける)
GitHub Copilog Coding Agentでも、MCP Server接続機能があります。
現時点では Local MCP Serverのみがサポートされています。Azure MCP ServerはLocal MCP Serverがありますので、連携ができます。認証設定が必要です。
ドキュメントにも記載があるのですが、若干、分かりにくい場合がありますので、手順をまとめておきます。
(このBlogは、殆ど手書きです)
- GitHub Copilot Pro+もしくはGitHub Copilot Enterprise、もしくはGitHub Copilot Busioness が必要
- 契約の管理者にて有効化
1. GitHubでCopilotの有効化
自分のGitHubのアカウントの設定で、Copilotの設定に移動します。
下の方になりますが、GitHub Copilot Coding agentがenabledになっているのを確認します。なっていない場合は、事前準備をご確認ください。
Coding agentの設定で、どのリポジトリで有効化するかを選択します。私はAll repositoriesにしています。全てですね。
2. GitHubに新規のリポジトリ作成
ここでは、githubcopilot-lab という名称にしています。
執筆時点では、リポジトリーはprivateである必要があります。注意してください。
3. AzureのEntra IDで、アプリケーションのアカウントの作成
OpenID Connectの設定で、Azure上にアプリケーションのアカウントを作成します。
- Azure Portalで、Entra IDに移動
- 画面左側のメニューから[アプリの登録]を選択
- 画面の上部の[新規登録]から[アプリケーションの登録]画面に移動
- アプリケーションのアカウント名を[名前]に設定。ここでは dahatake-github-copilot としています。
- [登録]ボタンを押して、アカウントの作成
- アプリケーションのアカウントが作成できたら[証明書とシークレット]へ移動
- [フェデレーション資格情報]へ移動。資格情報の追加をクリック。
- [フェデレーション資格情報のシナリオ]でAzure リソースをデプロイする GitHub Actionsを選択します。
それぞれの情報を入力していきます。選択するのではなく、全て手入力です。
( ) はご自分のものに変更してください。
項目名 | 値 | 補足 |
---|---|---|
組織 | (dahatake) | GitHubの契約しているアカウント名 |
リポジトリ | (githubcopilot-lab) | GitHubの対象のリポジトリです。 |
エンティティ型 | 環境 | 固定です! |
GitHub環境名 | copilot | 固定です!すべて小文字です |
名前 | (dahatake-github-copilot) | フェデレーションの識別子としての名称です |
これでアプリケーションのアカウントの作成は完了です。
4. アプリケーションのアカウントに、Azure上での権限を設定
ここではサブスクリプションの中の全てのリソースが読み取れるようにします。Azure CLIより行います。
Azure CLIの設定:
AzureのPortalの画面上部に常にあるCloud Shellを起動します。
以下の文字列をメモ帳などに張り付けて編集の準備をします。
az role assignment create --role Reader --assignee f91b0cd2-14a5-4a3f-8489-3fe8cee36860 --scope /subscriptions/0e930937-43f5-484d-ba9e-1dd1151cf7ba
–assigneeは、アプリケーションのアカウントのクライアントIDを指定します。
先ほど作成したアプリケーションのアカウントから、アプリケーション (クライアント) IDになります。
–socpeのsbscriptonsの後に、AzureのサブスクリプションIDを設定します。
Cloud ShellにてCLI実行が成功すると、以下の様なJSONの結果が表示されます。
5. GitHub Actionsのファイルを作成
GitHub CopilotがAzureにログインできるようにGitHub Actionsのファイルを作成します。
- GitHubのリポジトリで、codespaceを作成
Visual Studio Codeがブラウザーの中で起動しますね。
新規にファイルを追加。ファイル名は以下で固定
- .github/workflows/copilot-setup-steps.yml
ファイルの内容として、ドキュメントにあるyamlファイルの内容をコピペ。
こんな感じ😊
画面左側の[ソース管理]から、現在の状態をリポジトリにコミットして反映させる。必ずコメントを書いて、[コミット]-[コミットしてプッシュ]を選択。メッセージボックスが表示されても、そのままコミットする。
GitHub Actions用のyamlファイルが作成されました。
6.GitHubのリポジトリに、Azureの資格情報を入力
GitHubのリポジトリの[settings]-[environments]に移動します。
[New environment]を選択して、環境の追加をします。
名称は copilot 固定です。全て小文字です。
[Add environment secret]を押して、3つの資格情報を入力します。
- AZURE_CLIENT_ID
- AZURE_TENANT_ID
Azure Portalで先ほど作成した、アプリケーションのアカウントの画面にあります。
これも、AzureのPortalにあります。場所は、サブスクリプションの画面です。
3つ登録が終わると、以下の様な画面になります。編集時には元のデータは表示されません。
7. MCP Serverの設定
GitHubのリポジトリの設定で、Azure MCP Serverの設定をします。
[Copilot]の[Coding agent]へ移動します。
ドキュメントにあるAzure MCP Serverの設定をコピペします。
そのまま画面下の[save]を押すと、「typeの指定が無い」というエラーが表示されます。
以下の様に、4行目にtype:localを設定してください。
これで[save]します。
8. 動作確認
Issueを作成して、GitHub Copilot Coding AgentがAzureのリソースにアクセスが出来るのか確認をします。
- 新規に Issue を作成します。
Issueの例です。Azure MCP Serverのドキュメントを参照します。確実に動くものを。
Azure MCP Serverを使って、Azureのリソースグループの一覧を取得して、/azure-resource/azure-resource-group.md ファイルに出力してください。
[create]します。
Issueの一覧画面に移動します。
先ほど作成したIssueを選択します。そして、Assignから、copilotを選択します。タスクをアサインします。
Issueの内容をみると、Copilotがブランチを作成して、Pull Requestも作成して、作業しているのがわかります。
Pull Request。
[view sesssions]から、今、Copilotが何をしているのかが確認できます😊
さらに[view verbose log]で、Github Actionsの出力状況も見えます。
いろいろと、やってますね!
Pull Requestに戻ると、タスクを自分で作成して、その中の進行状況も反映してくれています。
Copilot君のタスクが全て完了するまで待ちましょう。
終了すると[Copilot finished work on behalf of xxxx]の様なコメントが必ず表示されます。
ここが大事。必ずレビューを自分でやってください!人が責任をもって行ってください。ブランチが作成されていますから、そのブランチのファイルを見て、自分で動かして動作確認はできます。
これでOKであれば、[ready for review]を押します。
[Merge pull request]を押して。
Commitします。
これが作成されたファイルです。ちゃんと私のAzureのリソースグループの一覧取得が出来ていますね!
MCP Serverによるデータの読み書きは本当にAgent君の可能性を広げてくれます。
- MCP Server側の機能強化と共に、出来ることも広がる
- Visual Studio Codeを使わずとも、出来ることが広がる
- それでも、Agent君が間違えることもあり、それは私たちの指示の説明不足
- Toolsの128個制限は常にある
まだ始まったばかりです。
やり始めると、AgentとMCP Serverに全て任せるのはしんどいこともあり。やはり設計、開発、コードなどなど、私たちがそれぞれの知識は必要です。それでも、指示の仕方で今後できることは増えていくと思います。
このDeep Research型のAgentの未来は本当にあかるいと思います。
各種ドキュメントの更新も待ちましょう!
以下、必読です!
Best practices for using Copilot to work on tasks:
Views: 0