はじめに

GitHub Copilotをより効率的に使うためにいくつかのTipsを紹介します。前編はGitHub Copilotのインストール方法や基本的な使い方について触れました。後編では、主にプロンプトエンジニアリングについて触れます。

ナレッジベース(Enterpriseのみ)

ナレッジベースとは、Markdownで作られたドキュメントを元にCopilot Chat(以降、チャットと呼ぶ)機能を向上させるものです。例えば、そのチーム内に存在する独自のワードなどを定義することなどが可能です。ナレッジベースを有効化するには下記手順を踏んでください。

  1. こちらを参考にナレッジベースを作成してください
  2. 対象となるナレッジベースが持つレポジトリにMarkdownファイルを作成し、ドキュメントを作ってください

ここでは例として下記のようなファイルを作成します。

## ギャップロ

アップフロンティアが運営するアプリエンジニアのための技術情報サイトです。ギャップロは、主に技術的な記事を掲載しています。

このファイルを対象のレポジトリにPushします。Push後、数時間待つと有効化されます。

ブラウザ上のチャットからナレッジベースにアクセスする

Github上にあるAsk Copilotの左下にある本のマークをクリックすると、ナレッジベースを選択することができます。

選択した状態で普段通りCopilotチャットに質問を送るとナレッジベースを参照して、チャットを利用することが可能になります。

IDE上のチャットからナレッジベースにアクセスする

Visual Studio Codeからアクセスする時は前編で触れたチャットキーワードを利用します。まず、下記のようにチャット参加者とコンテキスト変数を入力し、Enterを押します。

@github #kb

すると、ナレッジベースを選択するウィンドウが出てくるため、対象のナレッジベースを選択します。その後、普段通りCopilotチャットに質問を送るとナレッジベースを参照して、チャットを利用することが可能になります。

@github #kb:対象ナレッジベース ギャップロとは何か教えてください

その他IDE

AndroidStudioなどのIDEは、執筆時点では未対応でした。スラッシュ コマンドは利用可能ですが、コンテキスト変数やチャット参加者は利用できません。公式ドキュメントにも対象のIDEにはやり方が記載されていないので今後のアップデート待ちになります。

ルールベースファイルをトリガーして修正をかける

コード修正で/fixのスラッシュコマンドを利用し、修正をかけても思ったようにいかないことがあります。このときに使えるテクニックとして、ルールを定義したファイルを元にCopilotの機能を動かす技があります。試しに次のように”改善Index.md”を作成し、ルールを定義します。

## 文章改善

- "ので" は "ため" にする
- "ものなので" は "もののため" にする

この状態で次のようにfixをかけます。

/fix "改善Index.md" に従って修正してください

すると、ルールに従って修正をかけてくれます。このようにルールを定義することで、より効率的にコードを修正することができます。

文章改善

GitHub Copilotはコード系の処理専門と思われがちですが、文章改善にも役に立ちます。例えば、LTに向けての資料でタイトルが少し面白みに欠ける時は、”タイトルを面白くしてください”と質問すると、面白いタイトルを提案してくれます。他にも、稚拙な文章に/fixのスラッシュコマンドを利用して、修正をかけるとビジネス文章に変換してくれるため、PullRequestの概要などレビュー者に失礼のない文章に変換することで役に立ったりします。筆者はギャップロの記事を書く時に、GitHub Copilotをよく利用しています。

PullRequestの概要(Enterpriseのみ)

GithubのPullRequestの概要を1ボタンクリックで生成することが可能です。ですが、執筆時点では英語のみしか対応しておらず、日本語は対応していません。そこで生成された文章を更にGithubCopilotに読み込ませて、日本語に変換することでPullRequest概要を生成することが可能です。とある理由でPullRequest作成者が概要をかけない場合でも最低限のケアをすることができます。

ライブラリ指定などのコード生成テクニック

GitHub Copilotは標準のライブラリを持っています。例えば、Androidテストを生成する時にGradleなどでmockkを導入してもMockitoを使用してテストコードを生成します。また、privateメソッドはpublicメソッドを介してテストするべきという情報工学理論に基づいた考えを持っているので、privateメソッドを対象とするテストコードを生成しても上手くいきません。そこで”mockkを使用して”や”リフレクションを使用して”とワードを追加して、制限を加えることで期待するコード生成の確率を高めることができます。

まとめ

後編では、より効率的にGitHub Copilotを使うためのTipsを紹介しました。GitHub Copilotはコード生成だけでなく、文章改喋やPullRequestの概要生成など、様々な場面で活用できることがわかりました。GitHub Copilotを使いこなして、より効率的に開発を進めていきましょう。また、GitHub Copilotはまだまだ進化をしており、更に機能が追加されることが期待されます。今後のアップデートにも注目していきましょう。



ギャップロを運営しているアップフロンティア株式会社では、一緒に働いてくれる仲間を随時、募集しています。 興味がある!一緒に働いてみたい!という方は下記よりご応募お待ちしております。
採用情報をみる