Créer une application Python de A à Z avec GitHub Copilot dans VS Code

Comment utiliser GitHub copilot pour développer vos projets Python ?

Publié le par Gabriel Trouvé (mis à jour le )

32 minutes

Inutile de le redire, mais... je vais le faire quand même. Nous sommes dans une période où l'IA prend de plus en plus de place et transforme notre façon de coder. Le but de ce tutoriel est d'utiliser l'IA intégrée à VS Code : GitHub Copilot.

De la configuration aux fonctionnalités de ce dernier, nous allons créer un petit projet avec le framework Streamlit pour mettre en pratique ce que nous allons voir. Et pour ceux qui ne connaissent pas Streamlit, je vous invite à lire notre tutoriel sur le sujet.

Installation et configuration

Avant de commencer, assurez-vous d'avoir VS Code installé. Copilot est désormais nativement intégré à l'éditeur ; il n'est plus nécessaire de fouiller dans les extensions.

Copilot est built-in

Copilot est built-in

Il suffit de survoler l'icône Copilot située dans la barre d'état en bas à droite de votre fenêtre VS Code et de cliquer sur « Use AI Features ».

Activer Copilot (1)

Activer Copilot (1)

Activer Copilot (2)

Activer Copilot (2)

À noter

Si vous n'avez pas d'abonnement payant, GitHub propose un plan gratuit avec des quotas. Vous pouvez donc commencer à l'utiliser gratuitement.

Les bases avec l'autocomplétion

Nous allons commencer par créer un nouveau dossier que nous appellerons streamlit-copilot pour notre projet Streamlit. Une fois à l'intérieur, nous créerons un fichier app.py, un environnement virtuel et nous installerons Streamlit.

python -m venv venv
SHELL
source venv/bin/activate
SHELL
pip install streamlit
SHELL

Maintenant, une fois dans VS Code, ouvrez app.py et commencez à écrire les lignes suivantes :

import streamlit as st


st.set_page_config(page_title="Mon gestionnaire de tâches")

# Copiez collez le code ci-dessus et commencez à écrire le code ci-dessous

st.ti
PYTHON
Auto-complétion

Auto-complétion

En tapant st.tit, Copilot va analyser le contexte et vous suggérer la suite en texte grisé. Appuyez sur Tab pour accepter la suggestion.

À noter

Parfois, vous souhaitez coder sans IA. Il est possible de cliquer sur l'icône Copilot en bas à droite et de sélectionner Snooze pour mettre l'autocomplétion en pause.

Mettre en pause l'autocomplétion

Mettre en pause l'autocomplétion

Découverte du Chat

Ouvrez la vue « Chat » via le raccourci Ctrl+Alt+I sur PC / Cmd+Maj+I sur Mac.

Gérer les modèles IA

Copilot permet d'utiliser plusieurs modèles : Claude, OpenAI, Gemini, etc. Et si certains ne vous intéressent pas, vous pouvez les masquer via la « roue dentée ».

Modèles avec VS Code

Modèles avec VS Code

Gestion des modèles

Gestion des modèles

Les différents modes

À côté du choix du modèle, vous remarquerez un autre menu déroulant vous proposant plusieurs modes d'interaction avec l'IA :

  • Le mode Ask : Pour des questions théoriques ou des questions sur votre projet sans risquer de modifier votre code

  • Le mode Agent : Vous lui donnez une consigne, il va planifier et coder, parfait si vous savez ce que vous voulez

  • Le mode Plan : L'IA va uniquement rédiger une feuille de route sans écrire de code, ce qui permet de vérifier et d'ajuster l'architecture avant de laisser l'IA toucher à vos fichiers

Les différents modes

Les différents modes

À noter

Pour la suite, je vais utiliser Claude Sonnet 4.6, qui fait partie de la formule payante.

Le mode plan

Reprenons notre application Streamlit, ouvrez le « Chat » et sélectionnez le mode Plan. Envoyez ensuite ce type de prompt :

Crée une application de gestion de tâches avec Streamlit. 
L'utilisateur doit pouvoir ajouter, lister et supprimer des tâches.
MARKDOWN

Votre copilote va commencer à planifier :

Copilot commence à planifier

Copilot commence à planifier

Parfois, il vous demandera de choisir l'implémentation :

Choix avec copilot

Choix avec copilot

Il termine la planification et vous demande si vous souhaitez lancer l'implémentation.

Suite de la planification

Suite de la planification

Vous pouvez continuer à envoyer des prompts pour affiner le plan, ou simplement commencer à coder en cliquant sur Start Implementation.

Commencer à coder

Commencer à coder

Copilot va commencer à coder, et vous verrez en rouge ce qu'il supprime et en vert ce qu'il ajoute. Vous pouvez accepter en cliquant sur Keep ou refuser en cliquant sur Undo. Il lancera même ses propres commandes pour diverses raisons (vérifier le code, lancer des tests, etc.).

Copilot code

Copilot code

Dans mon cas, il m'a même proposé de lancer l'application :

Copilot lance l'application

Copilot lance l'application

Démo en vidéo :

L'autonomie avec Bypass Approval et Autopilot

Si cliquer sur Keep peut devenir fastidieux et que vous vous sentez confiant, Copilot propose les modes Bypass Approval et Autopilot :

  • Bypass Approval supprime les confirmations manuelles pour toutes les actions de l'agent : modifications de fichiers, exécution de commandes dans le terminal et appels à des outils externes

  • Autopilot offre une autonomie maximale. En plus d'approuver automatiquement toutes les actions, Copilot répond seul aux questions de clarification en cours de route (il effectue ses propres choix logiques), gère les erreurs et ne s'arrête qu'une fois la tâche entièrement terminée

