Personnaliser Copilot

Développement logiciel avec GitHub Copilot

Thalia Barrera

AI Engineering Curriculum Manager, DataCamp

Développement logiciel avec GitHub Copilot

Développement logiciel avec GitHub Copilot

Développement logiciel avec GitHub Copilot

Développement logiciel avec GitHub Copilot

Fonctionnement des consignes personnalisées

$$

Définir :

  • Conventions de code
  • Outils privilégiés
  • Contexte du projet

Développement logiciel avec GitHub Copilot

Fonctionnement des consignes personnalisées

$$

Définir :

  • Conventions de code
  • Outils privilégiés
  • Contexte du projet

Développement logiciel avec GitHub Copilot

Comment définir des consignes personnalisées

Incluez-les dans : .github/copilot-instructions.md

## Contexte du projet
Projet Python pour traiter des chaînes de traitement de données avec Airflow.

## Style de code - Utiliser des annotations de type pour toutes les fonctions
- Suivre PEP8
- Utiliser la casse snake_case
- Rédiger des docstrings au format Google
## Tests - Utiliser pytest
- Inclure un test par fonction
## Autres consignes…
Développement logiciel avec GitHub Copilot

Qu'est-ce qui rend une consigne efficace ?

$$

✅ Consignes efficaces :

  • Courtes et précises
  • Autonomes
  • Ajoutent du contexte ou des infos pertinentes

$$

❌ Consignes inefficaces :

  • Documents ou dépôts externes
  • Ton ou style d'écriture imposé
  • Limites sur le niveau de détail ou le format
1 https://docs.github.com/en/copilot/how-tos/configure-custom-instructions/add-repository-instructions
Développement logiciel avec GitHub Copilot

$$

$$

## Directives de style

- Se conformer aux styles de code définis 
dans styleguide.md du dépôt my-org/my-repo

- Répondre dans le style d'un(e) collègue 
amical(e), en langage informel

- Répondre en moins de 1 000 caractères

Développement logiciel avec GitHub Copilot

$$

$$

## Directives de style

- Se conformer aux styles de code définis 
dans styleguide.md du dépôt my-org/my-repo

- Répondre dans le style d'un(e) collègue 
amical(e), en langage informel

- Répondre en moins de 1 000 caractères

Développement logiciel avec GitHub Copilot

Comment activer les consignes personnalisées

  • Enregistrer le fichier copilot-instructions.md
  • Il sera inclus automatiquement dans vos invites

Développement logiciel avec GitHub Copilot

Comment activer les consignes personnalisées

  • Enregistrer le fichier copilot-instructions.md
  • Il sera inclus automatiquement dans vos invites

Développement logiciel avec GitHub Copilot

Utiliser plusieurs fichiers de consignes

Développement logiciel avec GitHub Copilot

Utiliser plusieurs fichiers de consignes

Développement logiciel avec GitHub Copilot

Utiliser plusieurs fichiers de consignes

$$

Développement logiciel avec GitHub Copilot

Définir des consignes au niveau de l'organisation

$$

Développement logiciel avec GitHub Copilot

Définir des consignes au niveau de l'organisation

$$

Exemples de règles à l'échelle de l'entreprise :

  • Utiliser les outils internes
  • Imposer certaines bibliothèques
  • Appliquer un style uniforme
  • Avertir en cas de modèles désuets
Développement logiciel avec GitHub Copilot

Priorité des consignes à plusieurs niveaux

$$

$$

$$

Portée Priorité
Consignes personnelles La plus élevée
Consignes du projet Moyenne
Consignes de l'organisation La plus faible
Développement logiciel avec GitHub Copilot

$$

Exemple d'invite : « Write a function that calculates the average of a list of numbers. »

def calculate_average(numbers: List[float]) -> float:
    """Calculate the average of a list of numbers.

    Args:
        numbers (List[float]): A list of numbers to average.

    Returns:
        float: The average value of the numbers.

    Raises:
        ValueError: If the list is empty.
    """
    if not numbers:
        raise ValueError("The list of numbers cannot be empty.")
    return sum(numbers) / len(numbers)
Développement logiciel avec GitHub Copilot

$$

Exemple d'invite : « Write a function that calculates the average of a list of numbers. »

def calculate_average(numbers: List[float]) -> float:
    """Calculate the average of a list of numbers.

    Args:
        numbers (List[float]): A list of numbers to average.

    Returns:
        float: The average value of the numbers.

    Raises:
        ValueError: If the list is empty.
    """
    if not numbers:
        raise ValueError("The numbers list cannot be empty.")
    return sum(numbers) / len(numbers)

$$

Développement logiciel avec GitHub Copilot

Passons à la pratique !

Développement logiciel avec GitHub Copilot

Preparing Video For Download...