04 Fonctionnalités avancées

Code Review et instruction files

Cette leçon contient des faits datés. Dates et sources

4.11 Copilot Code Review 🔍

Définition

Copilot Code Review permet à Copilot d’aider à reviewer du code.

Il peut détecter ou suggérer :

  • bugs potentiels ;
  • problèmes de lisibilité ;
  • oublis de tests ;
  • risques de sécurité ;
  • incohérences ;
  • améliorations de maintenabilité.

GitHub documente l’usage de Copilot Code Review et précise qu’il peut être demandé sur une pull request ou configuré automatiquement selon les politiques.

Code Review manuel vs automatique

GitHub indique que Copilot Code Review peut être configuré pour reviewer automatiquement les pull requests.

Donc il y a deux idées :

  • Review demandée manuellement ;
  • Review automatique selon configuration.

Exemple

Une PR ajoute :

Python
query = f"SELECT * FROM users WHERE email = '{email}'"

Copilot Code Review peut signaler :

Texte
This query may be vulnerable to SQL injection.
Use parameterized queries instead.

Exemple sécurité

Code :

JavaScript
app.get("/admin/users", async (req, res) => {
  const users = await userService.getAllUsers();
  res.json(users);
});

Copilot pourrait commenter :

Texte
This route does not appear to check whether the requester has admin permissions.
Consider adding authorization middleware.

Ce que Copilot Code Review ne remplace pas

Il ne remplace pas :

  • la review humaine ;
  • les tests ;
  • la CI ;
  • la validation produit ;
  • l’analyse sécurité complète ;
  • les règles internes de l’équipe.

Détail important : custom instructions

Pour une pull request, Copilot Code Review lit les repository custom instructions, agent instructions et agent skills depuis la branche HEAD, c’est-à-dire la branche contenant les changements, et non depuis la branche base. L’ancienne limite des 4 000 caractères ne doit plus être enseignée comme une règle actuelle : cette information appartient à une documentation historique.

C’est un détail très “exam-like”.

Le niveau d’effort règle la profondeur et le coût d’une review, pas la gouvernance. Lite et Balanced (par défaut) sont disponibles ; Max est annoncé mais pas utilisable. Le détail est traité en 6.6.

Demander une review : sur GitHub.com ou depuis l’IDE

Sur GitHub.com, tu ajoutes Copilot comme reviewer d’une pull request. Dans les IDE pris en charge (VS Code, Visual Studio, JetBrains, Xcode), tu peux aussi lui demander de relire tes changements avant de créer la pull request, pour corriger plus tôt. Le point d’entrée dépend de l’IDE. La gouvernance et le coût sont traités en 6.6.

Piège d’examen 🪤

Question possible :

Texte
An organization enables automatic Copilot code review.
Does this remove the need for human review?

Bonne réponse :

Texte
No. Copilot code review assists reviewers but does not replace human review.

4.12 Instructions files 📜

Définition

Les instructions files donnent à Copilot des consignes spécifiques sur la manière de comprendre, construire, tester ou valider un projet.

GitHub explique que les repository custom instructions files donnent à Copilot du contexte additionnel sur la façon de comprendre le projet et de construire, tester et valider ses changements.

Les formes à reconnaître sont :

  • .github/copilot-instructions.md pour les instructions repository-wide ;
  • .github/instructions/**/*.instructions.md pour les instructions spécifiques à des chemins ;
  • AGENTS.md, CLAUDE.md ou GEMINI.md pour les agent instructions, avec une prise en charge qui dépend de la surface ;
  • les instructions d’organisation ou personnelles quand la surface les supporte.

Ne suppose pas qu’un même fichier est lu par toutes les surfaces : GitHub publie une matrice de prise en charge par IDE, GitHub.com, cloud agent, Code Review et CLI.

Exemple d’instructions file

Tu peux avoir un fichier d’instructions qui dit :

markdown
# Project instructions for GitHub Copilot

## Coding style
- Use TypeScript strict mode.
- Prefer explicit return types for exported functions.
- Use async/await instead of Promise chains.

## Testing
- Use Jest for unit tests.
- Put tests next to the source file.
- Cover edge cases and invalid inputs.

## Security
- Never hardcode secrets.
- Validate all external inputs.
- Use parameterized queries.

Pourquoi c’est utile ?

Sans instructions :

Texte
Copilot devine tes conventions.

Avec instructions :

Texte
Copilot connaît tes préférences projet.

Cas d’usage

Instructions files utiles pour :

  • style de code ;
  • frameworks ;
  • conventions de test ;
  • règles sécurité ;
  • architecture ;
  • naming ;
  • structure de dossiers ;
  • règles de validation ;
  • outils de build.

Exemple prompt avec instructions

Si les instructions sont bien configurées, tu peux demander :

Texte
Add unit tests for this service.

Et Copilot peut mieux respecter :

  • Jest plutôt que Mocha ;
  • structure du projet ;
  • conventions d’assertions ;
  • conventions de mocks.

Piège d’examen 🪤

Question possible :

Texte
A team wants Copilot to consistently follow repository-specific coding and testing conventions.
What should they configure?

Bonne réponse :

Texte
Repository custom instructions / instructions files

À retenir pour le GH-300

  • Copilot Code Review aide à repérer bugs, oublis de tests et risques ; il peut être demandé ou automatique, et ne remplace pas la review humaine.
  • Pour une pull request, il lit les instructions depuis la branche HEAD, celle qui porte les changements.
  • Instructions de dépôt : des règles permanentes ; une forme spécifique à des chemins cible un dossier.
  • La prise en charge des fichiers d’instructions dépend de la surface : on consulte la matrice de GitHub.

Faits datés de cette leçon

Ces points changent avec le produit. Chacun indique quand il a été vérifié et où le contrôler.

D2 · Utiliser les fonctionnalités de GitHub Copilot · 25–30 %