🐥
issueの議論をCopilotにドキュメントにしてもらう。[作業メモ]
やりたかったこと
GitHubのissueで仕様や設計について議論を行うことは多いですが、その内容をドキュメント化するには以下の課題があります:
- ドキュメント作成・メンテナンスの工数が大きい
- ドキュメント更新が漏れることがある
- 議論内容とドキュメントの整合性を保つのが難しい
これらの課題を解決するため、GitHub Copilotを活用して議論内容を効率的にドキュメント化する方法を模索しました。
やったこと
- GitHubのMCPサーバーをVSCode Copilotから呼び出す
- フォーマットなどを指定してドキュメントにしてもらう
手順
GitHubのMCPサーバーの導入
GitHubのMCPサーバーを導入します。
これにより、Copilotがissueやdiscussionの内容にアクセスできるようになります。
作業するworkspaceの.vscode/settings.json
に以下の設定を追加します。
{
"mcp": {
"inputs": [
{
"type": "promptString",
"id": "github_token",
"description": "GitHub Personal Access Token",
"password": true
}
],
"servers": {
"github": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"GITHUB_PERSONAL_ACCESS_TOKEN",
"ghcr.io/github/github-mcp-server"
],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "${input:github_token}"
}
}
}
}
}
GitHubのPATを作成する
- GitHubのPATを作成する
- 当該repositoryについて、issueのread権限を与える必要がある
- 作成したPATを
settings.json
の${input:github_token}
と置き換える
テスト
- copilotのagent modeで、issueにアクセスできるか試してみる
- Dockerを起動する(MCPサーバーはdocker上で動く)
- toolbarで
MCPサーバーの一覧表示
を行い、githubが実行中になっているかを確認する - prompt
-
owner/repository_name
のissueはいくつある?
-
-
list_issues
の実行許可を求めてくる - 許可を出して、issueの数を返答してくれればOK
documentationのプロンプト
実際のプロンプトするときのtipsは次の通りです。
- repsitoryは明示する必要がある
- issueの指定はurlより番号のほうがいい
- urlだとwebやapiからアクセスしようとしがち
- 「issueの内容から」などと書くとコメントを無視することがあるので、「issueで議論した内容」や「issueの内容とコメント」などの書き方のほうがいい
うまくいった例はこちらです。
owner/repository-nameにおいて
issue #hoge
で議論した結果をドキュメントにしたい。
議論と決定については`{formatのpath}`に指定されたフォーマットに従い、同じディレクトリにadrとして記載する。
手順については`{documentのpath}`に記載する

NCDC株式会社( ncdc.co.jp/ )のエンジニアチームです。 募集中のエンジニアのポジションや、採用している技術スタックの紹介などはこちら( github.com/ncdcdev/recruitment )をご覧ください! ※エンジニア以外も記事を投稿することがあります
Discussion