Skip to main content

GitHub Copilotロールアウトでのコードベース標準の維持

ルールセット、セキュリティ機能、効果的なトレーニングを使用して、企業のコードを管理します。

この機能を使用できるユーザーについて

Enterprise owners

ほとんどの企業は、AI コーディング ツールによってもたらされる生産性の利点を認識しています。 しかし、悪意のあるプロンプトや、レビューなしで AI の提案を受け入れる開発者など、社内での不適切な使用がコードベースの標準を侵害する原因になるという懸念が多く見受けられます。

これらのリスクを軽減するには、効果的なガバナンスのために GitHub 環境と作業文化を設定します。 GitHub Copilotの主な利点は、エンタープライズ レベルのコード ガバナンスのためのさまざまな機能が既に含まれているGitHub プラットフォームに組み込まれていることです。

1. プルリクエストとレビューを必要とする

開発者や悪いアクターは、検証されていない AI の提案やエージェントの作業を機密性の高いコードベースに直接一方的に適用することはできません。 ユーザーがコードを運用コードベースやその他の重要なブランチにマージする前に、 承認されたプル要求 を要求する必要があります。

これを行うには、ルールセットを作成します。

  1. 保護するコードベースを含む組織またはリポジトリを特定し、 カスタム プロパティを適用 します。 これにより、ルール セット内のこれらのリソースを簡単にターゲットにできます。 「Organization 内リポジトリのカスタム プロパティの管理」または「組織のカスタム プロパティの管理」を参照してください。

    または、これらの保護されたリソースをルールセットに手動で追加したり、名前付け規則に基づいてターゲットにしたりできます。

  2. 企業のブランチルールセットを作成します。 「Enterprise でルールセットを使ってコード ガバナンスを適用する」を参照してください。

    • マージ前に少なくとも プルリクエストを必須にし強制プッシュを禁止する ルールを有効にしてください。 「プルリクエストを要求する」ルールでは、少なくとも1つの承認を必要とすることを確認してください。
    • 必要に応じて、他のルールを有効にします。 たとえば、不適切なアクターが pull request をハイジャックすることを心配している場合は、新しいコミットがプッシュされたときに 古い pull request 承認を無視 してください。
  3. リポジトリ内の特定のファイルに対して CODEOWNERS ファイルを設定するようリポジトリ管理者に勧めます。 これにより、これらのファイルが変更されると、コード所有者にレビューが自動的に要求されます。

    その後、ルール セットに戻り、[ コード所有者からのレビューが必要 ] ルールを有効にすることができます。

  4. 組織の所有者とリポジトリ管理者は、独自のコードの要件をより認識する可能性が高い、より具体的なルールセットを作成するよう奨励します。

    これらのルールセットは、エンタープライズ レベルで定義したベースラインに追加されますが、上書きされることはありません。

2. コードをテストする

DevOps の優れたプラクティスにより、マージとデプロイの前にコードが自動的にテストされ、既定のブランチに入って運用環境で発生するエラーのリスクを最小限に抑えることができます。

  1.        GitHub Actionsまたは別の CI/CD システムを有効にします。
    
  2. 開発者は、すべての機能のテストを記述し、テストを GitHub Actions ワークフローに統合することを奨励します。
  3. リポジトリ所有者または組織の所有者に対して、ルールセットを作成し、重要なワークフローをマージ前にワークフローがパスすることを要求するルールに追加することを推奨します。

3. コードをスキャンして脆弱性を検出する

          Copilot は、コードベースに脆弱性が導入されないように既に設計されています。 たとえば、 Copilotクラウドエージェント によって作成されたコードは、API キーなどの脆弱なパターンとシークレットを自動的にスキャンします。

ただし、すべてのコードで脆弱性とシークレットを定期的にスキャンし、開発者が最初に脆弱性を導入できないようにすることをお勧めします。

  1. まず、組織に基本的な セキュリティ構成 を適用します。 これは、セキュリティ機能の有効化設定のコレクションです。 code scanning、secret scanning、シークレットのプッシュ保護を含めてお勧めします。 「カスタム セキュリティ構成を作成する」を参照してください。
  2. ニーズの詳細については、追加のカスタム構成を作成するか、リポジトリ レベルで詳細な設定を適用します。
  3. プル要求にcode scanningを適用するには、ルール セットに戻り、結果の要求規則code scanning 有効にします。

4. Copilot のガイドラインを作成する

最初に Copilotの提案の品質を向上させるには、カスタム命令を作成する必要があります。 これらの手順では、会社のコーディング標準に従うように Copilot 指示するすべてのプロンプトにコンテキストを追加します。

  1. 適切なベースラインを確立するには、 組織レベルでカスタム指示を作成します。 これらは、任意のリポジトリに適用される可能性が高い高レベルの標準である可能性があります。 ただし、これらの手順は、 GitHub Web サイトでのみ適用されることに注意してください。 「GitHub Copilot の組織のカスタム手順を追加する」を参照してください。
  2. より完全なカバレッジを達成するために、開発者やリポジトリ管理者に特定のリポジトリに関するカスタムの指示を作成するよう勧めます。 これらは組織の指示よりも多くの場所に適用され、各プロジェクトとその要件について詳しく説明できます。 「GitHub Copilot用のリポジトリカスタム命令の追加」を参照してください。

5. ベスト プラクティスを奨励する

強力なガードレールが整っているため、開発者は既にAIを効果的に使用することができるはずです。 ただし、AI ツールに関するトレーニングを提供し、単に適用するのではなく、ベスト プラクティスが推奨される文化を作成することが重要です。

  1. ガバナンス設定と、開発者が Copilotを使用する方法に対する会社の期待を伝えます。 たとえば、すべてのエージェント作業を十分に確認する必要がある場合は、このプロセスが確立され、伝達されていることを確認します。
  2. 内部ドキュメントやビデオなどのオンボード リソースを作成します。 開始点として、 GitHub Copilot の使用に関するベスト プラクティスGitHub Copilot チャットクックブック などの既存のリソースを共有します。
  3. ワークショップなどの継続的なトレーニングとサポートを提供します。 ロールアウトが成功すると、多くの企業は、 Copilot を効果的に使用する方法について他のユーザーをトレーニングできる "チャンピオン" を特定します。

6. 最悪の事態を計画する

最も厳密なガードレールが配置されていても、開発者が AI ツールを使用しているかどうかに関係なく、脆弱なコードやエラーが発生しやすいコードがマージされる可能性は常にあります。

これらのシナリオに備えて、問題に対処し、この計画を開発者に伝える方法を計画する必要があります。 例えば次が挙げられます。

  1. 誤ったプル要求を元に戻し、デプロイメントをロールバックします。
  2. 問題の原因と今後の回避方法を分析するディスカッション投稿を作成します。
  3. 監査ログで、ルールセットのバイパス、不適切なアクセス許可、ガバナンス設定の変更などを確認します。

7. コードの品質を確認する

ガバナンス モデルに自信を持っていても、 Copilot が時間の経過とともにコードベースの品質を低下させることが懸念される場合は、ロールアウトの過程でこれを測定できます。 有効にすると、 GitHub Code Quality はリポジトリのコード正常性に関するメトリックを提供します。 「GitHubのコード品質について」を参照してください。

次のステップ

企業が監査ログを使用して、構成設定とライセンス割り当ての変更を監視する方法について説明します。 「GitHub Copilot の監査ログの確認」を参照してください。