Alternative Architecture DOJO

オルターブースのクラウドネイティブ特化型ブログです。

GitHub Copilot活用術!#terminalLastCommandでコンテクストを補強しよう

おはようございます、しんば@shinbazです!
昨日から東京入りしているのですが、急激に寒くなってきました。急ぎ上着を準備しています・笑


本日はGitHub Copilot活用のためのTipsを1つご紹介したいと思います!

みなさん、 #terminalLastCommand は利用していますか?

#terminalLastCommandとは

GitHub Copilotは、ユーザーが提供するコンテクスト(文脈情報)を利用し、合理的な提案を生成します。

コンテクストというのは、プロジェクトやコードを生成するための背景のことで、あらかじめGitHub Copilotに参照してほしいコードやファイルを提示することで、より理想的な提案を導き出すことができます。

ちなみにユーザーがコンテクストを指定しない場合は開かれているファイル、タブを閲覧します。

#terminalLastCommandは、ターミナルで実行した最後のコマンドとその結果をコンテクストとして利用する機能です。

これを活用すれば、Copilotに最新の作業状況を理解させ、より的確な提案を受けられるようになります!

利用例1: git -diff -U9999 を使ってコミットメッセージを生成する

こちらはGitHub社Yuki Hattoriさんのポストで紹介されています。

git diff -U9999は、変更箇所を含むファイル全体を表示するコマンドです。通常のgit diffでは変更部分の前後3行しか表示されませんが、-U9999と指定するとファイル全体が表示されます。

要するに、該当ブランチでの変更履歴をターミナルに表示させ、その変更をGitHub Copilotにコンテクストとして把握させ、変更点をまとめてコミットメッセージを作ってもらう、ということですね!

プロンプトとして、「日本語で」「[update] コミットメッセージ として」など条件やルールを追加することで組織ルールにあった内容で提案させることができます。

利用例2: ls を使ってディレクトリ構造、ファイル名を認識させる

GitHub Copilotはセキュリティ上、ファイル名などの情報を自ら取得することはできません。

しかし、lsコマンドの結果を#terminalLastCommandで渡せば、ディレクトリ内のファイル名を基にした提案が可能です。

例えば、「クラスやメソッドに合った画像ファイルを複数表示させたい」といったシナリオがあるとして、それらの画像名をいちいち手動で入力するのは手間ですよね。

そういったときに、まずターミナルで ls コマンドを流すことで、フォルダ内の画像ファイル名をターミナルに出力します。
それから #terminalLastCommand を利用し、そのファイル名をコンテクストとしてコード提案させることができます。

プロンプト例としては、

@workspace #terminalLastCommand 結果をもとに、ファイル名とメソッド名が一致する画像を〇〇に表示させるよう配置してください

フォルダ内の画像ファイル名をターミナルで出力


GitHub Copilotのコンテクスト指定を駆使して、AIネイティブな開発をお楽しみください!

導入に関するお問い合わせはオルターブースまでお気軽にどうぞ。
(当社では日本円・請求書払いでのご利用に対応しております。)

www.alterbooth.com