コード レビュー手順Copilot構成する

Azure DevOps サービス

Important

この機能は限定 プレビュー段階です

一部の機能は、プレビュー機能を段階的にロールアウトMicrosoft、環境内ではまだ使用できない場合があります。 機能は予告なく変更または削除される場合があります。 プレビュー機能には、サービス レベル アグリーメント (SLA) および制限付きサポートはありません。

カスタム手順を使用して、Copilotのコード レビューの動作を組織、プロジェクト、リポジトリの各レベルで調整します。 カスタム命令ガイドCopilot、特定のコーディング標準、ベスト プラクティス、または組織のポリシーに焦点を当てます。

前提条件

カテゴリ Requirements
機能の有効化 Copilotコード レビューは、組織、プロジェクト、リポジトリのレベルで有効にする必要があります。
組織のアクセス許可 コレクション管理者のアクセス許可をProjectして、組織レベルのカスタム手順を追加または変更します。
Projectアクセス許可 Project管理者のアクセス許可を使用して、projectレベルのカスタム命令を追加または変更します。
リポジトリのアクセス許可 リポジトリレベルのカスタム命令を追加または変更するには、リポジトリに対するプッシュまたは管理者権限。

カスタム命令スコープ

カスタム命令は、複数のスコープで定義できます。

  • 組織レベル: すべてのプロジェクトに適用されるベースライン標準。
  • Project レベル: チーム固有またはproject固有の標準。
  • リポジトリ レベル:.github/copilot-instructions.mdまたは.azuredevops/copilot-instructions.mdのリポジトリ固有の標準。

命令が複数のスコープに存在する場合、Copilotはレビュー中に該当するすべての命令を使用します。

Note

Copilotは、プル要求のターゲット ブランチからのみ、リポジトリ レベルおよびパス スコープの命令ファイルを読み取ります。 pull request の命令ファイルに対する変更は、そのレビューには影響しません。 Copilotでは、変更がターゲット ブランチにマージされた後にのみ使用されます。

組織とプロジェクトのカスタム手順

Azure DevOps設定で、組織レベルおよびプロジェクト レベルのカスタム手順を構成します。 これらのスコープは、セキュリティ要件、コンプライアンス規則、複数のリポジトリによって共有される言語規則など、広範なポリシーに使用します。

リポジトリのカスタム命令ファイル

.github/copilot-instructions.mdまたは.azuredevops/copilot-instructions.mdにカスタム命令をリポジトリのルートに格納します。 Copilotは、各レビュー中にこのファイルを読み取り、リポジトリの特定のガイドラインを理解します。

.github/
   copilot-instructions.md
   instructions/
      api.instructions.md

.azuredevops/                       # same files work here too
   copilot-instructions.md
   instructions/
      api.instructions.md

カスタム命令を作成する

  1. リポジトリに .github フォルダーまたは .azuredevops フォルダーがまだ存在しない場合は作成します。
  2. .github または .azuredevops フォルダーに copilot-instructions.md という名前の新しいファイルを作成します。
  3. カスタム命令を Markdown 形式で追加します。
  4. ファイルをコミットしてリポジトリにプッシュします。

パス スコープの手順を追加する

特定のフォルダー、ファイルの種類、またはテクノロジに対して異なる規則が必要な場合は、パス スコープの命令ファイルを使用します。

  • .github/instructions/または.azuredevops/instructions/に 1 つ以上の*.instructions.md ファイルを作成します。
  • 一致するファイルを対象とする applyTo 値を使用して YAML フロント マターを追加します。
  • ファイルごとに 1 つの言語または懸念事項に重点を置いたガイダンスを保持します。

Copilotは、パス スコープの規則を、applyTo パターンに一致する変更されたファイルにのみ適用します。

パス スコープのファイル形式

---
applyTo: "**/*.ts,**/*.tsx"
---

## TypeScript standards

- Avoid `any`; prefer `unknown` or a specific type.
- Prefer `const`; avoid `var`.
- Use optional chaining (`?.`) and nullish coalescing (`??`) where appropriate.

applyTo パターンの例

  • applyTo: "**" は、すべてのファイルに適用されます。
  • applyTo: "**/*.cs" は、すべての C# ファイルに適用されます。
  • applyTo: "**/*.sql,**/Settings.xml" は複数のパターンに適用されます。

パス スコープのファイルにapplyToが含まれていない場合、Copilotはそのファイルをスキップします。

カスタム手順のベスト プラクティス

  • 具体的には、次の手順を実行します。フラグを設定する必要がある問題の種類について、明確で実用的なガイダンスCopilot提供します。
  • 影響の大きい領域に焦点を当てます。 コードベースに関連するコードの品質、セキュリティ、パフォーマンスの問題に優先順位を付けます。
  • 例を含めます。 必要に応じて、探す問題や回避するパターンのコード例を提供します。
  • 簡潔に保つ: Copilotは、各レビューのファイル全体を処理するので、直接的であり、詳細な説明は避けてください。
  • 定期的に更新する: コーディング標準の進化に合わせて、手順を確認して更新します。

カスタム命令の例

# Copilot code review instructions

## Security focus
- Flag any hardcoded credentials, API keys, or sensitive data
- Identify potential SQL injection or XSS vulnerabilities
- Check for secure use of cryptographic functions

## Performance considerations
- Suggest database query optimizations
- Identify N+1 query problems
- Flag inefficient loops or algorithms

## Team coding standards
- Enforce naming conventions (camelCase for variables, PascalCase for classes)
- Check for proper error handling and logging
- Ensure consistent use of async/await patterns

## Documentation requirements
- Flag missing or incomplete function documentation
- Verify that complex logic includes explanatory comments

組織階層

組織レベルでカスタム手順を追加して、企業全体で広範なレビュー標準を定義します。

組織レベルの手順は、すべてのプロジェクトとその組織内のすべてのリポジトリのコード レビュー Copilot影響を受けるので、すべてのチームが従う必要がある要件に使用します。

組織内のすべてのプロジェクトとリポジトリに適用される設定を示す、組織レベルのカスタム命令構成のスクリーンショット。

プロジェクト レベル

プロジェクト レベルでカスタム手順を追加して、すべてのプロジェクト リポジトリで共有レビュー標準を定義します。

Projectレベルの命令は、そのproject内のすべてのリポジトリCopilotコード レビューに影響するため、projectのすべてのチームが従うべき規則に使用します。

プロジェクト内のすべてのリポジトリに適用される設定を示すプロジェクト レベルのカスタム命令構成のスクリーンショット。

優先順位

命令が重複する場合、Copilotは次の優先順位で適用されます。

  1. リポジトリ レベルの手順
  2. Projectレベルの手順
  3. 組織レベルの手順

リポジトリの命令の優先順位が最も高く、その後にプロジェクト レベルの指示が続き、組織レベルの指示が続きます。

2 つの命令が競合する場合、Copilotは優先順位の高いスコープの命令を使用します。

Note

優先順位は、Copilotのレビュー動作をガイドしますが、保証されません。 Copilotは大規模な言語モデルを使用するため、競合する命令を解釈したり、異なる方法で適用したりする場合があります。

ヘルプを取得する

Copilotコード レビューに関してよく寄せられる質問に対するカスタムの手順と回答のトラブルシューティングについては、「コード レビュー Copilotトラブルシューティング」を参照してください。

次のステップ