スタディサプリ Product Team Blog

株式会社リクルートが開発するスタディサプリのプロダクトチームのブログです

GitHub Copilot の Usage API を叩いてみた結果を味わう

本稿は スタディサプリProduct Team Advent Calendar 2024 2日目の記事です。

スタディサプリでソフトウェアエンジニアやエンジニアリングマネージャをやっている @pankona です。GitHub Copilot Usage API を味わってみた話をします。

GitHub Copilot は便利と評判ではある

スタディサプリでは GitHub Copilot for Business を使っています。今年のはじめには以下のような記事も投稿しました。 blog.studysapuri.jp

先の記事を投稿したのが2024年1月22日のことだったようです。それ以前から GitHub Copilot をぼちぼち導入していたことを思うと、弊組織に GitHub Copilot が導入されてからおよそ一年以上が経過していると言えそうです。いまでは大多数のソフトウェアエンジニア (Web エンジニアも、Android/iOS エンジニアも、SRE も) が、毎日 GitHub Copilot を使ってコーディングしているように見受けられます。

ただ、GitHub Copilot が実際どの程度活用されているかというのはよく分かりません。「いっぱい使っている」「便利だ」「これなしでは生活できない」といった声はよく聞こえてくるものの、はたして費用対効果にあう程度に生産性は上がっているのでしょうか。私達は雰囲気で GitHub Copilot を使っているのではないでしょうか。活用の具合をできるだけ定量的に知りたくなりました。

GitHub Copilot の活用度を知りたい

先日、2024年10月30日の GitHub Blog で、GitHub Copilot Metrics API が GA release になったとのアナウンスがありました。

github.blog

記事を読むことには、この手の API を用いることで GitHub Copilot がどの程度使われているかというデータを取得することができそうです。ちなみに、GitHub Copilot の利用データを知るために用意されている API は GitHub Copilot Metrics API と、GitHub Copilot Usage API のニ種類があるようです。

docs.github.com

docs.github.com

さっそく叩いてみました。どんなデータが取れるか味わってみましょう。

GitHub Copilot Usage API を叩いてみる

GitHub Copilot Usage API を叩いてみました。gh コマンドを用いて叩くことができるので、とても簡単です (簡単と言いつつ、叩くためには manage_billing:copilot,read:org の権限が必要であり、それなりに強権が必要である可能性があります) 。以下は Organization 単位での GitHub Copilot Usage を確認するためのコマンドです。

# GitHub CLI api
# https://cli.github.com/manual/gh_api

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

これを叩くとたいへん大きな JSON ファイルが降ってきます。JSON には、直近一ヶ月の GitHub Copilot の利用データが入っています。取れるデータは概ね以下のとおりです。 - 日毎の使用量 (サジェスチョンの数、アクセプトされた数、何時くらいにどれくらいの量か) - プログラミング言語別での使用量 - エディタ別での使用量

たいへん大きな JSON ファイルは ChatGPT に食べさせて分析してもらいました。さて、弊組織ではどのようなデータになっていたかをいくらか紹介します。

データを味わう

最初に、アクセプト率を見てみます。

日毎のアクセプト率

アクセプト率というのは、GitHub Copilot からのサジェスチョンされた数を母数にして、いかほどその提案を受け入れたかを示す数値です。高ければ高いほど "使える提案" を高頻度でしてもらっていることになり、生産性に寄与していると言えそうな気がします。

見たところ、だいたい30%弱くらいでしょうか。これを高いとみるか低いとみるかは微妙なところですが、いくらか他社さんのレポートなどを拝見して並べてみると、これくらいの数値が平均的であるようです。以下は 2022年7月の GitHub Blog ですが、GitHub Blog でもおよそ 20~30% くらいのアクセプト率であることが触れられています。 github.blog

続けて、サジェスチョン数とアクセプト数をプログラミング言語別にランキングしたものを見てみます。

プログラミング言語別サジェスチョン&アクセプトランキング

typescriptreact での利用がダントツで多いことが分かってきます。次いで Ruby、typescript、Go と続いていきます。このあたりはスタディサプリで主に使われている (熱心に編集されている) プログラミング言語が何であるかを表していると言えそうです。

typescriptreact の利用が多い理由として考えられそうなことを、フロントエンドを主に触っている方々にヒアリングしてみました。曰く、「React の Class Component を Function Component に置き換えるような作業が多くあり、GitHub Copilot にかなりの部分を助けてもらっている」とのことでした。"コードモダナイゼーション" のような、概ね決まったパターンの変更を繰り返し行う (ただし機械的には難しい) ような作業には強い味方になってくれることを示唆しているのかもしれません。

次に、サジェスチョン数とアクセプト数をエディタ別にランキングしたものを見てみます。

エディタ別サジェスチョン&アクセプトランキング

先述の typescriptreact がダントツで使われていることとも関連していそうですが、弊組織では VSCode が大人気であることが分かってきます。VSCode は GitHub Copilot とのインテグレーションがとても強力です。GitHub Copilot の恩恵をしっかり得たいと思ったら VSCode がファーストチョイスになるということが言えるかもしれませんね。ちなみに私は Vim を使っています。

かなり便利に使われているらしいことがデータで分かった

GitHub Copilot Usage API を叩くことで、かなり大量にサジェスチョンされているということがデータで分かってきました。サジェスチョン数がそれなりに多い上でアクセプト率が平均的であるならば、しっかり GitHub Copilot を活用できていると言えるかもしれません。また、いま弊組織で熱心に扱われているプログラミング言語がどれなのかということも、ついでに分かったようにも見えます。

GitHub Copilot Usage API、便利な API ですので、GitHub Copilot を採用している組織におかれましては叩いてみてデータを味わってみるのも一興ではないでしょうか。