Configurer des instructions de révision de code Copilot

Azure DevOps Services

Important

Cette fonctionnalité est disponible en préversion publique.

Utilisez des instructions personnalisées pour adapter le comportement de révision du code de Copilot au niveau de l'organisation, du projet et du référentiel. Les instructions personnalisées guident Copilot à se concentrer sur des normes de codage, des bonnes pratiques ou des politiques organisationnelles spécifiques.

Prerequisites

Catégorie Requirements
Activation des fonctionnalités La révision du code Copilot doit être activée au niveau de l’organisation, du projet et du référentiel.
Autorisations d’organisation Autorisations d’administrateur de collection de projets requises pour ajouter ou modifier des instructions personnalisées au niveau de l’organisation.
Autorisations du projet Autorisations de l’administrateur du projet pour ajouter ou modifier des instructions personnalisées au niveau du projet.
Autorisations du référentiel Autorisations de push ou d’administrateur sur le dépôt requises pour ajouter ou modifier des instructions personnalisées au niveau du dépôt.

Portées des instructions personnalisées

Vous pouvez définir des instructions personnalisées à plusieurs niveaux :

  • Niveau de l’organisation : Normes de référence qui s’appliquent à tous les projets.
  • Niveau du projet : normes spécifiques à l’équipe ou au projet.
  • Niveau du référentiel : Normes spécifiques au référentiel dans .github/copilot-instructions.md ou .azuredevops/copilot-instructions.md.

Quand des instructions existent à plusieurs niveaux, Copilot utilise toutes les instructions applicables lors de la révision.

Note

Copilot lit les fichiers d’instructions au niveau du dépôt et ceux limités à des chemins spécifiques uniquement à partir de la branche cible de la demande de tirage. Les modifications apportées aux fichiers d’instructions dans la demande de tirage n’ont aucune incidence sur sa révision. Copilot utilise les modifications uniquement après leur fusion dans la branche cible.

Instructions personnalisées de l’organisation et du projet

Configurez les instructions personnalisées au niveau de l’organisation et au niveau du projet dans les paramètres Azure DevOps. Utilisez ces portées pour définir des stratégies générales, telles que les exigences de sécurité, les règles de conformité ou les conventions de langage communes à plusieurs dépôts.

Fichier d’instructions personnalisées du dépôt

Stockez les instructions personnalisées dans .github/copilot-instructions.md ou .azuredevops/copilot-instructions.md à la racine de votre dépôt. Copilot lit ce fichier pendant chaque révision pour comprendre les instructions spécifiques de votre dépôt.

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

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

Créer des instructions personnalisées

  1. Dans votre dépôt, créez un dossier .github ou .azuredevops s’il n’en existe pas déjà.
  2. Créez un fichier nommé copilot-instructions.md dans le dossier .github ou .azuredevops.
  3. Ajoutez vos instructions personnalisées au format Markdown.
  4. Validez et transférez le fichier vers votre référentiel.

Ajouter des instructions limitées à des chemins spécifiques

Utilisez des fichiers d’instructions délimités par le chemin lorsque vous souhaitez des règles différentes pour des dossiers, des types de fichiers ou des technologies spécifiques.

  • Créez un ou plusieurs fichiers *.instructions.md dans .github/instructions/ ou .azuredevops/instructions/.
  • Ajoutez un en-tête YAML (front matter) contenant une valeur applyTo qui cible les fichiers correspondants.
  • Gardez les conseils axés sur une langue ou une préoccupation par fichier.

Copilot applique les règles limitées à des chemins spécifiques uniquement aux fichiers modifiés qui correspondent aux modèles applyTo.

Format des fichiers d’instructions limités à des chemins spécifiques

---
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.

Exemples de modèles applyTo

  • applyTo: "**" s’applique à tous les fichiers.
  • applyTo: "**/*.cs" s’applique à tous les fichiers C#.
  • applyTo: "**/*.sql,**/Settings.xml" s’applique à plusieurs modèles.

Si un fichier limité à un chemin n'inclut pas applyTo, Copilot ignore ce fichier.

Meilleures pratiques relatives aux instructions personnalisées

  • Soyez spécifique : Fournissez des conseils clairs et exploitables sur les types de problèmes que Copilot doit signaler.
  • Concentrez-vous sur les domaines à fort impact : Hiérarchisez la qualité du code, la sécurité et les problèmes de performances pertinents pour votre codebase.
  • Inclure des exemples : Le cas échéant, fournissez des exemples de code illustrant les problèmes à rechercher ou les modèles à éviter.
  • Gardez-le concis : Copilot traite l’intégralité du fichier pour chaque révision. Ainsi, soyez direct et évitez les explications détaillées.
  • Mettez à jour régulièrement : Passez en revue et mettez à jour les instructions à mesure que vos normes de codage évoluent.

Exemples d’instructions personnalisées

# 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

Au niveau de l’organisation

Ajoutez des instructions personnalisées au niveau de l’organisation pour définir des normes de révision étendues dans votre entreprise.

Les instructions au niveau de l’organisation influencent la révision de code Copilot pour tous les projets et tous les dépôts de cette organisation. Utilisez-les donc pour les exigences que toutes les équipes doivent respecter.

Capture d’écran de la configuration des instructions personnalisées au niveau de l’organisation montrant les paramètres qui s’appliquent à tous les projets et référentiels d’une organisation.

Au niveau du projet

Ajoutez des instructions personnalisées au niveau du projet pour définir des normes de révision partagées dans tous les référentiels de projet.

Les instructions au niveau du projet influencent la révision de code Copilot pour tous les dépôts de ce projet. Utilisez-les donc pour les conventions que toutes les équipes du projet doivent respecter.

Capture d’écran de la configuration des instructions personnalisées au niveau du projet montrant les paramètres qui s’appliquent à tous les référentiels d’un projet.

Ordre de priorité

Lorsque les instructions se chevauchent, Copilot les applique dans cet ordre de priorité :

  1. Instructions au niveau du dépôt
  2. Instructions au niveau du projet
  3. Instructions au niveau de l’organisation

Les instructions de référentiel ont la priorité la plus élevée, suivie des instructions au niveau du projet, puis des instructions au niveau de l’organisation.

Si deux instructions sont en conflit, Copilot utilise l’instruction avec la portée de priorité plus élevée.

Note

L’ordre de priorité oriente le comportement de révision de Copilot, mais n’est pas garanti. Étant donné que Copilot utilise un modèle de langage volumineux, il peut parfois interpréter ou appliquer des instructions conflictuelles différemment.

Obtenir de l’aide

Pour résoudre les problèmes liés aux instructions personnalisées et obtenir des réponses aux questions fréquemment posées sur Copilot Code Review, consultez Résoudre les problèmes liés à Copilot Code Review.

Étape suivante