
I. Présentation
Visual Studio Code prend en charge une version gratuite de GitHub Copilot, l’IA de Microsoft capable de travailler sur du code dans différents langages : PowerShell, Python, PHP, etc… Selon vos besoins ! Comment l’utiliser ? Quelles sont les fonctionnalités ? C’est ce que nous verrons dans ce tutoriel.
GitHub Copilot Free est disponible dans Visual Studio Code (VS Code) et d’autres applications comme Visual Studio et Vim. Il s’intègre directement à l’interface de l’éditeur de code de plusieurs façons, comme nous le verrons par la suite. Il donne accès à plusieurs modèles de langage, dont GPT-4o, Gemini Flash 2.0 et Claude Sonnet 3.5.
La version gratuite a quelques limitations :
La fonctionnalité de complétion de code est limitée à 2 000 complétions par mois.
Copilot Chat est limité à 50 messages de chat par mois.
De quoi avoir déjà un très bon aperçu des capacités de GitHub Copilot Free ! Si ce n’est pas suffisant pour vos besoins, vous pouvez passer sur un forfait GitHub Copilot Pro facturé 10 dollars par mois et par utilisateur. La version payante donne accès à d’autres modèles d’IA et quelques fonctionnalités supplémentaires, en plus d’éliminer les limites précédemment évoquées. Vous pouvez comparer les plans sur cette page.
Dans le cadre de ce tutoriel, nous utiliserons GitHub Copilot Free pour coder en PowerShell, mais l’usage est identique avec les autres langages. Voici quelques scénarios d’utilisation de l’IA :
Écriture de tests et de code répétitif
Débogage et correction de code
Explication de code
Ajout de commentaire à un code existant
Génération de bout de code (une fonction, par exemple)
Nous verrons plusieurs cas d’usage dans la suite de cet article.
Avertissement – Avant d’envisager de générer du code avec l’intelligence artificielle, que ce soit avec GitHub Copilot, ChatGPT ou une autre IA, je vous encourage à maîtriser un minimum le langage que vous utilisez. En effet, il est essentiel de réviser le code généré par l’IA, ce qui est difficile dans le cas où l’on ne le maitrise pas… L’IA est un outil et elle ne remplace pas vos compétences.
II. Ajouter GitHub Copilot à VS Code
Tout d’abord, vous devez disposer de Visual Studio Code pour envisager d’intégrer GitHub Copilot. Vous devez aussi disposer d’un compte GitHub : c’est gratuit, mais indispensable puisque cette IA est liée à ce service. Si vous avez besoin d’aide pour mettre en route VS Code pour PowerShell :
Ouvrez Visual Studio Code et cliquez sur l’icône représentant GitHub Copilot dans le haut de l’interface. Cliquez ensuite sur le bouton “Use AI Features with Copilot for Free…” puis sur le bouton bleu “Sign in to Use Copilot for Free”.
Vous serez invité à vous authentifier avec votre compte GitHub et à autoriser l’application Visual Studio Code.
Quand c’est fait, vous êtes prêt à utiliser GitHub Copilot !
III. Exemples d’utilisation de GitHub Copilot avec PowerShell
A. Interaction avec GitHub Copilot
Dans VS Code, il y a plusieurs façons d’interagir avec l’IA GitHub Copilot. Tout d’abord, quand vous travaillez sur un script, vous pouvez utiliser le raccourci clavier CTRL + I pour ouvrir la barre de commande. Ici, l’IA s’affiche directement dans la zone où vous rédigez votre code.
Une zone de saisie comme celle ci-dessous va s’afficher. Vous pourrez alors rédiger votre prompt, et si vous le souhaitez, spécifier une commande particulière. Par exemple, la commande /generate sera utile pour lui demander de générer du code, tandis que la commande /explain permet d’obtenir des explications sur le code.
L’alternative consiste à utiliser le mode Chat, sur la droite. Dans ce cas, il s’agit plus d’un mode conversationnel, ce qui est pratique pour obtenir des explications sur un bout de code. Il est possible de reporter les informations facilement entre le Chat et la zone de travail principale.
L’intérêt étant de pouvoir contextualiser votre demande. Par défaut, le fichier que vous éditez actuellement est pris en compte dans le contexte de l’analyse de l’IA. Pour ajouter d’autres informations, tel qu’un dossier complet, la sortie du Terminal et même une copie d’écran, il suffit de joindre des éléments supplémentaires (via l’icône représentant un trombone).
Vous avez aussi l’opportunité de sélectionner le modèle de langage que vous souhaitez utiliser. Par défaut, le modèle GPT-4o de chez OpenAI est utilisé.
B. Générer une fonction PowerShell avec GitHub Copilot
Nous allons partir d’une feuille blanche et demander à l’IA de nous générer une fonction PowerShell capable de générer des mots de passe. Le prompt suivant sera utilisé : /generate une fonction PowerShell pour générer des mots de passe. Très succinct, mais nous verrons à partir de ce prompt peu précis ce que nous obtenons.
Quelques secondes plus tard, une fonction PowerShell est visible à l’écran. Elle est surlignée, de façon à ce que je puisse voir précisément quel est le code associé à mon prompt. Je peux alors poser une autre question à Copilot (pour demander un ajustement, par exemple), accepter le bout de code en l’état ou fermer pour annuler l’opération.
Le code PowerShell proposé me semble fonctionnel et répond à ma demande. Après une analyse rapide du code, je constate que la fonction me permettra de préciser la longueur du mot de passe à générer, ainsi que s’il doit contenir ou non des caractères spéciaux. Ce mot de passe n’aura pas systématiquement un chiffre. J’aimerais qu’il en ait forcément un, donc dans la zone “Ask Copilot”, je précise ma demande : S’assurer qu’il y ait au moins un chiffre dans le mot de passe généré.
GitHub Copilot va alors modifier la fonction pour distinguer la liste des lettres et celles des chiffres. Ainsi, la nouvelle version proposée m’assure que le mot de passe généré contiendra au moins un chiffre. Cette version me convient, je clique sur le bouton “Accept”. Voilà, je dispose de la fonction attendue en ma possession.
Voici deux exemples de mots de passe générés par cette fonction :
# Generate a 12-character password without special characters
Generate-Password -length 12
# Generate a 16-character password with special characters
Generate-Password -length 16 -IncludeSpecialCharacters
C. Obtenir des explications sur un code
Un cas d’usage intéressant avec GitHub Copilot, c’est de lui demander d’expliquer un bout de code. Ceci est particulièrement utile lorsque l’on est en phase d’apprentissage d’un langage, ou si le code est mal documenté. Ici, je sélectionne simplement la ligne 30 du script obtenu précédemment :
Puis, dans le chat, je lui demande de m’expliquer à quoi correspond cette ligne. Il m’explique alors que la commande Generate-Password est une fonction qui est appelée avec le paramètre -length pour spécifier la longueur du mot de passe à générer.
Il n’est pas rare de tomber sur des bouts de code mal documenté, c’est-à-dire sans commentaire, ou avec très peu de commentaire. Cela ne facilite pas la compréhension du code… À l’inverse, vous pourriez avoir envie de documenter votre code, mais pour gagner en productivité, vous pouvez demander à l’IA de le faire à votre place. Dans ces deux cas, GitHub Copilot peut vous aider.
Voici un extrait d’un script PowerShell très simple, mais sans commentaire.
Dans le chat, j’indique simplement à GitHub Copilot le prompt suivant : Documente le code. En tant que réponse, j’obtiens le script d’origine avec des commentaires précis pour chaque ligne importante du code. Il est possible d’insérer ce bout de code dans un nouveau fichier ou simplement de le copier. Il ne reste plus qu’à le coller à la place de la version d’origine pour enregistrer la version avec commentaire.
E. S’entraîner avec des exercices
Vous pouvez solliciter GitHub Copilot pour lui demander de générer des exercices, ce qui peut s’avérer utile pour vous entrainer. Dans le cas présent, le prompt suivant est utilisé : @workspace Propose moi des exercices PowerShell pour m’entrainer. Le fait de préciser @workspace lui ordonne de proposer des exercices en tenant compte du contexte (type de script) présent dans mon espace de travail Visual Studio Code.
Les exercices proposés tiennent bien compte de ce contexte, puisqu’il me propose des exercices en lien avec la génération de mots de passe.
Pour apprendre PowerShell, je vous recommande ces trois ressources :
F. Debug un script avec GitHub Copilot
GitHub Copilot peut aussi vous faire gagner du temps lorsque votre script ne fonctionne pas comme vous l’entendez, ou qu’il génère une erreur. Prenons le code ci-dessous, dont la syntaxe est correcte, mais qui génère une erreur. La commande New-ADUser sert à créer un nouvel utilisateur dans Active Directory. Le fait de préciser un mot de passe en tant que chaine de caractères simple (String) ne fonctionnera pas, car le paramètre -AccountPassword attend une chaine sécurisée (SecureString). GitHub Copilot sera-t-il en mesure d’identifier ce problème ? Réponse ci-dessous.
# Créer un utilisateur dans l’Active Directory
New-ADUser -Name “Florian BURNEL” `
-DisplayName “Florian BURNEL” `
-GivenName “Florian” `
-Surname “Burnel” `
-SamAccountName “florian.burnel” `
-UserPrincipalName “[email protected]” `
-AccountPassword “MonMotDePasse” `
-Enabled $true
Pour le solliciter sur le débogage de code, il faut sélectionner le code problématique. Ici, je sélectionne ces quelques lignes puis j’appelle GitHub Copilot via le raccourci CTRL + I. Ensuite, j’utilise simplement le prompt /fix. Quelques secondes plus tard, il a identifié la cause de mon problème et il me propose une solution basée sur la conversion de la chaine de caractères en chaine sécurisée via le cmdlet ConvertTo-SecureString : c’est exactement ce qu’il fallait faire !
Au-delà de corriger l’erreur, GitHub Copilot fournit une explication, ce qui peut s’avérer très utile lorsque l’on est débutant afin d’apprendre de ses erreurs. Il est même possible d’obtenir des informations supplémentaires, dans le cas où nous ignorons tout des Secure String.
IV. Conclusion
L’intégration de GitHub Copilot à Visual Studio Code permet de réellement gagner en productivité, que ce soit pour commenter un script, générer la première ébauche d’une fonction ou encore obtenir de l’aide pour déboguer un script. Vous pouvez gagner quelques minutes par-ci, par là, ce qui n’est pas anodin si vous passez plusieurs heures par semaine dans Visual Studio Code… La version gratuite, bien que limitée, peut tout de même convenir aux besoins de nombreuses personnes, à minima pour utiliser GitHub Copilot de façon ponctuelle.
Au-delà des cas d’usage évoqué dans cet article, sachez que lors de la rédaction d’un code, l’IA pourra vous suggérer une suite. Il s’agit d’une auto-complétion automatique alimentée par l’IA qui est bien souvent cohérente, et qui, là encore, fait gagner du temps.
En complément de cet article, voici deux ressources intéressantes :
Ingénieur système et réseau, cofondateur d’IT-Connect et Microsoft MVP “Cloud and Datacenter Management”. Je souhaite partager mon expérience et mes découvertes au travers de mes articles. Généraliste avec une attirance particulière pour les solutions Microsoft et le scripting. Bonne lecture.