Copilot pull request summaries を使ってみた話

:::note info
この記事は[LITALICO Engineers Advent Calendar 2024](https://qiita.com/advent-calendar/2024/litalico) カレンダー2 の 7日目の記事です
:::

# はじめに

よく、Copilotをコピロトと間違えて読んでしまう英語苦手勢の@nonikenoです


LITALICOでは今年からGitHub Copilot Businessを導入し、使い始めました
これからチーム内での活用事例をプールして行き、より便利に使いこなす未来を作っていければと思います

当初、Github Copilot Businessの自分なりの活用方法に関して、記事にまとめようと思いましたが、社外のコミュニティでは、Github Copilot Enterpriseを導入したPJに参加しており、なかなか、今のタイミングだと、Github Copilot Enterpriseに関する記事も少なく、ご縁があって触らせてもらっているので、Github Copilot Enterpriseのみに開放されている機能についてを記事化したいと思います

[[参考] Github Copilotのサブスクリプションプラン](https://docs.github.com/ja/copilot/about-github-copilot/subscription-plans-for-github-copilot)

# Github Copilot Enterpriseで追加で利用できる機能

[公式ページ](https://docs.github.com/ja/copilot/about-github-copilot/what-is-github-copilot)に書かれている通り、大きくは以下の2つの機能がGithub Copilot Enterpriseでのみ利用可能です

- [Copilot pull request summaries](https://docs.github.com/ja/enterprise-cloud@latest/copilot/using-github-copilot/using-github-copilot-for-pull-requests/creating-a-pull-request-summary-with-github-copilot)
    - pull requestの変更の概要を生成
- [Copilot knowledge bases](https://docs.github.com/ja/enterprise-cloud@latest/copilot/customizing-copilot/managing-copilot-knowledge-bases)
    - Copilot chatのコンテキストとして使用するために、サポート技術情報と呼ばれるドキュメントのコレクションを作成および管理

注) Github Copilot Enterpriseは、[Github Enterprise Cloud](https://docs.github.com/ja/enterprise-cloud@latest/admin/overview/about-github-enterprise-cloud)が前提となっており、そちら向けの管理機能もGithub Copilot Enterpriseで利用できますが、割愛させていただきます

## Copilot pull request summariesとは

pull request をスキャンし、変更の概要を文章で示し、影響を受けるファイルの変更の箇条書きリストを出力してくれる便利機能です

現在のところは、英語のみ対応ですが、ゆくゆく、他の言語でも生成してくれることが期待されます

Copilot pull request summariesは以下のタイミングで利用することが可能です

- 新規作成するpull request の説明を作る際
- 既存の pull request の説明を編集する際（開始コメントの編集による）
- pull request のメイン タイムラインに関するコメントの際

使い方に関しては、[前述の公式ページ](https://docs.github.com/ja/enterprise-cloud@latest/copilot/using-github-copilot/using-github-copilot-for-pull-requests/creating-a-pull-request-summary-with-github-copilot)に詳細が書かれていますので、細く説明する必要はないかと思いますので割愛します

以下、使ってみての感想をまとめます

### Copilot pull request summariesのメリット

- レビューイのコスト削減
    - 言わずもがな、英語のコミニティの場合、かなり楽です
    - 特に、影響を受ける箇所のリストアップは感動する
        - この辺り、人が書くと、見落としがないかの確認も多く、Copilotで生成してくれたものをチェックするだけだとかなり楽
- レビュアーのコスト削減
    - 重点的に確認すべき箇所がすぐにわかる
    - PRを確認する際に、同じ形式で説明がまとまっているので把握しやすい
        - PRテンプレートなど工夫は可能だが、どうしても、人力だと書き味や粒度など差が出て、読む側としても意図の把握に時間がかかる

### Copilot pull request summariesのデメリット
- 英語にしか対応してない
    - グローバルのコミュニティで使っているので、全く問題ないですが、日本語に変換する必要がある場合は面倒
- 手直しが必要
    - 大元の目的など、補足があった方がわかりやすいケースはある
    - 現状だと、UI側のキャプチャなど、手直しが必要なケースもある
        - 生成される文章の精度は個人的な感想としては、思ったより良い
- Github Copilot Enterpriseの価格が高い
    - Github Copilot Businessの倍の料金
- Github Enterprise Cloudの利用が前提となる
    - 既に使っている場合は問題ないが、このために移行するのはめんどい

# Github Copilot Enterpriseを使うべきか、否か

それぞれ、メリデメはあるなという感じ、では、Github Copilot Enterpriseを使うべきなのか否かでいうと、どういった組織なのかが肝かなと個人的には感じました

この記事は、サラッと紹介したのみですが、[Copilot knowledge bases](https://docs.github.com/ja/enterprise-cloud@latest/copilot/customizing-copilot/managing-copilot-knowledge-bases)に関しても、この記事の[Copilot pull request summaries](https://docs.github.com/ja/enterprise-cloud@latest/copilot/using-github-copilot/using-github-copilot-for-pull-requests/creating-a-pull-request-summary-with-github-copilot)に関しても、単純に便利になるという点もありますが、組織の人数が多く、オフライン・オンライン含めた接点が少ないケースでは特に便利ではないかと思います

何故ならば、暗黙の了解をカバーできる機能であると感じているからです。私自身、社外のコミュニティでGithub Copilot Enterpriseを活用しているというのもあるかもしれませんが、社内のメンバーと比べると、社外のコミュニティのメンバーはお互いのバックボーンもそこまで知らず、暗黙の了解を形成するのが難しいと感じます（もちろん、エンジニア全般の暗黙の了解は別）

企業内でGithub Copilot Enterpriseを活用するケースでも、エンジニア組織が大きく、プロダクトの数もかなり多い上に、各プロダクト間の連携や考慮が重要である場合は、Github Copilot Enterpriseで追加された機能を有効活用できるのではないでしょうか

また、今後、Github Copilot Enterpriseに、ファインチューニングが追加されるという話(現在は、限定的なパブリックベータ)もありますので、そうなってくると、ますます大きなエンジニア組織では活用のメリットが大きくなっていくと思います

# 終わりに

LITALICOでは、「障害をない社会をつくる」というビジョンの実現に向けて、一緒に働いてくださるエンジニアを募集しております

仲間が増えていくことで、今回、記事に書かせていただいたGithub Copilot Enterpriseを導入したり、他にもエンジニアとして働きやすい環境の整備がさらに進んでいくと思います

興味がある方はぜひ、[募集ページ](https://herp.careers/v1/litalico/requisition-groups/ea1f6b9d-88b7-4254-a06a-8cfdd83bd575)や[Wantedlyのストーリー](https://www.wantedly.com/stories/s/litaengineer)をご覧ください