GitHub Copilot を採用する上でのポイントになりそうな内容


何かと話題をさらう GitHub Copilot ですが、利用して良いのだろうかと気になるところです。(コードや Token などが流出しないか心配)
[GitHub Copilot](https://github.com/features/copilot) の [規約](https://docs.github.com/en/site-policy/github-terms/github-terms-for-additional-products-and-features#github-copilot) や [FAQ](https://github.com/features/copilot#faq-privacy) 、 [設定](https://github.com/settings/copilot) を読んで、採用する上でのポイントになりそうな内容を抜き出しました。


# 提案の内容
- コメントとコードからコンテキストを引き出して、行単位と関数全体を提案する
    > It draws context from comments and code to suggest individual lines and whole functions instantly
    - https://github.com/features/copilot
- 提案には安全でないコーディングパターン、バグ、または古いAPIやイディオムへの参照が含まれている可能性がある
    > GitHub Copilot offers suggestions from a model that OpenAI built from billions of lines of open source code. As a result, the training set for GitHub Copilot may contain insecure coding patterns, bugs, or references to outdated APIs or idioms. When GitHub Copilot produces suggestions based on this training data, those suggestions may also contain undesirable patterns.
    - https://docs.github.com/en/copilot/overview-of-github-copilot/about-github-copilot
- 攻撃的な単語をブロックし、繊細なコンテキストでの提案の生成を回避している
    > GitHub Copilot uses filters to block offensive words in the prompts and avoid producing suggestions in sensitive contexts. 
    - https://docs.github.com/en/copilot/overview-of-github-copilot/about-github-copilot
- 新しいライブラリやフレームワークに対しての提案機能は低下する
    > GitHub Copilot is trained on public code. When a new library, framework, or API is released, there is less public code available for the model to learn from. That reduces GitHub Copilot’s ability to provide suggestions for the new codebase
    - https://github.com/features/copilot


# データの収集とプライバシー

データの取り扱いはデータの種類や利用者の設定によって異なるようです。
収集データは ユーザーエンゲージメントデータ と コードスニペット の2種類です。
ユーザーエンゲージメントデータは必須で収集され、コードスニペットは送信されるが、(保持を許可する場合の)利用用途は制限できると解釈しました。

- ユーザーエンゲージメントデータ
    - IDEやエディタとのインタラクション時に生成されるイベントに関する使用情報
        - ユーザー編集操作(提案の受理や却下など)
        - レイテンシーや機能エンゲージメントなどの指標を特定するためのエラーや使用データ
- コードスニペットデータ
    - 編集中のソースコード
    - 関連ファイル
    - (copilot拡張を入れた)IDE やエディタで開いている他のファイル
    - リポジトリの URL
    - ファイルのパス

- コードスニペットを研究やサービスの改善のために(保持し)使用させることを許可するかどうかを選択できる
    - > You can choose whether your code snippets are collected and retained by GitHub and further processed and shared with Microsoft and OpenAI by adjusting your user settings
    - ![スクリーンショット 2022-06-29 19.10.06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/110482/8ac39c39-3eb2-a838-115c-152e25b5a737.png)


- (提案に必要なので)コードスニペットは送信される
    > The GitHub Copilot extension sends your comments and code to the GitHub Copilot service, and it relies on context, as described in Privacy below - i.e., file content both in the file you are editing, as well as neighboring or related files within a project
- pseudonymous identifiers (仮名識別子)や一般的な使用データを含むユーザーエンゲージメントデータは利用に必須。Microsoft および OpenAI 共有される。
    - > GitHub Copilot gives you certain choices about how it uses the data it collects. User engagement data, including pseudonymous identifiers and general usage data, is required for the use of GitHub Copilot and will continue to be collected, processed, and shared with Microsoft and OpenAI as you use GitHub Copilot
- 利用者が希望する遠隔測定設定に応じて利用者のコードのスニペットを収集(保持)することがある
    - > GitHub Copilot (i) may, depending on your preferred telemetry settings, collect snippets of Your Code
    - https://docs.github.com/en/site-policy/github-terms/github-terms-for-additional-products-and-features#github-copilot
- アカウントに結び付けられた IDE またはエディタを通じて追加の使用情報を収集する
    - > GitHub Copilot ~ (ii) will collect additional usage information through the IDE or editor tied to your Account.
    - https://docs.github.com/en/site-policy/github-terms/github-terms-for-additional-products-and-features#github-copilot
- 希望すれば自身の identity に紐づく情報を削除リクエストすることができる
    - > You can also request deletion of GitHub Copilot data associated with your GitHub identity by filling out a support ticket.
- 送信データは暗号化して送信され、アクセスできる人は限られている
    - > The transmitted data is encrypted in transit and at restAccess is strictly controlled. The data can only be accessed by (1) named GitHub personnel working on the GitHub Copilot team or on the GitHub platform health team, (2) Microsoft personnel working on or with the GitHub Copilot team, and (3) OpenAI personnel who work on GitHub Copilot Role-based access controls and multi-factor authentication are required for personnel accessing code snippet data

# コードの権利と責任に関して
- GitHub は提案されたコードに対して権利を主張しない
    - > GitHub does not claim any rights in Suggestions, and you retain ownership of and responsibility for Your Code, including Suggestions you include in Your Code.
    - https://docs.github.com/en/site-policy/github-terms/github-terms-for-additional-products-and-features#github-copilot
- GitHub は提案されたコードに対して責任を負わない
    - > Like any other code, code suggested by GitHub Copilot should be carefully tested, reviewed, and vetted. As the developer, you are always in charge.

# 金額に関して

- 月額10ドル、年額100ドル、お試し60日
    - https://docs.github.com/en/billing/managing-billing-for-github-copilot/about-billing-for-github-copilot

以上です。