GitHub では、 code scanning アラートに対して、 agentic autofix と Copilot Autofixの 2 つの自動修正エクスペリエンスが提供されます。 どちらも、大規模な言語モデル (LLM)、コードベースからのデータ、および分析code scanning を使用して、潜在的なコード変更と説明を生成します。 ただし、ワークフロー、結果、アクセス要件、使用状況は異なります。
自動修正の 2 種類は何ですか?
Agentic Autofix と Copilot Autofix は異なる問題を解決します:
- agentic autofix に 1 つ以上のアラートの調査と修正をエンドツーエンドで行ってもらいたい場合は、Copilot を使用します。
- Copilot Autofixは、自分で確認して適用する1つのアラートに対して、1つの推奨コード変更が欲しい場合に使用します。
agentic autofixでは、1 つ以上のアラートをCopilotに割り当てます。 コードベースを調査し、修正プログラムを生成し、変更を検証します。 次に、提案された修正を含む下書きプル リクエストを開きます。
Copilot Autofixでは、GitHubは、サポートされている 1 つのアラートに対して 1 つの推奨されるコード変更を生成します。 この提案を使用して、自分で pull request を作成できます。
自動修正はどこで利用できますか?
2つの機能へのアクセス方法は異なります。 組織所有のリポジトリで agentic autofixを有効にするには、組織の所有者またはセキュリティ マネージャーが有効にする必要があります。 組織が企業に属している場合は、エンタープライズ所有者またはセキュリティ マネージャーもそれを許可する必要があります。 組織レベルでの有効化設定では、対象となるリポジトリに対して既定で有効になりますが、リポジトリ管理者はオプトアウトするか、上位レベルの設定で許可されている場合は再度有効にすることができます。
個人アカウントが所有する利用資格のあるパブリック リポジトリの場合、リポジトリ管理者は agentic autofix を直接有効にすることができます。 Copilotを使用するためにagentic autofixライセンスは必要ありませんが、Enterprise Managed Usersが所有するリポジトリでは使用できません。 詳しくは、「コードスキャンのagentic自動修復へのアクセスを管理」をご覧ください。
Copilot Autofix一方、管理者が無効にしない限り、CodeQLを使用するすべてのリポジトリで既定で有効になります。 GitHub.com上のすべてのパブリック リポジトリで使用できます。 また、GitHub Code Securityのライセンスを持つ組織や企業が所有する内部リポジトリまたはプライベート リポジトリでも利用可能です。 agentic autofixとは異なり、Copilot AutofixはEnterprise Managed Usersが所有するリポジトリで利用可能です。
自動修正の種類の選択
使用コストも、どの機能を使用するかを判断する要素です。 各agentic autofix エージェント セッションはAI credits分とGitHub Actions分を消費しますが、Copilot Autofix推奨される修正はAI creditsを消費しません。
リポジトリでagentic autofixが有効になっていない場合でも、Copilot Autofixを使用して、サポートされているアラートの修正候補を生成できます。
agentic autofix の使用
agentic autofix に 1 つ以上のアラートを調査させ、下書きプルリクエストを準備させたい場合は、Copilot を使用します。 リポジトリのバックログまたはセキュリティ キャンペーンから agentic autofix アラートを割り当てることができます。 各アサインメントでエージェント セッションが開始されます。 セッションでは、影響を受けるファイルを超えてコードベースを探索し、修正プログラムを生成して検証します。 変更を含むプルリクエストを開きます。 「コード スキャン アラートを解決する」を参照してください。
次の点に注意してください。
- 組織、エンタープライズ、またはリポジトリ レベルで agentic autofix を有効にする方法の詳細については、 コードスキャンのagentic自動修復へのアクセスを管理 を参照してください。
- Agentic Autofix は、Code Security AI クレジットと GitHub Actions 分を消費します。 「GitHub Advanced Security ライセンス請求」を参照してください。
- Copilot では、修正を生成するときに適用されるカスタム命令が使用されます。 「Copilot に対してカスタム命令を追加する」を参照してください。
- Agentic Autofix はベストエフォートで動作します。
Copilotでは、CodeQL クエリ スイートで code scanning を再実行して修正プログラムを検証します。 カスタム CodeQL クエリ、
security-extendedCodeQL クエリ スイート、またはサード パーティ製ツールからの code scanning アラートの修正を確認することはできません。
プルリクエストをマージする前に、生成された変更を常に確認してテストしてください。
Copilot Autofix の使用
Copilot Autofix は、リポジトリでcode scanningに既定または詳細設定を使用するかに関係なく、同じように機能します。 有効にする別の手順はありません。code scanningでCodeQLを有効にするだけで十分です。 「コード スキャンの既定セットアップの構成」を参照してください。
Copilot Autofix は GitHub Code Quality の不可欠な部分でもあり、code scanning の結果では無効になっている場合でも、コード品質の結果に対して引き続き実行されます。
エンタープライズ レベル、組織レベル、リポジトリ レベルの管理者は、Copilot Autofixを無効にすることができます。 設定は下方向に連鎖します。エンタープライズ所有者が機能を許可しない場合、そのエンタープライズの組織またはリポジトリで機能を有効にすることはできません。また、組織の所有者が無効にした場合、その組織のリポジトリは再び有効にできません。 特定のレベルで機能を復元するには、そのレベルの管理者またはその上位レベルの管理者が設定を元に戻す必要があります。 各レベルで Copilot Autofix を管理する方法については、 コード スキャンの Copilot Autofix を無効にする を参照してください。