GitHub Copilotを使ってみる
![keitakn](https://res.cloudinary.com/zenn/image/fetch/s--aYHKtAVs--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_70/https://storage.googleapis.com/zenn-user-upload/avatar/b8adb967d2.jpeg)
導入のモチベーション
少し前にGitHub公式から GitHub Copilot X が発表された。
元々存在は知っていたが、内容を見るとこれを使っている人とそうでない人では大きな生産性の開きが出てくるという危機感から今のうちに慣れておこうと思い課金を決意した。
個人開発や学習でやりたい事がたくさんあるので、個人のアプトプットを最大化する為にも生産性を上げる必要がある。
環境
マイクロソフト傘下のGitHub製という事もあり、VSCodeの情報が多い気がしますが自分はJetBrainsユーザーなのでWebStormでやっていきます。
バージョンは WebStorm 2023.1
を利用します。
![keitakn](https://res.cloudinary.com/zenn/image/fetch/s--aYHKtAVs--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_70/https://storage.googleapis.com/zenn-user-upload/avatar/b8adb967d2.jpeg)
設定 & 課金
以下のページから課金 & 設定を開始する。
個人利用なので Individuals
を選択。
年間払いにすると2ヶ月お得になるので、そうした。
重要な設定は下記の2つ。
Suggestions matching public code
パブリックコードを何も処理をせずにそのままIDEに出力するかどうか?
Copilotが提案するコードにライセンス違反のコードが含まれる可能性を減らす為の設定と思われる。
自分は無難に Block
を選択した。
Allow GitHub to use my code snippets for product improvements
コードスニペットをGitHub Copilotの改善に利用するかどうかの設定。
デフォルトだとチェックが入っている。
自分は念の為チェックを外した。
![keitakn](https://res.cloudinary.com/zenn/image/fetch/s--aYHKtAVs--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_70/https://storage.googleapis.com/zenn-user-upload/avatar/b8adb967d2.jpeg)
for Business
を契約している組織の場合は問題はないが、Allow GitHub to use my code snippets for product improvements
にチェックが入った状態で仕事のコードを開くとコードスニペットが送信されるので、仕事のコードを開く場合はその組織の責任者に許可を取っておいたほうが無難。
Allow GitHub to use my code snippets for product improvements のチェックを外したとしても、仕事のコードを開くと、推論のために周辺のコードが copilot のサーバーに送信されるのではないのでしょうか
![keitakn](https://res.cloudinary.com/zenn/image/fetch/s--aYHKtAVs--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_70/https://storage.googleapis.com/zenn-user-upload/avatar/b8adb967d2.jpeg)
Allow GitHub to use my code snippets for product improvements のチェックを外したとしても、仕事のコードを開くと、推論のために周辺のコードが copilot のサーバーに送信されるのではないのでしょうか
そうなんですね。それは知りませんでした。
ちなみに私は取引先毎に各取引先から支給されたPCを使っておりまして、それそれの組織で for Business
を契約しているので問題はないかなと認識しています。
最初の方は Individuals
を利用していましたがもちろんそれについても各組織の了承を得て使っておりましたので問題ないという認識をしています。
![keitakn](https://res.cloudinary.com/zenn/image/fetch/s--aYHKtAVs--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_70/https://storage.googleapis.com/zenn-user-upload/avatar/b8adb967d2.jpeg)
snippets for product improvements にチェックが入った状態で仕事のコードを開くとコードスニペットが送信されるので
この書き方は正確ではなかったですね、ここにチェックが入っているとコード推論の学習に利用される等と書くべきでした。
しかしcopilot のサーバーに送信される事に関しては各組織に許可を取っていれば問題ないかと思います。
コードベースをGitHubで管理している場合は機密情報であるソースコードを既にGitHubで管理しているので、copilot のサーバーにコードが送信される事自体はそこまで気にしなくて良いのではというのが個人的な見解です。
![keitakn](https://res.cloudinary.com/zenn/image/fetch/s--aYHKtAVs--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_70/https://storage.googleapis.com/zenn-user-upload/avatar/b8adb967d2.jpeg)
JetBrains製品でGitHub Copilotを利用するまでの流れ
特に難しくはなく以下の公式ドキュメントを参照すれば問題なく利用出来る状態になると思う。
![keitakn](https://res.cloudinary.com/zenn/image/fetch/s--aYHKtAVs--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_70/https://storage.googleapis.com/zenn-user-upload/avatar/b8adb967d2.jpeg)
基本的な使い方
ドキュメントにも記載があるがコードを書き始めるとsuggestionが出てくる。
デフォルトだと以下のショートカットキーが割り当てられている。
-
Option
+]
- 次のsuggestion候補を表示
-
Option
+[
- 前のsuggestion候補を表示
候補を受け入れるには、Tab
キーを押下。すべての候補を拒否するには、Esc
キーを押下。