Open10

GitHub Copilotを使ってみる

keitaknkeitakn

導入のモチベーション

少し前にGitHub公式から GitHub Copilot X が発表された。

元々存在は知っていたが、内容を見るとこれを使っている人とそうでない人では大きな生産性の開きが出てくるという危機感から今のうちに慣れておこうと思い課金を決意した。

個人開発や学習でやりたい事がたくさんあるので、個人のアプトプットを最大化する為にも生産性を上げる必要がある。

環境

マイクロソフト傘下のGitHub製という事もあり、VSCodeの情報が多い気がしますが自分はJetBrainsユーザーなのでWebStormでやっていきます。

バージョンは WebStorm 2023.1 を利用します。

keitaknkeitakn

設定 & 課金

以下のページから課金 & 設定を開始する。

個人利用なので Individuals を選択。

年間払いにすると2ヶ月お得になるので、そうした。

https://github.com/settings/copilot

重要な設定は下記の2つ。

Suggestions matching public code

パブリックコードを何も処理をせずにそのままIDEに出力するかどうか?

Copilotが提案するコードにライセンス違反のコードが含まれる可能性を減らす為の設定と思われる。

自分は無難に Block を選択した。

Allow GitHub to use my code snippets for product improvements

コードスニペットをGitHub Copilotの改善に利用するかどうかの設定。

デフォルトだとチェックが入っている。

自分は念の為チェックを外した。

keitaknkeitakn

for Business を契約している組織の場合は問題はないが、Allow GitHub to use my code snippets for product improvements にチェックが入った状態で仕事のコードを開くとコードスニペットが送信されるので、仕事のコードを開く場合はその組織の責任者に許可を取っておいたほうが無難。

koteitankoteitan

Allow GitHub to use my code snippets for product improvements のチェックを外したとしても、仕事のコードを開くと、推論のために周辺のコードが copilot のサーバーに送信されるのではないのでしょうか

keitaknkeitakn

Allow GitHub to use my code snippets for product improvements のチェックを外したとしても、仕事のコードを開くと、推論のために周辺のコードが copilot のサーバーに送信されるのではないのでしょうか

そうなんですね。それは知りませんでした。

ちなみに私は取引先毎に各取引先から支給されたPCを使っておりまして、それそれの組織で for Business を契約しているので問題はないかなと認識しています。

最初の方は Individuals を利用していましたがもちろんそれについても各組織の了承を得て使っておりましたので問題ないという認識をしています。

keitaknkeitakn

snippets for product improvements にチェックが入った状態で仕事のコードを開くとコードスニペットが送信されるので

この書き方は正確ではなかったですね、ここにチェックが入っているとコード推論の学習に利用される等と書くべきでした。

しかしcopilot のサーバーに送信される事に関しては各組織に許可を取っていれば問題ないかと思います。

コードベースをGitHubで管理している場合は機密情報であるソースコードを既にGitHubで管理しているので、copilot のサーバーにコードが送信される事自体はそこまで気にしなくて良いのではというのが個人的な見解です。

keitaknkeitakn

基本的な使い方

ドキュメントにも記載があるがコードを書き始めるとsuggestionが出てくる。

デフォルトだと以下のショートカットキーが割り当てられている。

  • Option + ]
    • 次のsuggestion候補を表示
  • Option + [
    • 前のsuggestion候補を表示

候補を受け入れるには、Tab キーを押下。すべての候補を拒否するには、Esc キーを押下。

toshiakitoshiaki

GitHub Copilot Chatはjetbrains系列のIDEでサポートされてるんですかね?

keitaknkeitakn

現時点では対応していないようです。

GitHub Copilot Chat自体が利用条件がWaitlistへ登録した人限定なので、このあたりはVSCode限定なのでしょうね。

正式版になったらさすがに対応されると思ってはいます、GitHub Copilotは今後必須スキルになってくると思っているので↓の方が言っているようにもし対応しない、もしくは対応が大幅に遅れるようであれば私もJetBrainsの利用を辞めるという選択を取る可能性が高いです。

https://github.com/orgs/community/discussions/50808#discussioncomment-5470103