📈

GitHub Copilotのメトリクスを見てみた

2024/11/11に公開

はじめに

Rehab for JAPANの@rkyuragiです!
Rehabでは、開発生産性の向上のために2023年7月からGitHub Copilotを導入しています。
導入以降、明らかなアウトプットの質向上を実感しているメンバーもいたりと効果を感じているところです。

自社のGitHub Copilotの提案を受け入れる割合を定量的に知りたかったんですが、メトリクス取得はこれまでEnterpriseのみでした。ただ、最近になってGitHubのTeamプランでも取得できるようになり、自社のGitHub Copilotの提案を受け入れる割合を定量的に知ることができるようになりました!
今回は、RehabのGitHub Copilotのメトリクスを取得してみたので、その結果を共有します。

ターゲット

  • GitHub Copilotに興味がある方
  • GitHub Copilotを導入済みでメトリクスに興味がある方

要約

  • GitHub Copilotのメトリクスを取得する方法について
  • RehabのGitHub Copilotのメトリクスを取得したところ、提案受入率が言語によって異なる傾向を示していることがわかった
  • rubyやkotlinでは提案受入率が高く、一方、javaは受入率が低くかった

GitHub Copilotのメトリクスで取得できる情報

今の所、GitHub CopilotのメトリクスではIDE&言語ごとに以下の数値が取得できます。

  • コードの提案数
  • コードの提案を受け入れた数
  • ラインの提案数
  • ラインの提案を受け入れた数

メトリクスの取得方法

まず、Settings>Copilot>Policiesで、メトリクスを有効にします。

GitHubCopilotのメトリクス設定

その後、このREST APIを使って取得できます。
注意:メトリクスは2024/10/25から有効になっているようで、それ以前のデータは取得できないようです。

GitHub CLIを使う場合

ORGは組織名を指定してください。

gh api \
  -H "Accept: application/vnd.github+json" \
  -H "X-GitHub-Api-Version: 2022-11-28" \
  /orgs/ORG/copilot/metrics

期間を指定する場合

sinseuntilを指定することで、期間を指定できます。
ただし、最大28日前までのしか指定することはできません。

gh api \
  -H "Accept: application/vnd.github+json" \
  -H "X-GitHub-Api-Version: 2022-11-28" \
  -F since='2024-10-25T00:00:00Z' \
  -F until='2024-11-02T23:59:59Z' \
  /orgs/ORG/copilot/metrics

結果

弊社の結果の前に、GitHubが2023/6に公開したGitHub Copilotのレポートによると、GitHub Copilotのコード提案を受け入れる割合は、30%程度であるとのことです。
Rehabのメトリクスを見てみると、以下のような結果でした。

コードの提案受入

以下のグラフは、2024/10/25から2024/11/02までのコードの提案数/受入数/受入率を示しています。
言語別で見るとrubyは40%を超える受入率で、その他の言語では、30%程度の受入率でした。

コード

ラインの提案受入

以下のグラフは、2024/10/25から2024/11/02までのラインの提案数/受入数/受入率を示しています。
ラインの受入率はコードに比べて、言語の違いが顕著で、rubyやkotlinは30%を超える受入率でしたが、20%を下回っている言語もありました。特にjavaは14.1%と低い受入率でした。

ライン

まとめ

今回、RehabのGitHub Copilotのメトリクスを取得し、提案受入率が言語によって異なる傾向を示していることがわかりました。
特に、rubyやkotlinではコード/ラインともに提案受入率が高く、AIの提案が開発者にとって有用であることがわかります。
一方、javaはコード/ラインともに提案受入率が低く、これらの言語ではコーディングスタイルの多様性がAI提案の受入に影響を及ぼしている可能性があります。

GitHub Copilotはどんどん機能が追加されて進化しているので、今後も定期的にメトリクスを取得し、開発生産性の向上に活用していきます!

Rehab Tech Blog

Discussion