Attention

Attention à n'exécuter ces modes (surtout Autopilot) que sur des tâches que vous maîtrisez et dans un environnement versionné. Donnez-vous la possibilité de revenir facilement en arrière.

Utiliser l'Inline Chat pour les ajustements

L'Inline Chat est idéal pour modifier une fonction sans quitter votre éditeur. Regardons cela de plus près :

  • Dans app.py, sélectionnez la portion de code correspondant à l'ajout d'une tâche

  • Appuyez sur Ctrl+i (Cmd+i sur Mac) pour faire apparaître une barre de saisie au-dessus du code

Vous pouvez ensuite y écrire ce prompt :

"Ajoute une vérification : si la tâche existe déjà dans st.session_state, affiche un st.warning et n'ajoute pas le doublon. Ne modifie absolument pas le reste du code et ne crée pas de nouvelle fonction."
SHELL
Inline Chat

Inline Chat

Résultat du prompt

Résultat du prompt

J'ai voulu ajouter une tâche existante et... tout fonctionne comme prévu :

Gestion des doublons

Gestion des doublons

Personnaliser l'IA avec vos propres règles

Au lieu de répéter sans cesse les mêmes instructions (comme « N'oublie pas les tests » ou « Type les variables ») ou de chercher à respecter vos standards, VS Code permet de définir des instructions personnalisées via un fichier copilot-instructions.md.

Je vais d'ailleurs créer un nouveau projet. Dans ce dernier, je vais créer un dossier .github contenant le fichier copilot-instructions.md avec ces instructions :

# Règles de code Python pour ce projet

## Qualité et Architecture
- Utilise systématiquement les annotations de type (Type Hints) pour les signatures de 
fonctions.
- Rédige une docstring au format Google pour chaque nouvelle fonction complexe.
- Les noms de variables et fonctions doivent être explicites, en français et en `snake_case`.

## Tests (Important)
- Pense toujours à concevoir des fonctions isolées et testables.
- Lors de la création d'une logique métier, génère ou suggère systématiquement un 
test unitaire avec le module `unittest`.
- Place toujours les fichiers de tests dans le dossier `tests/` à la racine du projet
 (crée-le si besoin), en respectant la convention de nommage `test_<nom_du_fichier>.py`.

## Spécifique à Streamlit
- N'utilise jamais `st.write` pour du texte brut, préfère `st.markdown`.
- Encapsule toujours les actions critiques (chargement de fichier, API) dans des blocs
 `try/except` avec un affichage d'erreur via `st.error`.
MARKDOWN

Les agents consulteront ce fichier en arrière-plan.

Nouveau projet avec des instructions

Nouveau projet avec des instructions

Je propose de renvoyer ce prompt dans le « Chat » :

Crée une application de gestion de tâches avec Streamlit. 
L'utilisateur doit pouvoir ajouter, lister et supprimer des tâches.
MARKDOWN

Avec ce simple prompt, j'ai obtenu un résultat très convaincant !

Cependant, j'ai remarqué quelques petites limites. Par exemple, il manquait le fichier __init__.py (même vide) dans le dossier tests/ généré par Copilot pour que unittest puisse lancer les tests via la commande python -m unittest. De plus, Copilot ne m'a pas proposé d'installer streamlit. Mais peut-être l'aurait-il fait si j'avais pris le temps de préparer un fichier requirements.txt !

Résultat du prompt avec les instructions

Résultat du prompt avec les instructions

Attention

L'IA reste une assistante : elle est extrêmement dépendante du contexte global que vous lui fournissez.

Les Smart Actions

Les Smart Actions sont des fonctionnalités intégrées qui apparaissent de manière contextuelle, sans que vous ayez besoin de rédiger un prompt.
Vous pouvez par exemple sélectionner du code dans votre éditeur pour faire apparaître une petite icône étoilée. Copilot vous propose des actions rapides pour modifier ou effectuer une revue de votre code.

Smart Action

Smart Action

Une autre action que je trouve très pratique : la génération d'un message de commit Git. J'ai effectué un git init pour versionner mon projet, et dans l'onglet Source Control , j'ai ajouté mes fichiers modifiés à l'index (staged). Ensuite, j'ai simplement cliqué sur l'icône étoilée au-dessus du champ de saisie pour générer le message de commit.

Smart Action : message de commit

Smart Action : message de commit

Gardez le contrôle

L'outil s'appelle Copilot, et non Autopilot (même si ce mode existe). Veuillez m'excuser pour cette mauvaise blague.

Ce que je veux dire par là, c'est qu'il faut rester vigilant quant à la qualité du code généré et de l'architecture, que ce soit pour l'application elle-même ou pour les tests. Soyez rigoureux sur les tests ! Même si vous les générez via l'IA, accordez-y de l'importance : ils feront office de garde-fous.

Pour les plus prudents d'entre vous, n'hésitez pas à utiliser pytest-cov pour vous assurer que l'IA a bien couvert l'intégralité de votre code.

Gardez toujours votre esprit critique d'expert Python !

Bravo, tu es prêt à passer à la suite

Rechercher sur le site

Inscris-toi à Docstring

Pour commencer ton apprentissage.

Tu as déjà un compte ? Connecte-toi.